mesa merge requestshttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests2024-03-24T22:52:52Zhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28092treewide: Replace the usage of DEBUG macro with MESA_DEBUG=0|1 macro2024-03-24T22:52:52ZYonggang Luotreewide: Replace the usage of DEBUG macro with MESA_DEBUG=0|1 macrothis is a rework of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21946,
by using vscode find&replace along with the following folders are excluded:
```
docs,*.rs,addrlib,src/imgui,*.sh,src/intel/vulkan/grl/gpu
```
The follo...this is a rework of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21946,
by using vscode find&replace along with the following folders are excluded:
```
docs,*.rs,addrlib,src/imgui,*.sh,src/intel/vulkan/grl/gpu
```
The following changes are done by find&replace and verified manually
* treewide: Replace #ifndef DEBUG with #if !MESA_DEBUG
* treewide: Replace defined(DEBUG) with MESA_DEBUG
* treewide: Replace #ifdef DEBUG with #if MESA_DEBUG
* nine: Switch "#if defined(DEBUG) || !defined(NDEBUG)" to "#if MESA_DEBUG_ANY"
Other changes are manually modifed
No sure if this MR Closes https://gitlab.freedesktop.org/mesa/mesa/-/issues/4965Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27607Draft: gallium/meson: Deconflate swrast/softpipe/llvmpipe2024-02-13T22:03:54ZAdam Jacksonajax@nwnk.netDraft: gallium/meson: Deconflate swrast/softpipe/llvmpipesoftpipe is fine I guess. But it's required even if you just want to build llvmpipe. I would prefer to build at least my enterprise OS without softpipe because I don't want to support it, given that I'm already compelled to support llvmp...softpipe is fine I guess. But it's required even if you just want to build llvmpipe. I would prefer to build at least my enterprise OS without softpipe because I don't want to support it, given that I'm already compelled to support llvmpipe, and that's challenge enough, and llvmpipe really ought to be preferable in almost every circumstance. I think it's especially goofy to include a copy of softpipe inside lavapipe, though at least there I am pretty sure lavapipe will fail to initialize.
Detangling this is pretty awful and this patch definitely needs some work, but the strategy is to add `llvmpipe` and `softpipe` as names to `gallium-drivers`, and treat `swrast` as a shorthand for both. We build `src/gallium/drivers/llvmpipe` if it is named as a gallium driver _or_ if lavapipe was explicitly requested. The lavapipe target always links only llvmpipe, and the other targets link either or both as requested. Other than the lavapipe thing, which I sincerely hope is NFC, this stops short of any CI/policy/default changes and simply makes `-Dgallium-drivers=llvmpipe` do what you wanted.
Building out softpipe saves about 133k of text on aarch64, which is about 1/60th of the size of the lavapipe binary, which ain't too shabby.https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26322haiku: Various platform fixes and cleanups2023-11-22T20:05:25ZAlexander von Gluck IVhaiku: Various platform fixes and cleanups### What does this MR do and why?
* Fixes a minor build regression where the include path for gallium includes doesn't get picked up on Haiku's EGL driver
* Moves the old BeOS visual options into hgl_context under a non-beos name
* Remo...### What does this MR do and why?
* Fixes a minor build regression where the include path for gallium includes doesn't get picked up on Haiku's EGL driver
* Moves the old BeOS visual options into hgl_context under a non-beos name
* Removes a bit of dead codeMarge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23556egl/haiku: Fix potential crash if double buffering is disabled2023-06-21T21:51:17ZAlexander von Gluck IVegl/haiku: Fix potential crash if double buffering is disabled### What does this MR do and why?
Minor potential crash on Haiku. In the unlikely condition that double buffering is disabled, this code would cash as it assumes ATTACHMENT_LEFT_BACK is available.
egl/haiku: Fix potential crash if doubl...### What does this MR do and why?
Minor potential crash on Haiku. In the unlikely condition that double buffering is disabled, this code would cash as it assumes ATTACHMENT_LEFT_BACK is available.
egl/haiku: Fix potential crash if double buffering is disabled
* Don't assume the existence of the back buffer in swap_buffersMarge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22405egl/drivers/haiku: Wire up basic WaitClient notice2023-04-10T21:32:12ZAlexander von Gluck IVegl/drivers/haiku: Wire up basic WaitClient noticehttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21079egl: implement Haiku driver over Gallium, drop old HGL2023-03-29T01:46:31ZX512egl: implement Haiku driver over Gallium, drop old HGLMake EGL actually functional on Haiku and use it with conjunction to `glvnd` driver loader instead of Haiku custom HGL driver loader.
BitmapHook is currently used as EGL window surface. It is a temporary solution until proper Haiku wind...Make EGL actually functional on Haiku and use it with conjunction to `glvnd` driver loader instead of Haiku custom HGL driver loader.
BitmapHook is currently used as EGL window surface. It is a temporary solution until proper Haiku windowing system integration API will be designed.
This EGL implementation works directly on to of Gallium and it don't use DRI layer. I would like to hear suggestions about Gallium integration code improvements/fixes.
Depends on https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21110Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2494fix empty-body issues2023-01-23T23:30:35ZEric Engestromeric@engestrom.chfix empty-body issuesI think I got all of them now :upside_down_face:I think I got all of them now :upside_down_face:Eric Engestromeric@engestrom.chEric Engestromeric@engestrom.chhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20027gallium: remove st_context_iface and other stuff, remove indirections, rename...2022-12-09T13:42:55ZMarek Olšákgallium: remove st_context_iface and other stuff, remove indirections, rename and clean up the rest in the "st" interfaceThis simplifies the state tracker interface that we have between st/mesa and the DRI/WGL/GLX frontends.
The DRI/WGL/GLX frontends can call st_context functions directly. There is no need for this abstraction anymore because GL is now th...This simplifies the state tracker interface that we have between st/mesa and the DRI/WGL/GLX frontends.
The DRI/WGL/GLX frontends can call st_context functions directly. There is no need for this abstraction anymore because GL is now the only user of those frontends (previously it was also OpenVG).
A lot of cruft and complicated indirections are removed, and the remaining structures are given new names that are more self-explanatory.
The terms such as `st_framebuffer_iface` and `st_manager` are completely abolished in the interface and the DRI/WGL/GLX frontends. They actually meant `dri_drawable` and `dri_screen`. The base structures are given new names: `pipe_frontend_drawable` and `pipe_frontend_screen`. The individuals frontends specialize them for DRI, WGL, GLX, etc. This also renames "iface" to "drawable" in st/mesa etc., making it easier to read and clarifying what it actually meant.Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19645util: Move all os_process.* and os_mman.h from src/gallium/auxiliary/os/ into...2022-11-15T20:24:26ZYonggang Luoutil: Move all os_process.* and os_mman.h from src/gallium/auxiliary/os/ into src/util/cc @jenatali @kallisti5 @kusma @eric
@anholt You may be interested, this would reduce dynamic library size
* It's removed duplicated code, for example the os_get_process_name
* It's moved code that have alike functional into a single ...cc @jenatali @kallisti5 @kusma @eric
@anholt You may be interested, this would reduce dynamic library size
* It's removed duplicated code, for example the os_get_process_name
* It's moved code that have alike functional into a single place, os_process.h vs u_process.h
* It's move os_mman.h into src/util, this is a prepare step to getting shader cache to be implemented
on win32, also I will getting scattered usage of mman to always using os_mman.hMarge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18050egl: Reduce mutli-threaded lock contention2022-10-27T05:35:42ZRob Clarkegl: Reduce mutli-threaded lock contentionThis series reduces the scope of the EGL display mutex to address performance bottlenecks arising from multi-threaded EGL usage (ie. apps which use per-thread egl contexts).
The first few patches are some misc things that I found in the...This series reduces the scope of the EGL display mutex to address performance bottlenecks arising from multi-threaded EGL usage (ie. apps which use per-thread egl contexts).
The first few patches are some misc things that I found in the course of analyzing perfetto traces, and some egl cleanups. After which, the different EGL driver's have their backend display object refcounted switched to atomics, to deal with multi-threaded `eglMakeCurrent()` calls after the locking is relaxed. Then egl_dri2 gets it's own mutex, mostly to protect less critical paths that have not been fully audited for thread safety. And then finally the toplevel EGL display mutex is reduced to only cover protecting `_egl_display`s own data structures and not held across calls to backend driver.
Fixes #7039Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19197gallium: remove `struct st_api`2022-10-24T12:00:55ZYonggang Luogallium: remove `struct st_api`cc @ajax @marekocc @ajax @marekoMarge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18111mesa | egl: Reduce mutli-threaded lock contention (prep)2022-10-15T10:44:07ZRob Clarkmesa | egl: Reduce mutli-threaded lock contention (prep)already reviewed patches split out of !18050already reviewed patches split out of !18050Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12597Haiku build fixes2022-01-07T23:37:01ZAlexander von Gluck IVHaiku build fixeshttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9222glapi: Remove unsafe check of global pointer from getter macros2021-12-02T01:53:54ZJesse Nataliejenatali@microsoft.comglapi: Remove unsafe check of global pointer from getter macrosSplitting out from !9165, since after that merges, this will only impact BSD/Haiku.Splitting out from !9165, since after that merges, this will only impact BSD/Haiku.https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10135egl/haiku: Fix ConfigID naming inline with mesa2021-04-10T04:48:52ZAlexander von Gluck IVegl/haiku: Fix ConfigID naming inline with mesaReviewed-by: Tapani Pälli <tapani.palli@intel.com>Reviewed-by: Tapani Pälli <tapani.palli@intel.com>Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9454egl/haiku: Fix ConfigID naming inline with mesa2021-04-09T15:53:09ZAlexander von Gluck IVegl/haiku: Fix ConfigID naming inline with mesaSilly simple build fix to 21.0.0. I'm just patching it externally. I'd like to get it in at some point for 21.0.1 though :-)Silly simple build fix to 21.0.0. I'm just patching it externally. I'd like to get it in at some point for 21.0.1 though :-)Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323Haiku: Major refactoring build fixes2021-01-10T03:13:38ZAlexander von Gluck IVHaiku: Major refactoring build fixesThis is the result of a lot of hard work by @X547 on Mesa 20.x
I've done some tweaking and some cleanup.
* Dispatch code: A lot of the "really legacy" OpenGL dispatch code has been refactored away, with some improved debugging on OpenGL...This is the result of a lot of hard work by @X547 on Mesa 20.x
I've done some tweaking and some cleanup.
* Dispatch code: A lot of the "really legacy" OpenGL dispatch code has been refactored away, with some improved debugging on OpenGL locking issues.
* softpipe: Lots of cleanups of hacks I did long ago to get it working
Sorry for the size, we were pretty behind master with these.Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8266haiku: Minor build fixes, conflict resolution2021-01-06T11:53:09ZAlexander von Gluck IVhaiku: Minor build fixes, conflict resolutionDave AirlieDave Airliehttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6131egl/haiku: drop overwritten preset of EGL version2020-08-01T17:49:18ZEric Engestromeric@engestrom.chegl/haiku: drop overwritten preset of EGL version`init_haiku()` is called by `eglInitialize()`, which then calls
`_eglComputeVersion()` (without even anything in between). The latter
sets the EGL version based on the extensions supported, and since Haiku
doesn't support any it will end...`init_haiku()` is called by `eglInitialize()`, which then calls
`_eglComputeVersion()` (without even anything in between). The latter
sets the EGL version based on the extensions supported, and since Haiku
doesn't support any it will end up overwriting the same `1.4` value.Marge BotMarge Bothttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3816egl: directly access static members instead of using _egl{Get,Set}ConfigKey()2020-02-14T21:31:09ZEric Engestromeric@engestrom.chegl: directly access static members instead of using _egl{Get,Set}ConfigKey()This function is meant for when the attribute is unknown at compile-time
(eg. user-specified), but in all these cases it is much simpler to just
read/write the member directly.
Suggested-by: @evelikov (https://gitlab.freedesktop.org/mes...This function is meant for when the attribute is unknown at compile-time
(eg. user-specified), but in all these cases it is much simpler to just
read/write the member directly.
Suggested-by: @evelikov (https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3711#note_409884)Marge BotMarge Bot