xserver: Branch 'server-21.1-branch'
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Oct 10 21:54:19 UTC 2024
glamor/glamor.c | 8 ++++----
glamor/glamor_picture.c | 7 ++-----
2 files changed, 6 insertions(+), 9 deletions(-)
New commits:
commit 408432fbd0f51d2404bfcfc60f20de8bac1f6178
Author: Konstantin <ria.freelander at gmail.com>
Date: Sun Jun 26 00:01:54 2022 +0300
glamor: make use of GL_EXT_texture_format_BGRA8888
For 24 and 32 bit depth pictures xserver uses PICT_x8r8g8b8 and PICT_a8r8g8b8 formats,
which must be backed with GL_BGRA format. It is present in OpenGL ES 2.0 only with
GL_EXT_texture_format_BGRA8888 extension. We require such extension in glamor_init,
so, why not to make use of it?
Fixes #1208
Fixes #1354
Signed-off-by: Konstantin Pugin <ria.freelander at gmail.com>
Reviewed-by: Adam Jackson <ajax at redhat.com>
Reviewed-by: Emma Anholt <emma at anholt.net>
(cherry picked from commit 24cd5f34f8edcc6621ed9c0f2b1a3df08de7488d)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1546>
diff --git a/glamor/glamor.c b/glamor/glamor.c
index da2ea94ba..bc91de201 100644
--- a/glamor/glamor.c
+++ b/glamor/glamor.c
@@ -586,10 +586,10 @@ glamor_setup_formats(ScreenPtr screen)
if (glamor_priv->is_gles) {
assert(X_BYTE_ORDER == X_LITTLE_ENDIAN);
- glamor_add_format(screen, 24, PICT_x8b8g8r8,
- GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, TRUE);
- glamor_add_format(screen, 32, PICT_a8b8g8r8,
- GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, TRUE);
+ glamor_add_format(screen, 24, PICT_x8r8g8b8,
+ GL_BGRA, GL_BGRA, GL_UNSIGNED_BYTE, TRUE);
+ glamor_add_format(screen, 32, PICT_a8r8g8b8,
+ GL_BGRA, GL_BGRA, GL_UNSIGNED_BYTE, TRUE);
} else {
glamor_add_format(screen, 24, PICT_x8r8g8b8,
GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, TRUE);
diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
index 33b3bebd9..2152b85e1 100644
--- a/glamor/glamor_picture.c
+++ b/glamor/glamor_picture.c
@@ -94,7 +94,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
*tex_format = GL_BGRA;
*tex_type = GL_UNSIGNED_INT_8_8_8_8;
} else {
- *tex_format = GL_RGBA;
+ *tex_format = GL_BGRA;
*tex_type = GL_UNSIGNED_BYTE;
swizzle[0] = GL_GREEN;
@@ -113,12 +113,9 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
*tex_format = GL_BGRA;
*tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
} else {
- *tex_format = GL_RGBA;
+ *tex_format = GL_BGRA;
*tex_type = GL_UNSIGNED_BYTE;
- swizzle[0] = GL_BLUE;
- swizzle[2] = GL_RED;
-
if (!is_little_endian)
byte_swap_swizzle(swizzle);
break;
More information about the xorg-commit
mailing list