Enrico Weigelt, metux IT consult
72083eb117
glamor: don't use anonymous structs and unions in glamor_composite_shader
...
Anonymous structs and unions are a GNUism, violating C standard, thus
better not using it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-31 14:14:48 +02:00
Enrico Weigelt, metux IT consult
34c3a9c7e2
treewide: fix serverGeneration int type mismatch
...
The global (exported) serverGeneration field is `unsigned long`, while
many other places copy it and compare it two other integer types, eg.
plain `int` (which is signed). Even if it's unlikely ever reaching such
high number of generations that it will ever make trouble, it's still
a good idea to clean this up and use the same type everywhere.
For clearity, introducing a typedef `x_server_generation_t` which is
used everywhere, instead of raw `unsigned long`.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-13 11:52:03 +02:00
Enrico Weigelt, metux IT consult
f66ee7277e
treewide: replace PICT_yuv2 by PIXMAN_yuy2
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
dbe4339fd7
treewide: replace PICT_a4b4g4r4 by PIXMAN_a4b4g4r4
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
5d96eba31b
treewide: replace PICT_x4b4g4r4 by PIXMAN_x4b4g4r4
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
c2a4f0033c
treewide: replace PICT_a4r4g4b4 by PIXMAN_a4r4g4b4
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
4295cf6817
treewide: replace PICT_x4r4g4b4 by PIXMAN_x4r4g4b4
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
840a4ceabe
treewide: replace PICT_a1r5g5b5 by PIXMAN_a1r5g5b5
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
889ded74be
treewide: replace PICT_a1b5g5r5 by PIXMAN_a1b5g5r5
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
a23fdf9d2f
treewide: replace PICT_x1b5g5r5 by PIXMAN_x1b5g5r5
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
19df33aa7a
treewide: replace PICT_b5g6r5 by PIXMAN_b5g6r5
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
cadf94d6c8
treewide: replace PICT_a2b10g10r10 by PIXMAN_a2b10g10r10
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
1687c9a20f
treewide: replace PICT_a2r10g10b10 by PIXMAN_a2r10g10b10
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
ca7e24d2a7
treewide: replace PICT_a8b8g8r8 by PIXMAN_a8b8g8r8
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
fea686a1fc
treewide: replace PICT_x8b8g8r8 by PIXMAN_x8b8g8r8
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
522a2d4280
treewide: replace PICT_x2r10g10b10 by PIXMAN_x2r10g10b10
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
aba79cbfca
treewide: replace PICT_x2b10g10r10 by PIXMAN_x2b10g10r10
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
8cb07602ff
treewide: replace PICT_x1r5g5b5 by PIXMAN_x1r5g5b5
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
4ce30fdb6b
treewide: replace PICT_a8 by PIXMAN_a8
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
c113bc77ae
treewide: replace PICT_a1 by PIXMAN_a1
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
b736739892
treewide: replace PICT_r5g6b5 by PIXMAN_r5g6b5
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
3786a77ed3
treewide: replace PICT_b8g8r8x8 by PIXMAN_b8g8r8x8
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
7939ec278d
treewide: replace PICT_b8g8r8a8 by PIXMAN_b8g8r8a8
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
314540a597
treewide: replace PICT_x8r8g8b8 by PIXMAN_x8r8g8b8
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
35a43252ca
treewide: replace PICT_a8r8g8b8 by PIXMAN_a8r8g8b8
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-11 20:23:43 +02:00
Enrico Weigelt, metux IT consult
9f4391203f
treewide: replace PICT_TYPE_A by PIXMAN_TYPE_A
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 15:35:38 +02:00
Enrico Weigelt, metux IT consult
71e2b20fe0
treewide: replace PICT_TYPE_BGRA by PIXMAN_TYPE_BGRA
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 15:35:38 +02:00
Enrico Weigelt, metux IT consult
ba06904f10
treewide: replace PICT_TYPE_ABGR by PIXMAN_TYPE_ABGR
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 15:35:38 +02:00
Enrico Weigelt, metux IT consult
900c893246
treewide: replace PICT_TYPE_ARGB by PIXMAN_TYPE_ARGB
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 15:35:38 +02:00
Enrico Weigelt, metux IT consult
600b46c7c1
treewide: replace PICT_FORMAT_B by PIXMAN_FORMAT_B
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
ca118c9793
treewide: replace PICT_FORMAT_G by PICT_FORMAT_G
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
414d5c7654
treewide: replace PICT_FORMAT_R by PIXMAN_FORMAT_R
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
f104c96091
treewide: replace PICT_FORMAT_COLOR by PIXMAN_FORMAT_COLOR
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
3cd02f4245
treewide: replace PICT_FORMAT_VIS by PIXMAN_FORMAT_VIS
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
803355e874
treewide: replace PICT_FORMAT_TYPE by PIXMAN_FORMAT_TYPE
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
c2c19fc7fe
treewide: replace PICT_FORMAT_RGB by PIXMAN_FORMAT_RGB
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
7783ae7723
treewide: replace PICT_FORMAT_BPP by PIXMAN_FORMAT_BPP
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
ae1b649587
treewide: replace PICT_FORMAT_A by PIXMAN_FORMAT_A
...
Try not to use old compat macros anymore, use the real ones instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-07 12:45:37 +02:00
Enrico Weigelt, metux IT consult
02f04ec0aa
glamor: don't redefine ALIGN macro if it exists
...
On FreeBSD the ALIGN macro already exists in the standard headers,
so we sholdn't redefine it here.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-08-05 10:16:32 +02:00
stefan11111
73e56fd076
glamor: handle if GBM_BO_USE_SCANOUT is not supported
...
Backport from Xwayland:
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/433
111d318fc2
See also:
https://forums.developer.nvidia.com/t/gbm-surface-create-fails-if-flags-0/279951
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3304#note_1983279
https://gitlab.freedesktop.org/xorg/xserver/-/issues/1535
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2025-07-31 15:48:41 +02:00
stefan11111
e6885d7e8b
glamor: use gbm_bo_create_with_modifiers2()
...
This allows us to pass flags to the function, avoiding the forced
implicit GBM_BO_USE_SCANOUT which happens with the older version.
Backport from Xwayland:
f31ca9238f
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2025-07-31 15:48:41 +02:00
stefan11111
bf86850288
glamor: Only use modifier gbm API if explicit
...
If we're using implicit modifiers, we'll pass NULL and zero modifiers.
Lets just use the legacy API directly instead.
Backport from Xwayland:
08b0ea09de
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2025-07-31 15:48:41 +02:00
stefan11111
0f0b33b5b5
glamor: if glamor_get_modifiers make *num_modifiers 0, make *modifiers NULL
...
This likely wasn't a problem, as *num_modifiers was 0, so likely no
data was read from a potentially uninitilaized pointer, but it's
still better to explicitly set it to NULL.
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2025-07-31 15:48:41 +02:00
Enrico Weigelt, metux IT consult
dbe1871772
glamor: use dixAddAtom()
...
Use the new dixAddAtom() helper for creating atoms.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-07-23 12:24:27 +02:00
Enrico Weigelt, metux IT consult
bdf867ba60
glamor: use NULL instead of NullClient
...
No need to have another name for NULL, we can use NULL directly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-07-18 22:24:55 +02:00
stefan11111
daeb288bd9
glamor: Enable dma-buf on nvidia
...
Nvidia needs dma-buf for glamor acceleration to work
when using the modesetting ddx driver.
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2025-07-18 04:51:31 +02:00
stefan11111
dd23f1aaf6
glamor: Use EGL_LINUX_DMA_BUF_EXT to create GBM bo EGLImages
...
Port https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/751
to xlibre
Fixes glamor with modesetting on nvidia
This is needed for glamor to work with modesetting
on nvidia, according to the nvidia docs:
https://download.nvidia.com/XFree86/Linux-x86_64/510.39.01/README/gbm.html
From the mr above:
The X server was passing GBM bos directly to
eglCreateImageKHR using the EGL_NATIVE_PIXMAP_KHR
target. Given the EGL GBM platform spec claims it
is invalid to create a EGLSurface from a native
pixmap on the GBM platform, implying there is no
mapping between GBM objects and EGL's concept of
native pixmaps, this seems a bit questionable.
This change modifies the bo import function to
extract all the required data from the bo and then
imports it as a dma-buf instead when the dma-buf +
modifiers path is available.
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2025-07-18 04:51:30 +02:00
Enrico Weigelt, metux IT consult
eb0ded42ef
glamor: glamor.h: don't need to include fbpict.h
...
This header doesn't need anything from fbpict.h, so no need to
include it here.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-07-18 04:51:30 +02:00
notbabaisyou
7fb4ba10f2
glamor: Enable dmabuf_capable for Zink
...
This lets Zink take advantage of DRM modifiers on GPUs letting it properly handle tiled buffers.
Signed-off-by: notbabaisyou <though-went-some-simple@proton.me >
2025-06-27 19:23:43 +02:00
Icenowy Zheng
3e1c2d5456
glamor: Fix dual blend on GLES3
...
The EXT_blend_func_extended extension on ESSL always requires explicit
request to allow two FS out variables because of limitations of the ESSL
language, which is mentioned as the No.6 issue of the extension's
specification.
Fix this by adding the extension request.
The original behavior on GLES3 is slightly against the specification of
GL_EXT_blend_func_extended extension, however Mesa and older version of
PowerVR closed drivers will just ignore this issue. Newest PowerVR
closed driver will bail out on this problem, so it deems a fix now.
Fixes: ee107cd491 ("glamor: support GLES3 shaders")
Signed-off-by: Icenowy Zheng <uwu@icenowy.me >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1750 >
2025-06-26 15:30:56 +02:00