[Webkit-unassigned] [Bug 228268] [GTK4] [REGRESSION] Rendering on Nvidia is terribly broken, almost a blank screen
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Apr 3 19:21:55 PDT 2023
https://bugs.webkit.org/show_bug.cgi?id=228268
--- Comment #46 from Craig <craig.langman at gmail.com> ---
Terminal output:
$ flatpak run org.gnome.Epiphany
(epiphany:2): epiphany-WARNING **: 19:18:28.252: Failed to search secrets in password schema: org.freedesktop.DBus.Error.ServiceUnknown
Gsk-Message: 19:18:28.468: Failed to realize renderer of type 'GskGLRenderer' for surface 'GdkX11Toplevel': Compilation failure in shader.
Source Code: 1| #version 100
2| #define GSK_GLES 1
3| #define NO_CLIP 1
4| #ifndef GSK_LEGACY
5| precision highp float;
6| #endif
7|
8| #if defined(GSK_GLES) || defined(GSK_LEGACY)
9| #define _OUT_ varying
10| #define _IN_ varying
11| #define _GSK_ROUNDED_RECT_UNIFORM_ vec4[3]
12| #else
13| #define _OUT_ out
14| #define _IN_ in
15| #define _GSK_ROUNDED_RECT_UNIFORM_ GskRoundedRect
16| #endif
17|
18|
19| struct GskRoundedRect
20| {
21| vec4 bounds; // Top left and bottom right
22| // Look, arrays can't be in structs if you want to return the struct
23| // from a function in gles or whatever. Just kill me.
24| vec4 corner_points1; // xy = top left, zw = top right
25| vec4 corner_points2; // xy = bottom right, zw = bottom left
26| };
27|
28| // Transform from a C GskRoundedRect to what we need.
29| GskRoundedRect
30| gsk_create_rect(vec4[3] data)
31| {
32| vec4 bounds = vec4(data[0].xy, data[0].xy + data[0].zw);
33|
34| vec4 corner_points1 = vec4(bounds.xy + data[1].xy,
35| bounds.zy + vec2(data[1].zw * vec2(-1, 1)));
36| vec4 corner_points2 = vec4(bounds.zw + (data[2].xy * vec2(-1, -1)),
37| bounds.xw + vec2(data[2].zw * vec2(1, -1)));
38|
39| return GskRoundedRect(bounds, corner_points1, corner_points2);
40| }
41|
42| vec4
43| gsk_get_bounds(vec4[3] data)
44| {
45| return vec4(data[0].xy, data[0].xy + data[0].zw);
46| }
47|
48| vec4 gsk_premultiply(vec4 c) {
49| return vec4(c.rgb * c.a, c.a);
50| }
51|
52| vec4 gsk_scaled_premultiply(vec4 c, float s) {
53| // Fast version of gsk_premultiply(c) * s
54| // 4 muls instead of 7
55| float a = s * c.a;
56|
57| return vec4(c.rgb * a, a);
58| }
59| uniform mat4 u_projection;
60| uniform mat4 u_modelview;
61| uniform float u_alpha;
62|
63| #if defined(GSK_GLES) || defined(GSK_LEGACY)
64| attribute vec2 aPosition;
65| attribute vec2 aUv;
66| attribute vec4 aColor;
67| attribute vec4 aColor2;
68| _OUT_ vec2 vUv;
69| #else
70| _IN_ vec2 aPosition;
71| _IN_ vec2 aUv;
72| _IN_ vec4 aColor;
73| _IN_ vec4 aColor2;
74| _OUT_ vec2 vUv;
75| #endif
76|
77| // amount is: top, right, bottom, left
78| GskRoundedRect
79| gsk_rounded_rect_shrink (GskRoundedRect r, vec4 amount)
80| {
81| vec4 new_bounds = r.bounds + vec4(1.0,1.0,-1.0,-1.0) * amount.wxyz;
82| vec4 new_corner_points1 = r.corner_points1;
83| vec4 new_corner_points2 = r.corner_points2;
84|
85| if (r.corner_points1.xy == r.bounds.xy) new_corner_points1.xy = new_bounds.xy;
86| if (r.corner_points1.zw == r.bounds.zy) new_corner_points1.zw = new_bounds.zy;
87| if (r.corner_points2.xy == r.bounds.zw) new_corner_points2.xy = new_bounds.zw;
88| if (r.corner_points2.zw == r.bounds.xw) new_corner_points2.zw = new_bounds.xw;
89|
90| return GskRoundedRect (new_bounds, new_corner_points1, new_corner_points2);
91| }
92|
93| void
94| gsk_rounded_rect_offset(inout GskRoundedRect r, vec2 offset)
95| {
96| r.bounds.xy += offset;
97| r.bounds.zw += offset;
98| r.corner_points1.xy += offset;
99| r.corner_points1.zw += offset;
100| r.corner_points2.xy += offset;
101| r.corner_points2.zw += offset;
102| }
103|
104| void gsk_rounded_rect_transform(inout GskRoundedRect r, mat4 mat)
105| {
106| r.bounds.xy = (mat * vec4(r.bounds.xy, 0.0, 1.0)).xy;
107| r.bounds.zw = (mat * vec4(r.bounds.zw, 0.0, 1.0)).xy;
108|
109| r.corner_points1.xy = (mat * vec4(r.corner_points1.xy, 0.0, 1.0)).xy;
110| r.corner_points1.zw = (mat * vec4(r.corner_points1.zw, 0.0, 1.0)).xy;
111|
112| r.corner_points2.xy = (mat * vec4(r.corner_points2.xy, 0.0, 1.0)).xy;
113| r.corner_points2.zw = (mat * vec4(r.corner_points2.zw, 0.0, 1.0)).xy;
114| }
115|
116| #if defined(GSK_LEGACY)
117| // Can't have out or inout array parameters...
118| #define gsk_rounded_rect_encode(r, uni) uni[0] = r.bounds; uni[1] = r.corner_points1; uni[2] = r.corner_points2;
119| #else
120| void gsk_rounded_rect_encode(GskRoundedRect r, out _GSK_ROUNDED_RECT_UNIFORM_ out_r)
121| {
122| #if defined(GSK_GLES)
123| out_r[0] = r.bounds;
124| out_r[1] = r.corner_points1;
125| out_r[2] = r.corner_points2;
126| #else
127| out_r = r;
128| #endif
129| }
130|
131| #endif
132|
133| // blend.glsl
134|
135| void main() {
136| gl_Position = u_projection * u_modelview * vec4(aPosition, 0.0, 1.0);
137|
138| vUv = vec2(aUv.x, aUv.y);
139| }
140|
141| // FRAGMENT_SHADER:
Error Message:
0(30) : error C7551: OpenGL first class arrays require #version 120
0(43) : error C7551: OpenGL first class arrays require #version 120
0(120) : error C7551: OpenGL first class arrays require #version 120
Cannot create EGL sharing context: error binding OpenGL API (EGL_BAD_PARAMETER)
Cannot create EGL sharing context: error binding OpenGL API (EGL_BAD_PARAMETER)
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20230404/66d82c31/attachment.htm>
More information about the webkit-unassigned
mailing list