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
Adam Jackson
6c6a37ef94
egl/dri2: Respect the arguments to dri2_set_blob_cache_funcs
...
This is no functional change, since this is effectively what the caller
is passing in, but it's still a layering violation.
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
Rob Clark
bbef3cb9d3
egl: Relax locking
...
Now that we have the rwlock TerminateLock protecting us against
eglTerminate() yanking the rug from under us, drop the BDL across
calls to driver (or at least the main ones that can potentially
block).
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7039
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18050 >
2022-09-07 21:21:38 -07:00
Rob Clark
5d99e8cc03
egl: Introduce rwlock to protect eglTerminate()
...
eglTerminate() must be serialized against all other EGL calls. But in
most cases, other EGL calls do not need to be serialized against each
other. Which fits rather well with a rwlock.
One would be tempted to simply replace the existing BDL with a rwlock,
but several portability and debuggability limitations of the rwlock
implementation prevent that, as described in the TerminateLock comment
block.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18050 >
2022-09-07 21:21:34 -07:00
Rob Clark
7ba2784b0a
egl: Make RefCount atomic
...
Once we relax the locking, we will be doing _eglPutFoo() outside of the
big display lock.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18050 >
2022-09-07 21:21:29 -07:00
Rob Clark
f1efe037df
egl/dri2: Add display lock
...
In preperation of relaxing eglapi to not hold a lock across driver
calls, but instead only for protecting it's own state, add our own
lock to protect code paths that need locking or have not been audited
yet. The blocking calls (ClientWaitSyncKHR) or critical path and/or
blocking (MakeCurrent, SwapBuffers*) are lockless, as they have already
been audited for thread safety.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18050 >
2022-09-07 21:21:25 -07:00
Rob Clark
fc5281286d
egl/dri2: Make ref_count atomic
...
In particular, MakeCurrent can be called on multiple threads in
parallel.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18050 >
2022-09-07 21:21:21 -07:00
Rob Clark
a2d6dee4f0
egl/wgl: Make ref_count atomic
...
Looks like wgl doesn't have much display state to protect. But it's
ref_count should be atomic before we start removing locking from eglapi
to protect against MakeCurrent being called in parallel on multiple
threads.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Acked-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18050 >
2022-09-07 21:21:16 -07:00
Adam Jackson
f41a6504a1
egl/kopper: Don't add EGL_SWAP_BEHAVIOR_PRESERVED_BIT configs
...
It's strictly inferior to EGL_EXT_buffer_age so apps shouldn't bother to
begin with, and we don't communicate the surface preservation state to
the backend so we don't handle it correctly in any case.
Acked-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18214 >
2022-09-06 17:46:50 +00:00
Adam Jackson
168fdb5a91
egl: Move an error check earlier in EGL_BUFFER_AGE_EXT query
...
I can't think of any good reason to call down to the driver and _then_
check whether your calling context was already bad.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18214 >
2022-09-06 17:46:49 +00:00
Eric Engestrom
33426a328b
wayland: avoid writing interface names as free-form strings
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18335 >
2022-08-31 11:17:51 +01:00
Adam Jackson
dae8f76245
egl: Remove some can't-happen supported API checks
...
The only other thing this could be is OpenVG, which we never create.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18128 >
2022-08-29 20:31:14 +00:00
Chia-I Wu
9518af12aa
util/perf: support and prefer perfetto for cpu trace
...
To keep tracing working, this also adds util_perfetto_init to
eglGet*Display.
Acked-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18260 >
2022-08-26 21:47:44 +00:00
Chia-I Wu
022cd156d4
util/perf: add cpu_trace.h
...
Move MESA_TRACE_* to the new file.
Acked-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18260 >
2022-08-26 21:47:44 +00:00
Eric Engestrom
c66622de3a
meson: replace manual compiler flags with meson arguments
...
These would only have worked in GCC and Clang, which so far wasn't an
issue, but let's clean it up anyway.
Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18190 >
2022-08-24 22:13:19 +00:00