summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch')
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch287
1 files changed, 287 insertions, 0 deletions
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch
new file mode 100644
index 00000000..f2947f32
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch
@@ -0,0 +1,287 @@
1From 3a03576d672d24f19fdb930b08afde9a3a3f55da Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 15:02:38 -0700
4Subject: [PATCH 7/8] glamor: Switch the gl_flavor to a boolean is_gles.
5
6There are only 2 flavors we are distinguishing -- GL versions are
7handled separately.
8
9Upstream-Status: Backport
10Signed-off-by: Eric Anholt <eric@anholt.net>
11---
12 glamor/glamor.c | 20 +++++++++-----------
13 glamor/glamor_picture.c | 22 +++++++++++-----------
14 glamor/glamor_pixmap.c | 2 +-
15 glamor/glamor_priv.h | 7 +------
16 glamor/glamor_program.c | 2 +-
17 glamor/glamor_render.c | 2 +-
18 glamor/glamor_utils.h | 6 +++---
19 7 files changed, 27 insertions(+), 34 deletions(-)
20
21diff --git a/glamor/glamor.c b/glamor/glamor.c
22index f618c2128..019edbbb1 100644
23--- a/glamor/glamor.c
24+++ b/glamor/glamor.c
25@@ -505,10 +505,8 @@ glamor_init(ScreenPtr screen, unsigned int flags)
26
27 glamor_make_current(glamor_priv);
28
29- if (epoxy_is_desktop_gl())
30- glamor_priv->gl_flavor = GLAMOR_GL_DESKTOP;
31- else
32- glamor_priv->gl_flavor = GLAMOR_GL_ES2;
33+ if (!epoxy_is_desktop_gl())
34+ glamor_priv->is_gles = TRUE;
35
36 gl_version = epoxy_gl_version();
37
38@@ -540,7 +538,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
39 }
40 glamor_priv->glsl_version = glsl_major * 100 + glsl_minor;
41
42- if (glamor_priv->gl_flavor == GLAMOR_GL_ES2) {
43+ if (glamor_priv->is_gles) {
44 /* Force us back to the base version of our programs on an ES
45 * context, anyway. Basically glamor only uses desktop 1.20
46 * or 1.30 currently. 1.30's new features are also present in
47@@ -564,7 +562,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
48 * have support for it, with most of the ones lacking it being on
49 * Windows with Intel 4-series (G45) graphics or older.
50 */
51- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
52+ if (!glamor_priv->is_gles) {
53 if (gl_version < 21) {
54 ErrorF("Require OpenGL version 2.1 or later.\n");
55 goto fail;
56@@ -610,7 +608,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
57 }
58
59 glamor_priv->has_rw_pbo = FALSE;
60- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP)
61+ if (!glamor_priv->is_gles)
62 glamor_priv->has_rw_pbo = TRUE;
63
64 glamor_priv->has_khr_debug = epoxy_has_gl_extension("GL_KHR_debug");
65@@ -628,11 +626,11 @@ glamor_init(ScreenPtr screen, unsigned int flags)
66 glamor_priv->has_nv_texture_barrier =
67 epoxy_has_gl_extension("GL_NV_texture_barrier");
68 glamor_priv->has_unpack_subimage =
69- glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP ||
70+ !glamor_priv->is_gles ||
71 epoxy_gl_version() >= 30 ||
72 epoxy_has_gl_extension("GL_EXT_unpack_subimage");
73 glamor_priv->has_pack_subimage =
74- glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP ||
75+ !glamor_priv->is_gles ||
76 epoxy_gl_version() >= 30 ||
77 epoxy_has_gl_extension("GL_NV_pack_subimage");
78 glamor_priv->has_dual_blend =
79@@ -643,7 +641,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
80
81 glamor_setup_debug_output(screen);
82
83- glamor_priv->use_quads = (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) &&
84+ glamor_priv->use_quads = !glamor_priv->is_gles &&
85 !glamor_priv->is_core_profile;
86
87 /* Driver-specific hack: Avoid using GL_QUADS on VC4, where
88@@ -665,7 +663,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
89
90 glamor_priv->has_texture_swizzle =
91 (epoxy_has_gl_extension("GL_ARB_texture_swizzle") ||
92- (glamor_priv->gl_flavor != GLAMOR_GL_DESKTOP && gl_version >= 30));
93+ (glamor_priv->is_gles && gl_version >= 30));
94
95 glamor_priv->one_channel_format = GL_ALPHA;
96 if (epoxy_has_gl_extension("GL_ARB_texture_rg") &&
97diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
98index e6d387d42..ed2decc83 100644
99--- a/glamor/glamor_picture.c
100+++ b/glamor/glamor_picture.c
101@@ -90,7 +90,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
102
103 case PICT_b8g8r8x8:
104 case PICT_b8g8r8a8:
105- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
106+ if (!glamor_priv->is_gles) {
107 *tex_format = GL_BGRA;
108 *tex_type = GL_UNSIGNED_INT_8_8_8_8;
109 } else {
110@@ -109,7 +109,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
111
112 case PICT_x8r8g8b8:
113 case PICT_a8r8g8b8:
114- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
115+ if (!glamor_priv->is_gles) {
116 *tex_format = GL_BGRA;
117 *tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
118 } else {
119@@ -128,7 +128,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
120 case PICT_x8b8g8r8:
121 case PICT_a8b8g8r8:
122 *tex_format = GL_RGBA;
123- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
124+ if (!glamor_priv->is_gles) {
125 *tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
126 } else {
127 *tex_format = GL_RGBA;
128@@ -141,7 +141,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
129
130 case PICT_x2r10g10b10:
131 case PICT_a2r10g10b10:
132- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
133+ if (!glamor_priv->is_gles) {
134 *tex_format = GL_BGRA;
135 *tex_type = GL_UNSIGNED_INT_2_10_10_10_REV;
136 } else {
137@@ -151,7 +151,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
138
139 case PICT_x2b10g10r10:
140 case PICT_a2b10g10r10:
141- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
142+ if (!glamor_priv->is_gles) {
143 *tex_format = GL_RGBA;
144 *tex_type = GL_UNSIGNED_INT_2_10_10_10_REV;
145 } else {
146@@ -165,7 +165,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
147 break;
148 case PICT_b5g6r5:
149 *tex_format = GL_RGB;
150- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
151+ if (!glamor_priv->is_gles) {
152 *tex_type = GL_UNSIGNED_SHORT_5_6_5_REV;
153 } else {
154 *tex_type = GL_UNSIGNED_SHORT_5_6_5;
155@@ -177,7 +177,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
156 case PICT_x1b5g5r5:
157 case PICT_a1b5g5r5:
158 *tex_format = GL_RGBA;
159- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
160+ if (!glamor_priv->is_gles) {
161 *tex_type = GL_UNSIGNED_SHORT_1_5_5_5_REV;
162 } else {
163 return FALSE;
164@@ -186,7 +186,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
165
166 case PICT_x1r5g5b5:
167 case PICT_a1r5g5b5:
168- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
169+ if (!glamor_priv->is_gles) {
170 *tex_format = GL_BGRA;
171 *tex_type = GL_UNSIGNED_SHORT_1_5_5_5_REV;
172 } else {
173@@ -201,7 +201,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
174
175 case PICT_x4r4g4b4:
176 case PICT_a4r4g4b4:
177- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
178+ if (!glamor_priv->is_gles) {
179 *tex_format = GL_BGRA;
180 *tex_type = GL_UNSIGNED_SHORT_4_4_4_4_REV;
181 } else {
182@@ -213,7 +213,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
183
184 case PICT_x4b4g4r4:
185 case PICT_a4b4g4r4:
186- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
187+ if (!glamor_priv->is_gles) {
188 *tex_format = GL_RGBA;
189 *tex_type = GL_UNSIGNED_SHORT_4_4_4_4_REV;
190 } else {
191@@ -335,7 +335,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
192 stride = pixman_image_get_stride(converted_image);
193 }
194
195- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP)
196+ if (!glamor_priv->is_gles)
197 iformat = gl_iformat_for_pixmap(pixmap);
198 else
199 iformat = format;
200diff --git a/glamor/glamor_pixmap.c b/glamor/glamor_pixmap.c
201index 166bde509..9aa169cdc 100644
202--- a/glamor/glamor_pixmap.c
203+++ b/glamor/glamor_pixmap.c
204@@ -124,7 +124,7 @@ glamor_set_alu(ScreenPtr screen, unsigned char alu)
205 {
206 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
207
208- if (glamor_priv->gl_flavor == GLAMOR_GL_ES2) {
209+ if (glamor_priv->is_gles) {
210 if (alu != GXcopy)
211 return FALSE;
212 else
213diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
214index a87caec9b..8e8433ff3 100644
215--- a/glamor/glamor_priv.h
216+++ b/glamor/glamor_priv.h
217@@ -155,11 +155,6 @@ enum gradient_shader {
218 struct glamor_screen_private;
219 struct glamor_pixmap_private;
220
221-enum glamor_gl_flavor {
222- GLAMOR_GL_DESKTOP, // OPENGL API
223- GLAMOR_GL_ES2 // OPENGL ES2.0 API
224-};
225-
226 #define GLAMOR_COMPOSITE_VBO_VERT_CNT (64*1024)
227
228 struct glamor_saved_procs {
229@@ -185,7 +180,7 @@ struct glamor_saved_procs {
230 };
231
232 typedef struct glamor_screen_private {
233- enum glamor_gl_flavor gl_flavor;
234+ Bool is_gles;
235 int glsl_version;
236 Bool has_pack_invert;
237 Bool has_fbo_blit;
238diff --git a/glamor/glamor_program.c b/glamor/glamor_program.c
239index 830deb38b..b0a9d07a4 100644
240--- a/glamor/glamor_program.c
241+++ b/glamor/glamor_program.c
242@@ -459,7 +459,7 @@ glamor_set_blend(CARD8 op, glamor_program_alpha alpha, PicturePtr dst)
243 break;
244 }
245
246- if (glamor_priv->gl_flavor != GLAMOR_GL_ES2)
247+ if (!glamor_priv->is_gles)
248 glDisable(GL_COLOR_LOGIC_OP);
249
250 if (op == PictOpSrc)
251diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
252index 6db6bfbc3..d3859e4d1 100644
253--- a/glamor/glamor_render.c
254+++ b/glamor/glamor_render.c
255@@ -1091,7 +1091,7 @@ glamor_composite_set_shader_blend(glamor_screen_private *glamor_priv,
256 }
257 }
258
259- if (glamor_priv->gl_flavor != GLAMOR_GL_ES2)
260+ if (!glamor_priv->is_gles)
261 glDisable(GL_COLOR_LOGIC_OP);
262
263 if (op_info->source_blend == GL_ONE && op_info->dest_blend == GL_ZERO) {
264diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
265index 8a147ca7e..cbb808294 100644
266--- a/glamor/glamor_utils.h
267+++ b/glamor/glamor_utils.h
268@@ -615,13 +615,13 @@ gl_iformat_for_pixmap(PixmapPtr pixmap)
269 glamor_get_screen_private((pixmap)->drawable.pScreen);
270 glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
271
272- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
273+ if (!glamor_priv->is_gles &&
274 ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
275 return glamor_priv->one_channel_format;
276- } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
277+ } else if (!glamor_priv->is_gles &&
278 (pixmap)->drawable.depth == 16 && pixmap_priv->is_cbcr) {
279 return GL_RG;
280- } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
281+ } else if (!glamor_priv->is_gles &&
282 (pixmap)->drawable.depth == 30) {
283 return GL_RGB10_A2;
284 } else {
285--
2862.17.1
287