Michel Dänzer
6928daf585
dri2: Deduplicate attachments in do_get_buffer
...
It was always the intention of the DRI2 protocol that there's at most
one instance of each attachment, and that's how it was implemented in
Mesa.
Since that wasn't enforced though, there might be other clients in the
wild which (e.g. accidentally) request the same attachment multiple
times. So starting to a raise a protocol error in this case now risks
breaking such clients.
Instead, just deduplicate the attachments using a bit-set.
This has a couple of desirable side effects:
* destroy_buffer cannot be called multiple times for the same
DRI2BufferPtr.
* The client cannot cause the server to allocate a buffers array with
more entries than there are attachments (currently 11).
changes by mtx: fix FTBS by dropping now unused have_fake_front variable.
Signed-off-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2228 >
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-10 15:52:17 +02:00
..
damage
Xext: damage: turn around return values on doDamageCreate()
2026-04-29 11:29:42 +02:00
dri2
dri2: Deduplicate attachments in do_get_buffer
2026-06-10 15:52:17 +02:00
namespace
Xext: namespace: Allow using tabs as delimeters
2026-01-22 08:57:15 +01:00
bigreq.c
Xext: bigreq: drop unnecessary includes
2026-04-29 15:06:50 +02:00
dpms.c
Xext: dpms: use new X_REPLY_FIELD_* macros
2026-04-28 17:32:39 +02:00
dpmsproc.h
xext: move include guards up to wrap the whole file
2025-11-21 15:20:11 +01:00
geext.c
Xext: geext: use new X_REPLY_FIELD_* macros
2026-04-28 17:12:01 +02:00
geext_priv.h
include: fix missing includes of <X11/Xfuncproto.h>
2026-04-24 13:04:40 +02:00
hashtable.c
xext: replace xallocarray() by calloc()
2025-06-12 17:21:43 +02:00
hashtable.h
Xext: hashtable.h: unexport functions not used by drivers
2025-06-12 16:51:36 +02:00
meson.build
Xext: move over public SDK headers to include/
2026-02-12 19:00:42 +01:00
panoramiX.c
panoramiX: fail if we can't allocate our visual arrays
2026-04-30 19:19:15 +02:00
panoramiX.h
xext: move include guards up to wrap the whole file
2025-11-21 15:20:11 +01:00
panoramiXh.h
Xext: panoramiXh.h: fix missing include of "dix.h"
2026-04-24 16:44:21 +02:00
panoramiXprocs.c
Xext: declare rc variables where needed
2026-04-29 10:03:52 +02:00
panoramiXsrv.h
xext: move include guards up to wrap the whole file
2025-11-21 15:20:11 +01:00
saver.c
saver: re-fetch screen private after CheckScreenPrivate in CreateSaverWindow
2026-06-03 19:08:00 +02:00
security.c
Xext: declare rc variables where needed
2026-04-29 10:03:52 +02:00
securitysrv.h
Xext: security: drop not needed include
2025-06-12 16:30:13 +02:00
shape.c
Xext: declare rc variables where needed
2026-04-29 10:03:52 +02:00
shm.c
Xext: shm: declare variables where needed in ProcShmPutImage()
2026-04-29 17:14:00 +02:00
shm_priv.h
Xext: move over public SDK headers to include/
2026-02-12 19:00:42 +01:00
sleepuntil.c
Xext: sleepuntil: rename list walk variables
2026-04-29 18:27:55 +02:00
sleepuntil.h
xext: move include guards up to wrap the whole file
2025-11-21 15:20:11 +01:00
sync.c
sync: restart trigger list iteration in SyncChangeCounter after TriggerFired
2026-06-03 19:09:02 +02:00
syncsrv.h
xace.c
dix: replace XACE_SCREEN_ACCESS by direct callback
2025-10-22 13:53:25 +02:00
xace.h
treewide: don't include <region.h> anymore
2025-11-27 19:27:27 +01:00
xacestr.h
dix: replace XACE_SCREEN_ACCESS by direct callback
2025-10-22 13:53:25 +02:00
xcmisc.c
Xext: xcmisc: brackets around if
2026-04-29 19:27:57 +02:00
xf86bigfont.c
Xext: xf86bigfont: brackets around if/for/while
2026-04-29 20:04:10 +02:00
xf86bigfontsrv.h
xres.c
Xext: xres: brackets on if's
2026-04-29 19:52:42 +02:00
xselinux.h
Xext: selinux.h: fix missing include of <X11/Xmd.h>
2026-04-24 13:04:52 +02:00
xselinux_ext.c
Xext: selinux: brackets around if/for
2026-04-29 20:12:39 +02:00
xselinux_hooks.c
Xext: xselinux_hooks: brackets on if/for
2026-04-30 11:05:00 +02:00
xselinux_label.c
Xext: xselinux_label: brackets around if/for
2026-04-30 11:05:23 +02:00
xselinuxint.h
xtest.c
Xext: xtest: bracket around if/for
2026-04-30 12:19:54 +02:00
xvdisp.c
Xext: xv: use new X_REPLY_FIELD_* macros
2026-04-28 17:31:20 +02:00
xvdisp.h
xext: add/fix include guards where missing/broken
2025-06-27 13:58:05 +02:00
xvdix_priv.h
Xext: move over public SDK headers to include/
2026-02-12 19:00:42 +01:00
xvmain.c
Xext: declare rc variables where needed
2026-04-29 10:03:52 +02:00
xvmc.c
Xext: declare rc variables where needed
2026-04-29 10:03:52 +02:00