Olivier Fourdan
4252aaedb7
xkb: Fix buffer overflow in XkbVModMaskText()
...
The code in XkbVModMaskText() allocates a fixed sized buffer on the
stack and copies the virtual mod name.
There's actually two issues in the code that can lead to a buffer
overflow.
First, the bound check mixes pointers and integers using misplaced
parenthesis, defeating the bound check.
But even though, if the check fails, the data is still copied, so the
stack overflow will occur regardless.
Change the logic to skip the copy entirely if the bound check fails.
CVE-2025-26595, ZDI-CAN-25545
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1828 >
(cherry picked from commit 11fcda8753 )
2026-01-25 10:40:00 -08:00
Peter Hutterer
077944f99e
dix: keep a ref to the rootCursor
...
CreateCursor returns a cursor with refcount 1 - that refcount is used by
the resource system, any caller needs to call RefCursor to get their own
reference. That happens correctly for normal cursors but for our
rootCursor we keep a variable to the cursor despite not having a ref for
ourselves.
Fix this by reffing/unreffing the rootCursor to ensure our pointer is
valid.
Related to CVE-2025-26594, ZDI-CAN-25544
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com >
(cherry picked from commit b0a09ba602 )
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1830 >
2026-01-25 10:40:00 -08:00
Olivier Fourdan
fb6dd658d7
Cursor: Refuse to free the root cursor
...
If a cursor reference count drops to 0, the cursor is freed.
The root cursor however is referenced with a specific global variable,
and when the root cursor is freed, the global variable may still point
to freed memory.
Make sure to prevent the rootCursor from being explicitly freed by a
client.
CVE-2025-26594, ZDI-CAN-25544
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
v2: Explicitly forbid XFreeCursor() on the root cursor (Peter Hutterer
<peter.hutterer@who-t.net >)
v3: Return BadCursor instead of BadValue (Michel Dänzer
<michel@daenzer.net >)
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Suggested-by: Peter Hutterer <peter.hutterer@who-t.net >
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1828 >
(cherry picked from commit 01642f263f )
2026-01-25 10:40:00 -08:00
Jan Engelhardt
e140707ade
glamor: explicitly draw endpoints of line segments
...
The OpenGL 4.6 specification §14.5.1 "Basic Line Rasterization"
figure 14.2 says:
"""A diamond shaped region of height 1 is placed around each fragment
center; those regions that the line segment **exits** cause
rasterization to produce corresponding fragments."""
As the line does not necessarily exit the last diamond,
it is necessary to explicitly paint a pixel at line ends.
Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1434
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1755 >
(cherry picked from commit 530e80375e )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
7fe8901653
drop not needed includes of geext.h
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1810 >
(cherry picked from commit 1fc9a26afd )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
72803d8ad3
Xext: dpms: need to include geext.h
...
It's calling GERegisterExtension(), which is defined in geext.h
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1810 >
(cherry picked from commit a955b83848 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
d88ffb69b4
present: need to include geext.h
...
It's calling GERegisterExtension(), which is defined in geext.h
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1810 >
(cherry picked from commit ce1f0c9375 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
ab1a65e563
dbe: fix byte swapping in SProcDbeSwapBuffers()
...
The loop forgot to move the SwapInfo pointer, so the same list entry
gets swapped over and over again, while the remaining ones get ignored.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1822 >
(cherry picked from commit 86244ff36f )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
ce86a7c622
present: fix prototype for present_select_input()
...
Wants XID instead of CARD32 for 2nd parameter.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1809 >
(cherry picked from commit b664b44869 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
92107b5803
Xext: geext.h: fix missing include of Xfuncproto.h
...
Needed for _X_EXPORT.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit 658f1b34ee )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
5c8656e4cb
Xext: geext: move struct _GEExtension into geext.c
...
Not used anywhere outside geext implementation itself,
so shouldn't be public at all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit a7600ac884 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
c0161d21c2
Xext: geext: unexport GEExtensions[]
...
This field isn't used by anybody outside, nor should it be accessed
directly. So better make it local.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit 896937298b )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
88d6286897
Xext: geext: drop unused GEV() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit 480a7e4b11 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
0c91df7c3f
Xext: geext: drop unused GEEXT() macro
...
Not used by anybody, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit ae7bbd36df )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
9a071c97f4
Xext: geext: drop unused GEEXTIDX() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit b865f44f5e )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
98efb4746a
Xext: geext: drop unused GEMaskIsSet() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit 1006a37f7d )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
3d6bfe8b1f
Xext: geext: drop unused GECLIENT() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit c1d49e19b9 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
8735cbcd9e
Xext: geext: drop unused GEIsType() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit 01ad88b8c8 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
a3a8e04ab8
Xext: geext: drop unused GEEventFill() macro
...
It's not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
(cherry picked from commit bdb5d4867a )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
0d24538c6d
xwin: don't need NULL check before free()
...
free() is safe against NULL arguments.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1818 >
(cherry picked from commit 573d70ae25 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
7ab9e87cbd
glamor: don't need NULL check before free()
...
free() is safe against NULL arguments.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1818 >
(cherry picked from commit eafec5836a )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
b0f1885019
present: need to include <X11/Xfuncproto.h>
...
Some headers making use of X_EXPORT macro, so Xfuncproto.h should be
included explicitly, instead of silently relying any other include
already doing that.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1813 >
(cherry picked from commit 7ca8c1518c )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
09f7a0303f
present: need to include dix-config.h
...
dix-config.h always needs to be included first, otherwise things
can get messed up in really obscure ways, eg. certain types silently
changing in size and causing mysterious crashes.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1813 >
(cherry picked from commit b55d726a7b )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
531e6c115f
meson.build: enable VLA warning
...
variable length arrays can be dangerous, so better don't use
them at all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1819 >
(cherry picked from commit 2e6f3a632b )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
4c0cb01506
test: sync: don't use VLA
...
The array size is fixed anyways, so we can use a symbol instead
of variable.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1819 >
(cherry picked from commit b4f0c1abd5 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
dc2df95385
xfree86: modesetting: don't use VLA
...
even through this specific case is correct and safe, it's safer to
remove all VLA usages and forbid them completely by compiler flag.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1819 >
(cherry picked from commit f894801fa2 )
2026-01-25 10:40:00 -08:00
Doug Brown
0fcef31fd8
dri2: Protect against dri2ClientPrivate assertion failures
...
If DRI2ScreenInit hasn't been called yet, DRI2Authenticate and
DRI2CreateDrawable2 cause the X server to crash. This has been observed
to happen on multiple modern Linux distros in various conditions,
including QEMU and VMware VMs. Make these functions more robust in order
to prevent the crash.
This patch was originally provided by Bernhard Übelacker and expanded
upon by Mark Wagner.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1053
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1534
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1608 >
(cherry picked from commit a0834009cf )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
75105fae65
ci: update freebsd builder image
...
FreeBSD upstream removed image for 14.0 image, so we need to update.
Also increasing image size, since the new images are too small.
(needs update of ci-templates)
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1784 >
(cherry picked from commit 6ec89c91f3 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
a1be877d43
xfree86: doc: update docs on XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit 80f5d29c84 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
511243a4c1
xfree86: inputtest: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit e88762896e )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
001df8ad29
xfree86: modsetting: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit 2a10eff6c5 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
20bd82e972
xfree86: exa: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit c8ad9c6567 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
6775511085
xfree86: fbdevhw: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit c862cf3c3a )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
eaabd43c7e
xfree86: xf86int10module: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit d87e93bf40 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
81a42ac3b8
xfree86: xfbmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit f54993a222 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
2f5fba159c
xfree86: vgaHWmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit a2e20304e0 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
e2738f3790
xfree86: shmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit 3066125bec )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
5722da8f4b
xfree86: sfbmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit f0590decb6 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
9ac862ff82
xfree86: glxmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit 03becba76b )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
81e39745f9
xfree86: fbmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit 7dd8d0627c )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
187b82e956
glamor: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit c46e645bad )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
010a5fb420
xfree86: xf86configure: use NULL instead of 0
...
Zero pointers should be initialized w/ NULL instead of raw 0.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
(cherry picked from commit 1848027892 )
2026-01-25 10:40:00 -08:00
Alan Coopersmith
043b68040b
ci: update XTS to a commit that doesn't require -fcommon workaround
...
xorg/test/xts!10 fixed XTS to build with recent gcc without adding -fcommon
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1786 >
(cherry picked from commit 9af363b046 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
307f1afe31
doc: drop removed PaintWindowBackground() and PaintWindowBorder()
...
These have been removed 1.5 decades ago.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1785 >
(cherry picked from commit f209ac2014 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
5f0b547522
dri: report failed memory allocation
...
ProcXF86DRIGetDrawableInfo() should report failed memory allocation instead
of pretending everything's okay.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1797 >
(cherry picked from commit 94d942267a )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
e2b88e3143
modsetting: also add libglx to library symbol test
...
Increase test coverage a bit.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1798 >
(cherry picked from commit 2539ddae50 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
67fbb2b1b9
xfree86: os-support: unexport xf86scanpci()
...
Not used by any drivers/modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1800 >
(cherry picked from commit e10283d842 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
9d5cbe76ef
os: no need to defined PATH_MAX
...
All our supported platforms define it, so no need to do
it on our own.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1803 >
(cherry picked from commit 9dc26f6743 )
2026-01-25 10:40:00 -08:00
Enrico Weigelt, metux IT consult
10b8cd6481
os: drop upstart specific SIGSTOP signaling logic
...
Upstart is long dead, discontinued a decade ago, so there's no
need to keep around a special signaling logic just for it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1791 >
(cherry picked from commit 6c24e53a89 )
2026-01-25 10:40:00 -08:00
Andy Myers
39a67e9e03
xvfb: Add multiple CRTC support
...
Multiple CRTCs can be added on a per-screen basis with the new -crtcs
option. Each CRTC has one associated output. Outputs beyond the first
are disabled by default and can be enabled by setting a mode. Outputs
can be disabled again by setting the associated CRTC's mode and output
to None.
Signed-off-by: Andy Myers <andy.myers@zetier.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1749 >
(cherry picked from commit 7933cc24d0 )
2026-01-25 10:40:00 -08:00