Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected], [email protected]
Control: affects -1 + src:xorg-server
User: [email protected]
Usertags: pu

Hi,

a small cherry-pick please.

[ Reason ]
Fix for some old hardware, with some windowmanager: "Glamor: handle 
EXT_gpu_shader4 in dual source blend paths"

[ Impact ]
XServer crash unexpected.

[ Effected old hardware ]
Intel gen4/5 mainly (e.g. GMA4500MHD) ( with GLSL 1.20, which means OpenGL 2.1 )

[ Effected desktops enviroments ]
Effected desktop enviroments (window-manager): MATE (Marco), LXDE (Openbox), 
Cinnamon
Not effected desktop enviroments (short test): KDE Plasma, Gnome, Xfce, LXQT, 
Budgie, Lomiri

[ Tests ]
Tested using our my hardware (one affected, and one not affected)

[ Risks ]
Very simple patch.
No / low risk:
 - Newer hardware is not effected. Will be skipped by version check.
 - Old hardware will already crash here.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [X] the issue is verified as fixed in unstable

[ More Info ]
Bug example (reproduceable): Changing the font size of a text in LibreOffice 
Write causes XServer to crash.
Patch was merged to upstream-master in year 2023.
Patch was backported to 21.1 line in year 2025 (version 21.1.19).
Commits:
https://gitlab.freedesktop.org/xorg/xserver/-/commit/86598739ba285045bc03778d43e25bb0886627f3
https://salsa.debian.org/xorg-team/xserver/xorg-server/-/commit/feb860014df0b8b1a4b1f8921843fb1cd77eeafc
Merge-Request:
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1066
Merge-Request (backport to 21.1):
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1636
Bug-Reports:
https://gitlab.freedesktop.org/xorg/xserver/-/work_items/1336
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1988438


With kind regard & thanks.
2387skju
diff -ruN xorg-server-21.1.16/debian/changelog 
xorg-server-21.1.16/debian/changelog
--- xorg-server-21.1.16/debian/changelog        2026-10-03 09:23:42.000000000 
+0200
+++ xorg-server-21.1.16/debian/changelog        2026-10-17 14:04:26.905876880 
+0200
@@ -1,3 +1,9 @@
+xorg-server (2:21.1.16-1.3+deb13u5) trixie; urgency=medium
+
+  * Glamor: handle EXT_gpu_shader4 in dual source blend paths
+
+ -- 2387skju <[email protected]>  Sat, 08 Nov 2026 10:43:43 +0200
+
 xorg-server (2:21.1.16-1.3+deb13u4) trixie-security; urgency=high
 
   * Non-maintainer upload by the Security Team.
diff -ruN xorg-server-21.1.16/debian/patches/series 
xorg-server-21.1.16/debian/patches/series
--- xorg-server-21.1.16/debian/patches/series   2026-10-03 09:23:42.000000000 
+0200
+++ xorg-server-21.1.16/debian/patches/series   2026-10-11 22:02:57.325330684 
+0200
@@ -35,3 +35,4 @@
 glx-free-old-context-tag-before-allocating-new-one-i.patch
 fb-mi-glamor-reject-glyphs-with-negative-dimensions.patch
 glamor-reject-fonts-with-per-glyph-metrics-exceeding.patch
+glamor-handle-EXT_gpu_shader4-in-dual-source-blend-paths.patch
diff -ruN 
xorg-server-21.1.16/debian/patches/glamor-handle-EXT_gpu_shader4-in-dual-source-blend-paths.patch
 
xorg-server-21.1.16/debian/patches/glamor-handle-EXT_gpu_shader4-in-dual-source-blend-paths.patch
--- 
xorg-server-21.1.16/debian/patches/glamor-handle-EXT_gpu_shader4-in-dual-source-blend-paths.patch
   1970-01-01 01:00:00.000000000 +0100
+++ 
xorg-server-21.1.16/debian/patches/glamor-handle-EXT_gpu_shader4-in-dual-source-blend-paths.patch
   2026-10-17 13:52:50.626095981 +0200
@@ -0,0 +1,53 @@
+Description: glamor: handle EXT_gpu_shader4 in dual source blend paths
+Fix a xserver-crash on old hardware with some window-managers.
+Effected hardware: Intel gen4/5 mainly (e.g. GMA4500MHD) (with OpenGL 2.1 and 
GLSL 1.20)
+Effected desktop enviroments (window-manager): MATE (Marco), LXDE (Openbox), 
Cinnamon
+Not effected desktop enviroments (just short tested):  KDE Plasma, Gnome, 
Xfce, LXQT, Budgie, Lomiri
+Fixes: a9552868697c ("glamor: add EXT_gpu_shader4 support")
+Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1636>
+Origin: upstream, 
https://gitlab.freedesktop.org/xorg/xserver/-/commit/86598739ba285045bc03778d43e25bb0886627f3
+Bug: https://gitlab.freedesktop.org/xorg/xserver/-/work_items/1336
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1988438
+Applied-Upstream: Version 21.1.19
+---
+--- a/glamor/glamor_render.c
++++ b/glamor/glamor_render.c
+@@ -61,7 +61,7 @@
+ 
+ #define RepeatFix                     10
+ static GLuint
+-glamor_create_composite_fs(struct shader_key *key)
++glamor_create_composite_fs(glamor_screen_private *glamor_priv, struct 
shader_key *key)
+ {
+     const char *repeat_define =
+         "#define RepeatNone                         0\n"
+@@ -223,6 +223,8 @@
+         "}\n";
+     const char *header_ca_dual_blend =
+         "#version 130\n";
++    const char *header_ca_dual_blend_gpu_shader4 =
++        "#version 120\n#extension GL_EXT_gpu_shader4 : require\n";
+ 
+     char *source;
+     const char *source_fetch;
+@@ -292,7 +294,10 @@
+         break;
+     case glamor_program_alpha_dual_blend:
+         in = in_ca_dual_blend;
+-        header = header_ca_dual_blend;
++        if (glamor_priv->glsl_version >= 130)
++           header = header_ca_dual_blend;
++        else
++           header = header_ca_dual_blend_gpu_shader4;
+         break;
+     default:
+         FatalError("Bad composite IN type");
+@@ -359,7 +364,7 @@
+     vs = glamor_create_composite_vs(key);
+     if (vs == 0)
+         return;
+-    fs = glamor_create_composite_fs(key);
++    fs = glamor_create_composite_fs(glamor_priv, key);
+     if (fs == 0)
+         return;
+ 

Reply via email to