Jocelyn Falempe
c6d7ab7c1f
loader: Fix typo in __DRI_IMAGE_FORMAT_XBGR16161616 definition
...
The X and A format are inverted by mistake.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31707 >
2024-10-25 14:18:24 +00:00
Marek Olšák
872b5c70d1
mesa_interface: remove redundant __DRI*Rec types
...
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
K900
41e83b243c
meson: remove dri-search-path
...
It's not actually used anywhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31223 >
2024-09-19 05:06:50 +00:00
Mike Blumenkrantz
2b042cb9c2
gallium: move loader_dri_create_image to dri frontend
...
this is another case of bad dependencies leaving dri the only place to
move something, which then exposes some other snags to be resolved later
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30450 >
2024-08-01 15:28:03 +00:00
Mike Blumenkrantz
0d83c570af
dri: move swapinterval functions from loader to dri frontend
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30450 >
2024-08-01 15:28:03 +00:00
Mike Blumenkrantz
f9f8652445
loader: split out dri3 into subdir
...
this fixes dependency hell
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30400 >
2024-07-31 18:50:38 +00:00
Mike Blumenkrantz
4095fac72b
loader: move some common dri3 functions out of dri3 loader
...
fixing dependency hell
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30400 >
2024-07-31 18:50:38 +00:00
Eric Engestrom
dfd70bab4a
loader: gc loader_get_extensions_name() and __DRI_DRIVER_{GET_,}EXTENSIONS defines
...
Leaving the defines in include/GL/internal/dri_interface.h because I'm
not sure if something needs it.
Fixes: fa541a887c ("loader: delete loader_open_driver()")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30266 >
2024-07-19 20:38:19 +00:00
Daniel Stone
e05415a82e
format: Generate endian-independent format aliases
...
Instead of having a hardcoded list of endian-independent format aliases
in the header, generate them from the format definitions.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29649 >
2024-07-19 13:50:42 +00:00
Mike Blumenkrantz
293c7b38ff
loader/glx: move multibuffers check to loader
...
make this code more reusable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30128 >
2024-07-18 21:58:49 +00:00
Mike Blumenkrantz
63191107ab
loader/dri3: avoid killing the xcb connection if dri3 not found
...
calling open if the extension is unsupported closes the connection
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30128 >
2024-07-18 21:58:49 +00:00
Mike Blumenkrantz
c24891e044
loader/dri3: check xfixes version in loader_dri3_open()
...
this will allow simplifying some code without losing functionality
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30128 >
2024-07-18 21:58:49 +00:00
Mike Blumenkrantz
fa541a887c
loader: delete loader_open_driver()
...
no longer used
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29771 >
2024-07-18 20:30:43 +00:00
Daniel Stone
80bcdc08ec
loader/dri3: Use FourCC for buffer allocations
...
Switch to using FourCC for buffer allocations instead of
DRI_IMAGE_FORMAT, albeit with a transient helper to convert from FourCC
to DRI_IMAGE_FORMAT for createImage.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245 >
2024-07-18 14:16:51 +00:00
Daniel Stone
361f362258
dri: Unify createImage and createImageWithModifiers
...
There's no real reason for the two to exist separately. Nuke the old
createImage in favour of just having createImageWithModifiers.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245 >
2024-07-18 14:16:51 +00:00
Daniel Stone
efb88deb36
loader/dri3: Use FourCC for create-image entrypoints
...
Use FourCC for everything winsys-facing, instead of pipe_format.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245 >
2024-07-18 14:16:51 +00:00
Daniel Stone
60cb420996
dri: Remove old createImageWithModifiers
...
Everyone can use createImageWithModifiers2, which is now just called
createImageWithModifiers.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245 >
2024-07-18 14:16:50 +00:00
Emma Anholt
26c1354578
dri: Consistently use createImageFromDmabufs() not createImageFromFds()
...
They're calling the same thing in the backend, so reduce the proliferation
of interfaces consumed within our implementation.
driVkImageExtensionSw now sets dri2_from_dma_bufs, which means that
egl_dri2 will now expose EXT_image_dma_buf_import. Given that it
previously set dri2_from_fds suggesting that it can import dmabufs, this
is presumably OK.
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/30245 >
2024-07-18 14:16:50 +00:00
Emma Anholt
24d03a1c0f
dri: Replace createImageFromDmaBufs() with createImageFromDmaBufs3()
...
If FromDmaBufs()/FromDmaBufs2() are available, then FromDmaBufs3() is.
Drop the old method (unused by third parties) and make the new preferred
entrypoint take its name.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245 >
2024-07-18 14:16:50 +00:00
Emma Anholt
13ea03f088
dri: Consistently use createImageFromFds2(), not createImageFromFds()
...
dri_screen.c supports it if it supports createImageFromFds().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245 >
2024-07-18 14:16:50 +00:00
Emma Anholt
9a026df0f7
dri: Consistently use createImageWithModifiers2()
...
dri_screen.c supports it regardless.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30245 >
2024-07-18 14:16:50 +00:00
Adam Jackson
d709b42180
dri: Let dril handle the DRI driver link farm
...
xserver's loader will look for drivers this way, but there's no reason
we need to keep hurting ourselves like that.
Co-authored-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28378 >
2024-07-17 23:47:05 +00:00
Adam Jackson
91e1ea52c9
mesa_interface: Move out of GL/internal/
...
Move it into src/gallium/include/ to make it absolutely clear this is a Mesa detail.
While we're at it, clean up its include sites, including some places
where we can just include kopper_interface.h instead since it includes
mesa_interface.h as its first act.
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28378 >
2024-07-17 23:47:05 +00:00
Adam Jackson
6be17e222d
treewide: Include mesa_interface.h not dri_interface.h
...
We're about to split the latter off as a compatibility detail for older
versions of Xorg, and the former includes the latter at this point, so
this should be just to prove no functional change.
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28378 >
2024-07-17 23:47:04 +00:00
David Heidelberg
68215332a8
build: pass licensing information in SPDX form
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Dylan Baker <dylan.c.baker@intel.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Signed-off-by: David Heidelberg <david@ixit.cz >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29972 >
2024-06-29 12:42:49 -07:00
Eric Engestrom
787e0751c5
loader: use os_get_option() to allow android to set LIBGL_DRIVERS_PATH, GBM_BACKENDS_PATH, GALLIUM_PIPE_SEARCH_DIR
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29816 >
2024-06-21 07:44:36 +00:00
Luc Ma
3825e24085
loader: silence implicit-load zink error by the loader
...
Since commit 7d9ea77b45 ("glx: add automatic zink fallback loading between hw
and sw drivers"), zink could be tried as a fallback. It'd better silence
if the zink loading is implicit and on fail as what commit 4cc975c6e9 ("glx: silence
more implicit-load zink errors") has done. But there seems to be one
left bebind, which is spit when building swrast but no zink with -Dglx=dri.
v2: plumb the flag through from egl/glx to the loader (zmike)
Signed-off-by: Luc Ma <luc@sietium.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28970 >
2024-05-10 14:19:59 +00:00
Derek Foreman
90effcceab
wsi/wayland: refactor wayland dispatch
...
Add a thin wrapper around the wayland dispatch code for no reason other
than to add MESA_TRACE_FUNC so we can see where wayland dispatch delays
are.
Move this to loader so we can use it in the wayland egl code later.
Signed-off-by: Derek Foreman <derek.foreman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28634 >
2024-05-02 19:37:26 +00:00
Derek Foreman
eb1235f343
loader/wayland: Add named queue fallback
...
If libwayland isn't new enough to create event queues with names, just
throw away the name. It's just a debug feature anyway.
Signed-off-by: Derek Foreman <derek.foreman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27824 >
2024-02-28 11:01:31 +00:00
Hans-Kristian Arntzen
2d3e7b6e9a
wsi/wl: Fix deadlock in dispatch_queue_timeout.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no >
Fixes: a00f9c401b ("loader/wayland: Add fallback wl_display_dispatch_queue_timeout")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27828 >
2024-02-27 19:09:28 +00:00
Sebastian Wick
a00f9c401b
loader/wayland: Add fallback wl_display_dispatch_queue_timeout
...
This is almost a 1:1 copy of the same function in libwayland. If the version
with the symbol propagates far enough the fallback can be removed again.
Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27511 >
2024-02-27 13:10:13 +00:00
Daniel Stone
7e10601786
dri: Redeclare __DRI_IMAGE_FORMAT_* as PIPE_FORMAT_*
...
These aren't used by any external DRI callers, so unexport them and
redeclare them in terms of PIPE_FORMAT_*, so we can flatten them down
later.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27709 >
2024-02-27 10:51:02 +00:00
Dave Airlie
6a688e65a0
loader: handle picking zink for nouveau for certain GPUs.
...
This adds NOUVEAU_USE_ZINK env var, but also has commented out
code to pick it for turing+ if mesa is built with nvk and zink.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27628 >
2024-02-21 11:16:25 +10:00
Eric Engestrom
92c24191d4
tree-wide: use __normal_user() everywhere instead of writing the check manually
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27346 >
2024-01-30 12:45:54 +00:00
Luc Ma
b6d22358e4
loader: Remove a line of unused include
...
Signed-off-by: Luc Ma <luc@sietium.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26852 >
2024-01-03 08:06:01 +00:00
duncan.hopkins
c8b64452c0
dri: added build dependencies for systems using non-standard prefixed X11 libs.
...
To get MacOS to build, some extra dependencies need to be added to a couple of build targets.
This mainly shows up when not installing the dependencies in the default prefix locations.
On MacOS, this happens when using a custom build of brew to install the dependencies to 'odd' locations.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25992 >
2023-11-02 15:08:17 +00:00
Emma Anholt
e64ab3e4a9
glx: Delete support for GLX_OML_swap_method.
...
This was an ill-advised extension. While we advertised SWAP_COPY support,
we might implement it with a back-copy from the front buffer. And we
never advertised EXCHANGE because we couldn't guarantee it. So, if you
actually used this extension to try to reduce app redraws of the back
buffer, you might actually increase the bandwidth you used. Whoops.
Instead, GLX_EXT_buffer_age and the similar EGL extension give you
feedback on what's left in your back buffer, letting you do minimum
redraws.
This reduces our GLX visual+fbconfig count from 1410 to 940 on an llvmpipe
X server. Reducing visual counts will improve test runtime for
visual-iterating tests like piglit's glx-visuals-*.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25650 >
2023-10-20 10:03:43 +00:00
Leandro Ribeiro
e10d8cd5dd
loader: add loader_is_device_render_capable()
...
Add helper function to check if a device is render-capable.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825 >
2023-10-17 20:31:13 +00:00
Leandro Ribeiro
9ec9849c85
kmsro: try to use only compatible render-capable devices
...
Since commit "pipe-loader: add
pipe_loader_get_compatible_render_capable_device_fd()", we have a
function to query a render-only driver that is available and is
compatible with the KMS-only device.
So start to use it, instead of selecting whatever render-only driver is
available to use.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825 >
2023-10-17 20:31:13 +00:00
Leandro Ribeiro
3c977f55f5
loader: add driver list as parameter in loader_open_render_node_platform_device()
...
In a later commit in this series, we'll need to open the first supported
render-only platform device that we can find.
In order to avoid calling loader_open_render_node_platform_device()
multiple times (what is quite expensive), change this function to take a
driver list (instead of a single driver name) as parameter.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825 >
2023-10-17 20:31:13 +00:00
Leandro Ribeiro
cd2854ccfb
loader: rename loader_open_render_node() to loader_open_render_node_platform_device()
...
This function ignore devices that are not on the platform bus. So rename
it to better reflect that.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Reviewed-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825 >
2023-10-17 20:31:13 +00:00
Roman Stratiienko
7301914755
dri: Remove __driDriverExtensions leftovers
...
Android-14/clang-17 throws an error with it:
ld.lld: error: version script assignment of 'global' to symbol
'__driDriverExtensions' failed: symbol not defined
Fixes: d43e6a9a49 ("dri: Remove the megadriver compat stub")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25587 >
2023-10-10 16:39:27 +00:00
Pierre-Eric Pelloux-Prayer
ea84b85887
loader: add DRI_PRIME_DEBUG env var
...
This makes debugging non-working DRI_PRIME selection much easier.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24750 >
2023-09-18 07:45:27 +00:00
Pierre-Eric Pelloux-Prayer
b8d0b1ceb5
loader: extend DRI_PRIME to support =N
...
DRI_PRIME=1 isn't useful on machines with more than 2 GPUs.
This commit adds support to DRI_PRIME=N syntax meaning: select
the Nth GPU (not counting the default GPU).
So on a 3 GPUs system where drmGetDevices2 returns the following:
/dev/dri/renderD130 [default]
/dev/dri/renderD129
/dev/dri/renderD128
DRI_PRIME=1 would select D129 (as is already the case without this
commit), DRI_PRIME=2 would select D128.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24750 >
2023-09-18 07:45:27 +00:00
Pierre-Eric Pelloux-Prayer
d052baf190
loader: refactor DRI_PRIME handling code
...
DRI_PRIME has 3 different meanings and this refactoring
separate the handling of them.
No functional changes.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24750 >
2023-09-18 07:45:27 +00:00
Mike Blumenkrantz
1e46ca673c
dri3: only invalidate drawables on geometry change if geometry has changed
...
this is otherwise pointless
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23649 >
2023-06-15 12:22:24 +00:00
Yonggang Luo
1b91697f09
loader: Replace usage of mtx_t with simple_mtx_t in loader/loader_dri3_helper.c
...
This is a prepare for removing _MTX_INITIALIZER_NP.
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21284 >
2023-05-31 15:44:50 +00:00
Konstantin Kharlamov
275cf62e20
loader/dri3: temporarily work around a crash when front is NULL
...
Commit c65bde7b1e introduced a regression where under certain
circumstances `front` may be NULL, thus leading to a crash. It's not
currently known what exactly causes `front` to become NULL, nor we can
revert the offending commit, because there had been too many unrelated
changes that now depend on this commit.
So until someone comes up with a proper fix, let's add a workaround so
instead of crashing we just return from the function early.
This commit was tested with the bug `8982` and helps with the crash
with no other noticeable problems.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8982
Fixes: c65bde7b1e ("frontend/dri: inline __DRIdrawable in dri_drawable, make __DRIdrawable opaque")
Cc: mesa-stable
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23093 >
2023-05-18 06:25:46 +00:00
Tapani Pälli
5a7520d252
egl/loader: move crtc resource infrastructure as common helper
...
Patch moves (and renames) the infrastructure to fix compilation
failures when dri3 is not enabled in the build.
Fixes: 3170b63314 ("loader: Add infrastructure for tracking active CRTC resources");
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8476
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22897 >
2023-05-11 10:51:11 +00:00
José Roberto de Souza
02de31f6bb
loader: Add Xe KMD support
...
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22425 >
2023-04-12 10:41:21 +00:00