Marek Olšák
e7214b9446
glapi: rename exported symbols so as not to conflict with old libglapi
...
libwaffle 1.7.0 has a hack that dlopen's libglapi with RTLD_GLOBAL, which
was meant to preload libglapi, but with this MR it overwrites libgallium's
own symbols, which breaks libgallium.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32789 >
2025-01-23 00:49:05 +00:00
Marek Olšák
44bda7c258
dri: put shared-glapi into libgallium.*.so
...
so that we don't have to maintain a stable ABI for it.
This will allow removal of the remapping table to reduce CALL_* overhead
for GL dispatch tables.
Also we can now clean it up.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32789 >
2025-01-23 00:49:05 +00:00
Pierre-Eric Pelloux-Prayer
b307951648
glx: fix glx-create-context-invalid-es-version
...
* GLES3.x is only valid for x <= 2
* The expected error is GLXBadProfileARB, not BadValue
cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33036 >
2025-01-21 14:33:13 +00:00
Qiang Yu
e5e5af05ea
egl,gallium,glx: replace dri_get_screen_param with pipe_caps access
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32955 >
2025-01-17 04:39:46 +00:00
duncan.hopkins
20b806284a
glx: Add back in applegl_create_display() so the OpenGL.framework, on MacOS, pointer get setup.
...
Fixes: 4e8740370a ("glx: rework __glXInitialize")
Tested-by: Yurii Kolesnykov <root@yurikoles.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32656 >
2025-01-12 16:49:33 +00:00
duncan.hopkins
48ebbe2777
glx: Guard some of the bind_extensions() code with the same conditions as glx_screens frontend_screen member.
...
Configution like simple MacOS builds do not have `frontend_screen` and fail to build.
Fixes: 34dea2b38e ("glx: unify extension binding")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12317
Tested-by: Yurii Kolesnykov <root@yurikoles.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32656 >
2025-01-12 16:49:33 +00:00
duncan.hopkins
568a4ca899
glx: ignore zink check for has_explicit_modifiers and DRI3 on MacOS.
...
MacOS has neither of these so always fails to start up zink.
Reviewed-By: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32568 >
2024-12-13 00:39:16 +00:00
duncan.hopkins
e89eba0796
glx: change #if guard around dri_common.h to stop missing 'driDestroyConfigs' symbol on MacOS builds.
...
Reviewed-By: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32568 >
2024-12-13 00:39:16 +00:00
Pierre-Eric Pelloux-Prayer
9f4ab06842
glx: return BadMatch for invalid reset notification strategy
...
The specification doesn't say which error should be reported, but
piglit expects BadMatch:
/* The GLX_ARB_create_context_robustness spec does not say what error
* code should be generated. However, similar cases (e.g., valid GL
* versions) specify BadMatch. This is also the behavior of NVIDIA's
* closed-source driver.
*/
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32281 >
2024-11-27 19:00:20 +00:00
Erik Faye-Lund
5ced8b0ea2
glx: avoid null-deref
...
psc can be NULL here, so let's avoid dereferencing it.
Fixes: 34dea2b38e ("glx: unify extension binding")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32144 >
2024-11-18 09:13:14 +00:00
Adam Jackson
858eb18952
glx: Fix the GLX_EXT_swap_control_tear drawable attributes
...
GLX_SWAP_INTERVAL_EXT is always positive, GLX_LATE_SWAPS_TEAR_EXT is how
you tell whether the drawable is set to do it. This aligns us with the
spec and NVIDIA's GLX.
Closes : mesa/mesa#10193
Fixes: 5e9e457383 glx/dri3: Implement GLX_EXT_swap_control_tear
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31655 >
2024-10-23 19:55:53 +00:00
Marek Olšák
ee54fe9f69
mesa_interface: rename __DRIconfig to struct dri_config
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31752 >
2024-10-22 06:48:02 +00:00
Marek Olšák
186a3b6dad
mesa_interface: replace opaque __DRIdrawable with struct dri_drawable everywhere
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31752 >
2024-10-22 06:48:02 +00:00
Marek Olšák
329e03535b
mesa_interface: replace opaque __DRIcontext with struct dri_context everywhere
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31752 >
2024-10-22 06:48:02 +00:00
Marek Olšák
1ce9aa3d65
mesa_interface: replace opaque __DRIscreen with struct dri_screen everywhere
...
it's always struct dri_screen
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31752 >
2024-10-22 06:48:02 +00:00
David Rosca
656a03e583
glx: Destroy base screen after deinitScreen
...
Instead of destroying it before deinitScreen to match the original order.
Fixes: 407a9094f7 ("glx: move base screen destroy to glx_screen_cleanup")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31087 >
2024-09-10 08:55:58 +02:00
Sid Pranjale
27c09eacb7
glx: add a missing nullptr check
...
This caused GLX applications to segfault under zink.
This technically also fixes cleanup when any driver fails init
Signed-off-by: Sid Pranjale <mail@sidonthe.net>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31072 >
2024-09-10 01:29:48 +00:00
Mike Blumenkrantz
b6f201b173
meson: require dri3 modifiers
...
the year is 2024 and we have the technology
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31044 >
2024-09-06 17:34:17 +00:00
Mike Blumenkrantz
8f6fca89aa
meson: delete dri3 build option
...
this existed for historical reasons, but realistically now it should
be possible to build mesa with dri3 always enabled. additionally,
this check was often used as a substitute for having drm functionality,
which is sort of similar but also not really a direct match
this simplifies a bunch of conditionals and prevents users from footgunnning
themselves into orbit
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30952 >
2024-09-04 14:48:17 +00:00
Yunhyeok "Yune" Choi
27014df366
glx: Getting rid of the double assignment in __glXWireToEvent.
...
Previously the field `event_type` in `GLXPbufferClobberEvent`
was assigned twice in succession with different values.
Removing the first assignment and retaining only the second one.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30836 >
2024-08-26 23:19:56 +00:00
Mike Blumenkrantz
7930fe5f01
glx: unify dri screen init
...
lot of duplication
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
520572eb25
glx: inline __GLXDRIscreen onto base glx_screen
...
this is much less awkward
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
2c50ee4398
glx: determine is_direct_capable from driver type
...
indirect contexts have no driver type
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
912090fa96
glx: unify more extension setup
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
0af723ea44
glx/dri3: delete driScreenRenderGPU
...
this is redundant
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
407a9094f7
glx: move base screen destroy to glx_screen_cleanup
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
b89cf3bbaa
glx: rework screen destroy
...
all the destroy functions call free, but also the caller function calls
free anyway, so just change destroy -> deinit and let there be one free
call
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
39fe5a5dac
glx: move driver_configs to base glx_screen
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
abe3bea574
glx: delete private DRIscreen pointers
...
these are all on the base glx_screen object now
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
5ece0a3b66
glx: unify bind_tex_image
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
19f38ba000
glx: unify dri screen vtable
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:59 +00:00
Mike Blumenkrantz
b06e861dc8
glx: unify dri get_driver_name
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
f717e67f0c
glx/dri3: strdup existing driverName instead of fetching it again
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
046728f47a
glx/dri2: strdup driver name
...
this is freed by the caller
cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
5edfc64858
glx: unify renderer query hooks
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
479f778a2c
glx: unify dri create_context_attribs
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
7efd6d8a8c
glx: tweak some dri3 context create code
...
this better matches dri2/drisw create
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
d19c650c7e
glx: tweak some drisw context create code
...
this better matches dri2/dri3 create
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
273efc92cf
glx: unify dri destroy context
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
346fae55e7
glx: unify dri unbind context
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
b62601a716
glx: unify dri bind_context
...
these were all more or less the same
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
09eae187dd
glx: use __GLXDRIdrawable more broadly instead of display type drawables
...
most of this usage was to get at the __DRIdrawable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
46c3bc3365
glx: move/add __DRIdrawable struct to __GLXDRIdrawable
...
this makes access simpler
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
476b4581d9
glx: flatten out getBufferAge a bit
...
more flattening to come
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
1908794023
glx: simplify kopper_get_buffer_age
...
these checks are pointless
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
9042e9a8c0
dri: rework drawable creation
...
this consolidates all the creation code into the dri frontend,
enabling a single caller from the loader
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
af6d3fdf6e
dri: pass has_multibuffers through from the loader
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
ac41da32b3
glx: always set swapInterval in drisw
...
this isn't (currently) used by pure sw, but guarding it in a conditional
is pointless
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
8cc95baf7b
dri: merge in loader_dri3
...
this simplifies dependencies
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619 >
2024-08-19 17:43:58 +00:00
Mike Blumenkrantz
694478025d
egl/glx: make detecting explicit modifier support more explicit
...
explicit modifier usage is different from general modifier capability
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11652 , https://gitlab.freedesktop.org/mesa/mesa/-/issues/11663
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30662 >
2024-08-19 15:00:51 +00:00