Emma Anholt
eb2dcda50c
egl: Move common eglCreateContext() error checks from backends to core.
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20171 >
2022-12-09 05:32:18 +00:00
Emma Anholt
e6285ea55f
egl: Replace the robustness DRI2 ext check with a pipe cap query.
...
This means that swkms will now report it with llvmpipe. drisw reported it
with llvmpipe, and it appears to have been an oversight that got
refactored into an obvious "if !swkms" check later.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20171 >
2022-12-09 05:32:18 +00:00
Emma Anholt
f4b2f9cff2
egl: Remove silly robustness support checks.
...
The EGL frontend checks for the extension's presence before allowing the
user to set these values.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20171 >
2022-12-09 05:32:18 +00:00
Emma Anholt
a42feab5ae
egl+glx: Always support no_error contexts.
...
Since we know we're loading this Mesa build, we know that no_error is
always supported (the renderer query always returned true).
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
895ec843d3
egl: Collapse a bunch of renderer queries into pipe cap queries.
...
Now that we can access the pipe screen through the dri_screen, we can skip
some indirection.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
7ab8dd13b9
egl: Pull the API mask directly out of the dri_screen.
...
Now that we know the driver on the other side is the same version of Mesa
as our build, we can just access the screen instead of having accessor
functions.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
133e2f8ac3
dri: Add createContext hook to __DRI_MESA.
...
Again, reduces switching on driver type in the loader.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
4dd656e19a
dri: Add createNewScreen into the __DRI_MESA extension.
...
Now the loaders don't have to switch on dri2/dri3/swrast.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
1026d29344
dri: Introduce internal Mesa DRI driver loader extension.
...
All DRI loaders in Mesa (EGL, GLX, gbm) now require this ext and that the
driver come from a matching build. This will let us use Mesa-internal
types and enums across the loader-driver bounary inside of Mesa.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Eric Engestrom <eric@igalia.com >
LOL-YESed-by: Kristian Høgsberg <krh@bitplanet.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
ca7a74199f
egl: Switch to using loader_bind_extensions().
...
Slightly different than our dri2_bind_extensions(), but same idea.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
7d36423032
egl: Refactor common error handling for context creation.
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20044 >
2022-12-01 09:17:31 +00:00
Emma Anholt
d592f56746
egl: Bump minimum version of __DRI_SWRAST to 4.
...
The only implementer in tree is v4. This simplifies some bits now that we
always have CreateContextAttribs.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20044 >
2022-12-01 09:17:31 +00:00
Emma Anholt
9fd2901454
egl: Require __DRI_DRI2 v4 if we're to do DRI2.
...
The only in-tree implementers are v4.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20044 >
2022-12-01 09:17:30 +00:00
Emma Anholt
0847140e71
egl: Bump __DRI_CONFIG_OPTIONS min version to 2.
...
The only implementer in tree is v2.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20044 >
2022-12-01 09:17:30 +00:00
Emma Anholt
d92dd4fb2f
egl: Bump minimum version of __DRI_IMAGE to 6 and drop version checks.
...
All __DRI_IMAGEs in tree are v6+ (lowest being drisw) and implement
createImageFromTexture.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20044 >
2022-12-01 09:17:30 +00:00
Emma Anholt
12d67aabed
egl: Bump required version of optional __DRI2_FENCE to 2.
...
The only implementer of it in tree is v2, so no need for checks.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20044 >
2022-12-01 09:17:30 +00:00
Adam Jackson
3732c7aa63
egl: Fix uninitialized variable warning
...
Fedora's gcc 12.2.1 says:
../src/egl/main/eglapi.c: In function ‘eglDupNativeFenceFDANDROID’:
../src/egl/main/eglapi.c:2268:11: warning: ‘ret’ may be used uninitialized [-Wmaybe-uninitialized]
2268 | EGLint ret;
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19913 >
2022-11-22 01:54:51 +00:00
Jose Maria Casanova Crespo
4ea4147935
gallium/dri: Add P030 format
...
Acked-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19639 >
2022-11-21 09:08:44 +00:00
Michel Dänzer
71a0a386b5
Revert "egl/glx: add fallback for zink loading"
...
This reverts commit 2569215f43 .
Conflicts:
src/egl/main/eglapi.c
src/glx/glxext.c
It broke the fallback to swrast in some cases where zink can't work.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7333
Fixes: 2569215f43 ("egl/glx: add fallback for zink loading")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19681 >
2022-11-17 01:08:33 +00:00
Yonggang Luo
f03421702c
meson: Refactoring shared gen_vs_module_defs_normal_command out
...
Cc: mesa-stable
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19610 >
2022-11-11 05:38:19 +00:00
Yonggang Luo
26a6d16db0
zink: Only #include <vulkan/vulkan_core.h> instead #include <vulkan/vulkan.h> in kopper_interface.h
...
It's pulled too much system dependent headers before this commit
when #include <vulkan/vulkan.h> directly,
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19491 >
2022-11-10 06:59:42 +00:00
Yonggang Luo
37d79e38e9
egl: Remove the need of _MTX_INITIALIZER_NP by using simple_mtx_t/SIMPLE_MTX_INITIALIZER in egllog.c
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18493 >
2022-11-09 04:38:28 +00:00
Jesse Natalie
f35c8b4dbf
egl/wgl: Implement interop methods
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242 >
2022-11-02 18:11:41 +00:00
Jesse Natalie
89cd55e11d
egl/dri2: Implement the new flush method
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242 >
2022-11-02 18:11:41 +00:00
Illia Abernikhin
aa4ac5ff8b
utils: Merge util/debug.* into util/u_debug.* and remove util/debug.*
...
Rename env_var_as_unsigned() -> debug_get_num_option(), because duplicate
Rename env_var_as_bool() -> debug_get_bool_option(), because duplicate
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7177
Signed-off-by: Illia Abernikhin <illia.abernikhin@globallogic.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19336 >
2022-11-02 07:25:39 +00:00
Lionel Landwerlin
9de1263842
egl: Add EGL_EXT_protected_content support
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8092 >
2022-10-27 10:53:18 +00:00
Lionel Landwerlin
62ac2cec85
dri: rename PROTECTED_CONTENT in PROTECTED_SURFACE
...
Better suiting to the associated extension EXT_protected_surface.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8092 >
2022-10-27 10:53:18 +00:00
Simon Ser
4c080cb8e5
egl: fix error string for dri2_create_image_dma_buf()
...
Using dri2_create_image_khr_texture_error() here prints an error
like so:
command: eglCreateImageKHR, error: EGL_BAD_ALLOC (0x3003), message: "dri2_create_image_khr_texture"
This is confusing, because dri2_create_image_khr_texture() is
unrelated to this error.
Instead, print a more accurate error manually.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19156 >
2022-10-21 14:57:25 +00:00
Rob Clark
20f33a1cd9
Revert "egl: Factor some common terminate cleanup up to common code"
...
This reverts commit 04826cd9fc .
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7497
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19145 >
2022-10-20 22:21:01 +00:00
Yonggang Luo
86290c81b2
egl/dri2: Use util_call_once_data to replace usage of mtx_t glFlushMutex
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19154 >
2022-10-20 01:32:47 +00:00
Yonggang Luo
56a34d1568
egl/wgl: Use util_call_once_data to replace usage of mtx_t glFlushMutex
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19154 >
2022-10-20 01:32:47 +00:00
Yonggang Luo
44ccaca41d
util/mesa/wide: Rename _SIMPLE_MTX_INITIALIZER_NP to SIMPLE_MTX_INITIALIZER
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18393 >
2022-10-14 03:27:41 +00:00
Simon Zeni
96894e6746
EGL: sync headers with Khronos
...
Since [1], EGL removed the inclusion of the Xlib headers by default.
The logic is now reversed, and the call has to define USE_X11 to include the
Xlib headers instead of EGL_NO_X11_HEADERS to prevent the inclusion.
[1]: https://github.com/KhronosGroup/EGL-Registry/pull/130/commits/3670d645f4a26a0a9e87e7f3a8608e7cc1d53b5b
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18848 >
2022-10-12 19:26:01 +00:00
Simon Zeni
1fc7f0f084
egl: set API symbols public
...
With the latest header update from Khronos, KHRONOS_APICALL (which is then
defined as EGLAPI) is empty, preventing the API symbols to be visible.
This commit adds `PUBLIC` to all the symbols from the EGL API that needs to be
visible.
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18848 >
2022-10-12 19:26:01 +00:00
Simon Zeni
15b931bee7
egl: fix Xlib include in egldisplay.h
...
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18848 >
2022-10-12 19:26:01 +00:00
Adam Jackson
c268ae9efe
egl: Remove a bogus restriction from eglMakeCurrent
...
The comment here is from the EGL_MESA_configless_context era, and maybe
that was true, but EGL_KHR_no_config_context has no such restriction.
The only restriction is that both surfaces be compatible with the
context, but a no-config context is defined to be compatible with any
surface.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18824 >
2022-09-27 16:00:45 +00:00
Adam Jackson
71224789cf
egl/dri2: Fix a weird conditional in dri2_make_current
...
It's not valid to get here with no context but with real surfaces.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18824 >
2022-09-27 16:00:45 +00:00
Adam Jackson
04826cd9fc
egl: Factor some common terminate cleanup up to common code
...
It's a little difficult to see from the diff, but this is effectively
the same calling sequence as before, and more importantly it means the
backend only cleans up backend state rather than needing to call up to
the core.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18824 >
2022-09-27 16:00:45 +00:00
Adam Jackson
a942068fdb
egl: Formatting fix
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18824 >
2022-09-27 16:00:45 +00:00
Adam Jackson
4c5dee6c22
egl: Rewrite eglSetBlobCacheFuncsANDROID to use the standard macros
...
As the deleted comment hints, you just need the macro to expand to
return /* void */;
for things to work.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:58 +00:00
Adam Jackson
eb39198fe2
egl: Factor out the eglTerminate write-lock pattern
...
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:58 +00:00
Adam Jackson
b2ee2de1fb
egl: Untangle some spaghetti around _eglLookupDisplay
...
Only eglapi needs any of this.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:58 +00:00
Adam Jackson
1f94f28e8c
egl: Promote _eglLock/UnlockDisplay to internal API
...
This reads a bit more cleanly than egl_lock/egl_unlock I think.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:58 +00:00
Adam Jackson
5e407ec524
egl: Fix a bunch of maybe-uninitialized warnings
...
Fedora's gcc 12 is apparently not smart enough to deduce that these are
always initialized, so set some clear default values.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713 >
2022-09-22 20:13:57 +00:00
Mike Blumenkrantz
2569215f43
egl/glx: add fallback for zink loading
...
if the driver attemping to load is not zink and not software, then
attempt a zink fallback on failure
this conservatively handles the case of "only zink is built", though it
is going to be noticeably slower at startup than loading zink directly
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16168 >
2022-09-21 20:29:06 +00:00
Pierre-Eric Pelloux-Prayer
58f90fd03f
egl/wayland: fix glthread crashes
...
glthread unmarshalling thread cannot run concurrently with code that alloc
the back bo or the code that perform the swaps.
Ensure this by running dri2_flush_drawable_for_swapbuffers early.
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18223 >
2022-09-21 14:54:50 +00:00
Michael Skorokhodov
5e76850cff
egl: Return EGL_BAD_MATCH for invalid share_list
...
From the eglspec.1.5: "An EGL_BAD_MATCH is generated if [...]
share context was created on a different display than
the one referenced by config."
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6414
Signed-off-by: Mykhailo Skorokhodov<mykhailo.skorokhodov@globallogic.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16368 >
2022-09-20 15:47:22 +00:00
Vinson Lee
093b19b09a
egl/dri2: Fix missing return with dri2_egl_error_unlock.
...
Fix defect reported by Coverity Scan.
Double unlock (LOCK)
double_unlock: dri2_egl_error_unlock unlocks dri2_dpy->lock while it is unlocked.
Fixes: f1efe037df ("egl/dri2: Add display lock")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18655 >
2022-09-19 16:24:08 +00:00
Adam Jackson
a6483f0434
egl/dri2: Fix some thinkos in old context release
...
All of the objects here should be relative to the old context / display
/ surfaces. Calling disp->unbindContext() on a context that disp did not
create is likely to go poorly.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18586 >
2022-09-16 14:23:47 +00:00
Adam Jackson
7a744aa318
egl/dri2: Fix a typo in a comment
...
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18586 >
2022-09-16 14:23:47 +00:00