From d7a635924eff29da159a99a3a0beedd50681cc7cfd3f34e57cb3ef1b588f0e57 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Mon, 8 Nov 2021 11:52:57 +0000 Subject: [PATCH] - Update to version 21.1.3 * Most notable change is a fix for the GBM backend to work with the Nvidia driver series 495. - supersedes U_glamor-Fix-handling-of-1-bit-pixmaps.patch OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xwayland?expand=0&rev=20 --- U_glamor-Fix-handling-of-1-bit-pixmaps.patch | 192 ------------------- xwayland-21.1.2.tar.xz | 3 - xwayland-21.1.2.tar.xz.sig | Bin 95 -> 0 bytes xwayland-21.1.3.tar.xz | 3 + xwayland-21.1.3.tar.xz.sig | Bin 0 -> 95 bytes xwayland.changes | 8 + xwayland.spec | 4 +- 7 files changed, 12 insertions(+), 198 deletions(-) delete mode 100644 U_glamor-Fix-handling-of-1-bit-pixmaps.patch delete mode 100644 xwayland-21.1.2.tar.xz delete mode 100644 xwayland-21.1.2.tar.xz.sig create mode 100644 xwayland-21.1.3.tar.xz create mode 100644 xwayland-21.1.3.tar.xz.sig diff --git a/U_glamor-Fix-handling-of-1-bit-pixmaps.patch b/U_glamor-Fix-handling-of-1-bit-pixmaps.patch deleted file mode 100644 index 4b96c7a..0000000 --- a/U_glamor-Fix-handling-of-1-bit-pixmaps.patch +++ /dev/null @@ -1,192 +0,0 @@ -From e59e24c8779de65db87b8c07bc3f2abb479be082 Mon Sep 17 00:00:00 2001 -From: Povilas Kanapickas -Date: Mon, 6 Sep 2021 22:41:32 +0300 -Subject: [PATCH] glamor: Fix handling of 1-bit pixmaps - -Since 8702c938b33b9ec180d64754eb922515c7c4a98b the pixmap formats are -handled in a single place. In the process of conversion the difference -between pixmap formats that can be uploaded and those that can be -rendered on GL side has been lost. This affects only 1-bit pixmaps: as -they aren't supported on GL, but can be converted to a R8 or A8 format -for rendering (see glamor_get_tex_format_type_from_pictformat()). - -To work around this we add a separate flag that specifies whether the -format actually supports rendering in GL, convert all checks to use this -flag and then add 1-bit pixmap formats that don't support rendering in -GL. - -Fixes: 8702c938b33b9ec180d64754eb922515c7c4a98b -Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1210 -Acked-by: Olivier Fourdan -Tested-by: Olivier Fourdan -Reviewed-by: Adam Jackson -Signed-off-by: Povilas Kanapickas ---- - glamor/glamor.c | 35 +++++++++++++++++++++-------------- - glamor/glamor_priv.h | 10 ++++++++++ - glamor/glamor_render.c | 9 +++++++-- - 3 files changed, 38 insertions(+), 16 deletions(-) - -Index: xwayland-21.1.2/glamor/glamor.c -=================================================================== ---- xwayland-21.1.2.orig/glamor/glamor.c -+++ xwayland-21.1.2/glamor/glamor.c -@@ -216,7 +216,7 @@ glamor_create_pixmap(ScreenPtr screen, i - w <= glamor_priv->glyph_max_dim && - h <= glamor_priv->glyph_max_dim) - || (w == 0 && h == 0) -- || !glamor_priv->formats[depth].format)) -+ || !glamor_priv->formats[depth].rendering_supported)) - return fbCreatePixmap(screen, w, h, depth, usage); - else - pixmap = fbCreatePixmap(screen, 0, 0, depth, usage); -@@ -461,7 +461,8 @@ glamor_format_for_pixmap(PixmapPtr pixma - - static void - glamor_add_format(ScreenPtr screen, int depth, CARD32 render_format, -- GLenum internalformat, GLenum format, GLenum type) -+ GLenum internalformat, GLenum format, GLenum type, -+ Bool rendering_supported) - { - glamor_screen_private *glamor_priv = glamor_get_screen_private(screen); - struct glamor_format *f = &glamor_priv->formats[depth]; -@@ -476,7 +477,7 @@ glamor_add_format(ScreenPtr screen, int - * Note that we can't just create a pixmap because we're in - * screeninit. - */ -- if (glamor_priv->is_gles) { -+ if (rendering_supported && glamor_priv->is_gles) { - unsigned fbo, tex; - int read_format, read_type; - GLenum status; -@@ -521,6 +522,7 @@ glamor_add_format(ScreenPtr screen, int - f->internalformat = internalformat; - f->format = format; - f->type = type; -+ f->rendering_supported = rendering_supported; - } - - /* Set up the GL format/types that glamor will use for the various depths -@@ -551,11 +553,15 @@ glamor_setup_formats(ScreenPtr screen) - * only falling back to a8 if we can't do them. - */ - if (glamor_priv->is_gles || epoxy_has_gl_extension("GL_ARB_texture_rg")) { -+ glamor_add_format(screen, 1, PICT_a1, -+ GL_R8, GL_RED, GL_UNSIGNED_BYTE, FALSE); - glamor_add_format(screen, 8, PICT_a8, -- GL_R8, GL_RED, GL_UNSIGNED_BYTE); -+ GL_R8, GL_RED, GL_UNSIGNED_BYTE, TRUE); - } else { -+ glamor_add_format(screen, 1, PICT_a1, -+ GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE, FALSE); - glamor_add_format(screen, 8, PICT_a8, -- GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE); -+ GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE, TRUE); - } - - if (glamor_priv->is_gles) { -@@ -569,40 +575,41 @@ glamor_setup_formats(ScreenPtr screen) - * disable render accel for now. - */ - glamor_add_format(screen, 15, PICT_x1r5g5b5, -- GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1); -+ GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, TRUE); - } else { - glamor_add_format(screen, 15, PICT_x1r5g5b5, -- GL_RGBA, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV); -+ GL_RGBA, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, TRUE); - } - - glamor_add_format(screen, 16, PICT_r5g6b5, -- GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5); -+ GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, TRUE); - - 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); -+ GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, TRUE); - glamor_add_format(screen, 32, PICT_a8b8g8r8, -- GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE); -+ GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, TRUE); - } else { - glamor_add_format(screen, 24, PICT_x8r8g8b8, -- GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV); -+ GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, TRUE); - glamor_add_format(screen, 32, PICT_a8r8g8b8, -- GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV); -+ GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, TRUE); - } - - if (glamor_priv->is_gles) { - glamor_add_format(screen, 30, PICT_x2b10g10r10, -- GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV); -+ GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, TRUE); - } else { - glamor_add_format(screen, 30, PICT_x2r10g10b10, -- GL_RGB10_A2, GL_BGRA, GL_UNSIGNED_INT_2_10_10_10_REV); -+ GL_RGB10_A2, GL_BGRA, GL_UNSIGNED_INT_2_10_10_10_REV, TRUE); - } - - glamor_priv->cbcr_format.depth = 16; - glamor_priv->cbcr_format.internalformat = GL_RG8; - glamor_priv->cbcr_format.format = GL_RG; - glamor_priv->cbcr_format.type = GL_UNSIGNED_BYTE; -+ glamor_priv->cbcr_format.rendering_supported = TRUE; - } - - /** Set up glamor for an already-configured GL context. */ -Index: xwayland-21.1.2/glamor/glamor_priv.h -=================================================================== ---- xwayland-21.1.2.orig/glamor/glamor_priv.h -+++ xwayland-21.1.2/glamor/glamor_priv.h -@@ -170,6 +170,11 @@ struct glamor_format { - * transferred using format/type. - */ - CARD32 render_format; -+ /** -+ * Whether rendering is supported in GL at all (i.e. without pixel data conversion -+ * just before upload) -+ */ -+ Bool rendering_supported; - }; - - struct glamor_saved_procs { -@@ -215,6 +220,11 @@ typedef struct glamor_screen_private { - Bool can_copyplane; - int max_fbo_size; - -+ /** -+ * Stores information about supported formats. Note, that this list contains all -+ * supported pixel formats, including these that are not supported on GL side -+ * directly, but are converted to another format instead. -+ */ - struct glamor_format formats[33]; - struct glamor_format cbcr_format; - -Index: xwayland-21.1.2/glamor/glamor_render.c -=================================================================== ---- xwayland-21.1.2.orig/glamor/glamor_render.c -+++ xwayland-21.1.2/glamor/glamor_render.c -@@ -773,14 +773,19 @@ glamor_render_format_is_supported(Pictur - { - PictFormatShort storage_format; - glamor_screen_private *glamor_priv; -+ struct glamor_format *f; - - /* Source-only pictures should always work */ - if (!picture->pDrawable) - return TRUE; - - glamor_priv = glamor_get_screen_private(picture->pDrawable->pScreen); -- storage_format = -- glamor_priv->formats[picture->pDrawable->depth].render_format; -+ f = &glamor_priv->formats[picture->pDrawable->depth]; -+ -+ if (!f->rendering_supported) -+ return FALSE; -+ -+ storage_format = f->render_format; - - switch (picture->format) { - case PICT_a2r10g10b10: diff --git a/xwayland-21.1.2.tar.xz b/xwayland-21.1.2.tar.xz deleted file mode 100644 index 7ee4716..0000000 --- a/xwayland-21.1.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b81cbdd5ad60b8b7ad8c3ecc7ec2a28c9bf021448670735cebb501f08bebd18b -size 1258732 diff --git a/xwayland-21.1.2.tar.xz.sig b/xwayland-21.1.2.tar.xz.sig deleted file mode 100644 index 32851e3fc3b53e0af1fd3d35050844ec4cadd95a1f1c4f659b2641cd26286f9e..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeB(WnmCxVvrS6WZ5u(z3IM*u8K1_14W`5*Y{=J-o(Jll<-2Oi-C(%04DN!J;Qw8 v?^Vb7v=`10)ABtSe>UCsuTF;t!~CMpK4md)-JWRuEzw`-evSEYXP_|vbU-GI diff --git a/xwayland-21.1.3.tar.xz b/xwayland-21.1.3.tar.xz new file mode 100644 index 0000000..4172ddd --- /dev/null +++ b/xwayland-21.1.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebc2757f39fd4c7db1654fd86591589c211aa20172d43a54f77ae567cedbf8a2 +size 1261776 diff --git a/xwayland-21.1.3.tar.xz.sig b/xwayland-21.1.3.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..efe00e172a147a282fd9ce0aa9865056bc0a3bb42287d2ea8f21b6199b5a33bf GIT binary patch literal 95 zcmeB(WnmCxVvrS6WJ$l%_9@B!=wI)xO0gmZx%=e2T^(4N5z3 v702v%d-~F>gYG9YezovjQSOOlm}jY7epk_DXY{PXB=+dZoqvvfXmAGrVX-CN literal 0 HcmV?d00001 diff --git a/xwayland.changes b/xwayland.changes index a1b953f..2d148fd 100644 --- a/xwayland.changes +++ b/xwayland.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Nov 8 11:45:16 UTC 2021 - Stefan Dirsch + +- Update to version 21.1.3 + * Most notable change is a fix for the GBM backend to work with + the Nvidia driver series 495. +- supersedes U_glamor-Fix-handling-of-1-bit-pixmaps.patch + ------------------------------------------------------------------- Thu Oct 7 12:22:22 UTC 2021 - Joan Torres diff --git a/xwayland.spec b/xwayland.spec index 971f282..465699a 100644 --- a/xwayland.spec +++ b/xwayland.spec @@ -24,7 +24,7 @@ %endif Name: xwayland -Version: 21.1.2 +Version: 21.1.3 Release: 0 URL: http://xorg.freedesktop.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -34,7 +34,6 @@ License: MIT Group: System/X11/Servers/XF86_4 Source0: %{name}-%{version}.tar.xz Source1: %{name}-%{version}.tar.xz.sig -Patch0: U_glamor-Fix-handling-of-1-bit-pixmaps.patch BuildRequires: meson BuildRequires: ninja BuildRequires: pkgconfig @@ -132,7 +131,6 @@ This package contains the Xwayland Server development files. %prep %setup -q -n %{name}-%{version} -%patch0 -p1 %build %define _lto_cflags %{nil}