From 3ebebb966628a417dbc3dfb8fa8271dcd75e486ca8fce55f558ac91ac38d0735 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Mon, 18 Sep 2023 15:56:38 +0000 Subject: [PATCH 1/2] Accepting request 1112032 from home:jtorres:branches:X11:XOrg - xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch * Fix when vncviewer fades to white on xwayland (bsc#1215385, https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1154) ------------------------------------------------------------------ OBS-URL: https://build.opensuse.org/request/show/1112032 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xwayland?expand=0&rev=57 --- ...stination-alpha-as-necessary-for-com.patch | 68 +++++++++++++++++++ xwayland.changes | 7 ++ xwayland.spec | 2 + 3 files changed, 77 insertions(+) create mode 100644 xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch diff --git a/xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch b/xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch new file mode 100644 index 0000000..5e090cc --- /dev/null +++ b/xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch @@ -0,0 +1,68 @@ +From d1f142891ef346e90c36a7393009ffaac2aa8b38 Mon Sep 17 00:00:00 2001 +From: Michel Dänzer +Date: Tue, 12 Sep 2023 16:57:16 +0200 +Subject: [PATCH] glamor: Ignore destination alpha as necessary for composite operation + +If the destination drawable is a window with effective depth 24 backed +by a depth 32 pixmap. + +Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1575 +--- + glamor/glamor_priv.h | 1 + + glamor/glamor_render.c | 14 +++++++++++++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h +index 898380d82..71aaeb8c2 100644 +--- a/glamor/glamor_priv.h ++++ b/glamor/glamor_priv.h +@@ -111,6 +111,7 @@ enum shader_mask { + enum shader_dest_swizzle { + SHADER_DEST_SWIZZLE_DEFAULT, + SHADER_DEST_SWIZZLE_ALPHA_TO_RED, ++ SHADER_DEST_SWIZZLE_IGNORE_ALPHA, + SHADER_DEST_SWIZZLE_COUNT, + }; + +diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c +index ed1222621..0d233f27b 100644 +--- a/glamor/glamor_render.c ++++ b/glamor/glamor_render.c +@@ -197,6 +197,11 @@ glamor_create_composite_fs(glamor_screen_private *glamor_priv, struct shader_key + " float undef;\n" + " return vec4(color.a, undef, undef, undef);" + "}"; ++ const char *dest_swizzle_ignore_alpha = ++ "vec4 dest_swizzle(vec4 color)\n" ++ "{" ++ " return vec4(color.xyz, 1.0);" ++ "}"; + + const char *in_normal = + "void main()\n" +@@ -286,6 +291,9 @@ glamor_create_composite_fs(glamor_screen_private *glamor_priv, struct shader_key + case SHADER_DEST_SWIZZLE_ALPHA_TO_RED: + dest_swizzle = dest_swizzle_alpha_to_red; + break; ++ case SHADER_DEST_SWIZZLE_IGNORE_ALPHA: ++ dest_swizzle = dest_swizzle_ignore_alpha; ++ break; + default: + FatalError("Bad composite shader dest swizzle"); + } +@@ -938,7 +946,11 @@ glamor_composite_choose_shader(CARD8 op, + glamor_priv->formats[8].format == GL_RED) { + key.dest_swizzle = SHADER_DEST_SWIZZLE_ALPHA_TO_RED; + } else { +- key.dest_swizzle = SHADER_DEST_SWIZZLE_DEFAULT; ++ if (dest_pixmap->drawable.depth == 32 && ++ glamor_drawable_effective_depth(dest->pDrawable) == 24) ++ key.dest_swizzle = SHADER_DEST_SWIZZLE_IGNORE_ALPHA; ++ else ++ key.dest_swizzle = SHADER_DEST_SWIZZLE_DEFAULT; + } + + if (source && source->alphaMap) { +-- +2.42.0 + diff --git a/xwayland.changes b/xwayland.changes index cf04d78..2e0785c 100644 --- a/xwayland.changes +++ b/xwayland.changes @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Mon Sep 18 15:22:57 UTC 2023 - Joan Torres + +- xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch + * Fix when vncviewer fades to white on xwayland (bsc#1215385, + https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1154) + +------------------------------------------------------------------ Sat Aug 26 04:14:45 UTC 2023 - Stefan Dirsch - enable libei and libdecor only for TW, since it does not exist diff --git a/xwayland.spec b/xwayland.spec index 9faa111..9ee13ba 100644 --- a/xwayland.spec +++ b/xwayland.spec @@ -34,6 +34,8 @@ Source0: %{url}/archive/individual/xserver/%{name}-%{version}.tar.xz Source1: %{url}/archive/individual/xserver/%{name}-%{version}.tar.xz.sig Source2: xwayland.keyring +Patch1: xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch + BuildRequires: meson BuildRequires: ninja BuildRequires: pkgconfig From fb0adef406f69ebabb14ae1236b9d9600693506d72b8d158d3a0a997ba343092 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Wed, 20 Sep 2023 09:00:14 +0000 Subject: [PATCH 2/2] - Update to version 23.2.1: * glamor: Ignore destination alpha as necessary for composite operation * xtest: Check whether there is a sendEventsProc to call - supersedes xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xwayland?expand=0&rev=58 --- xwayland-23.2.0.tar.xz | 3 - xwayland-23.2.0.tar.xz.sig | Bin 95 -> 0 bytes xwayland-23.2.1.tar.xz | 3 + xwayland-23.2.1.tar.xz.sig | Bin 0 -> 95 bytes ...stination-alpha-as-necessary-for-com.patch | 68 ------------------ xwayland.changes | 8 +++ xwayland.spec | 3 +- 7 files changed, 12 insertions(+), 73 deletions(-) delete mode 100644 xwayland-23.2.0.tar.xz delete mode 100644 xwayland-23.2.0.tar.xz.sig create mode 100644 xwayland-23.2.1.tar.xz create mode 100644 xwayland-23.2.1.tar.xz.sig delete mode 100644 xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch diff --git a/xwayland-23.2.0.tar.xz b/xwayland-23.2.0.tar.xz deleted file mode 100644 index a35c153..0000000 --- a/xwayland-23.2.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7f33ec2a34de6e66ae1b7e44872c3a2146192872c719b9acf192814edbabd4c5 -size 1298020 diff --git a/xwayland-23.2.0.tar.xz.sig b/xwayland-23.2.0.tar.xz.sig deleted file mode 100644 index 99f9f93acfec3613b01b4bc4e8322b43492a261e0d4ce140d44af51dc82212fc..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeB(WnmCxVvrS6WJ$l%_9@B!=wI)xO0gmZx%=e2T^(4NQtou=F>rATz(fpF85Zn+ v!Be5|b$4i(-r}7~Qag3#Y`$K`uwdGWrF~~SvUs$ -Date: Tue, 12 Sep 2023 16:57:16 +0200 -Subject: [PATCH] glamor: Ignore destination alpha as necessary for composite operation - -If the destination drawable is a window with effective depth 24 backed -by a depth 32 pixmap. - -Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1575 ---- - glamor/glamor_priv.h | 1 + - glamor/glamor_render.c | 14 +++++++++++++- - 2 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h -index 898380d82..71aaeb8c2 100644 ---- a/glamor/glamor_priv.h -+++ b/glamor/glamor_priv.h -@@ -111,6 +111,7 @@ enum shader_mask { - enum shader_dest_swizzle { - SHADER_DEST_SWIZZLE_DEFAULT, - SHADER_DEST_SWIZZLE_ALPHA_TO_RED, -+ SHADER_DEST_SWIZZLE_IGNORE_ALPHA, - SHADER_DEST_SWIZZLE_COUNT, - }; - -diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c -index ed1222621..0d233f27b 100644 ---- a/glamor/glamor_render.c -+++ b/glamor/glamor_render.c -@@ -197,6 +197,11 @@ glamor_create_composite_fs(glamor_screen_private *glamor_priv, struct shader_key - " float undef;\n" - " return vec4(color.a, undef, undef, undef);" - "}"; -+ const char *dest_swizzle_ignore_alpha = -+ "vec4 dest_swizzle(vec4 color)\n" -+ "{" -+ " return vec4(color.xyz, 1.0);" -+ "}"; - - const char *in_normal = - "void main()\n" -@@ -286,6 +291,9 @@ glamor_create_composite_fs(glamor_screen_private *glamor_priv, struct shader_key - case SHADER_DEST_SWIZZLE_ALPHA_TO_RED: - dest_swizzle = dest_swizzle_alpha_to_red; - break; -+ case SHADER_DEST_SWIZZLE_IGNORE_ALPHA: -+ dest_swizzle = dest_swizzle_ignore_alpha; -+ break; - default: - FatalError("Bad composite shader dest swizzle"); - } -@@ -938,7 +946,11 @@ glamor_composite_choose_shader(CARD8 op, - glamor_priv->formats[8].format == GL_RED) { - key.dest_swizzle = SHADER_DEST_SWIZZLE_ALPHA_TO_RED; - } else { -- key.dest_swizzle = SHADER_DEST_SWIZZLE_DEFAULT; -+ if (dest_pixmap->drawable.depth == 32 && -+ glamor_drawable_effective_depth(dest->pDrawable) == 24) -+ key.dest_swizzle = SHADER_DEST_SWIZZLE_IGNORE_ALPHA; -+ else -+ key.dest_swizzle = SHADER_DEST_SWIZZLE_DEFAULT; - } - - if (source && source->alphaMap) { --- -2.42.0 - diff --git a/xwayland.changes b/xwayland.changes index 2e0785c..d41e424 100644 --- a/xwayland.changes +++ b/xwayland.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Sep 20 08:53:56 UTC 2023 - Stefan Dirsch + +- Update to version 23.2.1: + * glamor: Ignore destination alpha as necessary for composite operation + * xtest: Check whether there is a sendEventsProc to call +- supersedes xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch + ------------------------------------------------------------------- Mon Sep 18 15:22:57 UTC 2023 - Joan Torres diff --git a/xwayland.spec b/xwayland.spec index 9ee13ba..e5a45b1 100644 --- a/xwayland.spec +++ b/xwayland.spec @@ -24,7 +24,7 @@ %endif Name: xwayland -Version: 23.2.0 +Version: 23.2.1 Release: 0 URL: http://xorg.freedesktop.org Summary: Xwayland Xserver @@ -34,7 +34,6 @@ Source0: %{url}/archive/individual/xserver/%{name}-%{version}.tar.xz Source1: %{url}/archive/individual/xserver/%{name}-%{version}.tar.xz.sig Source2: xwayland.keyring -Patch1: xwayland-glamor-Ignore-destination-alpha-as-necessary-for-com.patch BuildRequires: meson BuildRequires: ninja