mesa/src
Mel Henning e147800be3 zink: Create one queue lock per device
We currently only create one queue per queue family on the device. The
device can be shared between multiple zink_screens, so having one lock
per screen can still lead to multiple locks per queue. Fix this by
allocating queue_lock along with the device.

This fixes an issue that was causing crashes with nvk+zink and
QtWebEngine with QTWEBENGINE_FORCE_USE_GBM=1 This can be reproduced by
resizing the window in either:

 * anki - https://apps.ankiweb.net/ or
 * Qt's simplebrowser example
   https://doc.qt.io/qt-6/qtwebengine-webenginewidgets-simplebrowser-example.html

which would then cause this dmesg error:

    nouveau 0000:01:00.0: anki[92007]: Failed to find syncobj (-> in): handle=40

along with a context loss.
With VK_LOADER_LAYERS_ENABLE=VK_LAYER_KHRONOS_validation we would additionally
get warnings like:

    Validation Error: [ UNASSIGNED-Threading-MultipleThreads-Write ] | MessageID = 0xa05b236e
    vkQueueSubmit(): THREADING ERROR : object of type VkQueue is simultaneously used in current thread 139824449189568 and thread 139823901816512
    Objects: 1
        [0] VkQueue 0x557a666783e0

Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38414>
(cherry picked from commit 9acce36652)
2025-11-21 14:22:49 -08:00
..
amd aco/insert_nops: Consider s_setpc target susceptible to VALUReadSGPRHazard 2025-11-19 09:23:57 -08:00
android_stub
asahi hk: Report the correct plane count in VkDrmFormatModifierProperties2?EXT 2025-11-04 10:16:42 -08:00
broadcom v3dv: Fix assertion failure for not-found primary_fd during enumeration. 2025-11-07 08:14:47 -08:00
c11 c11/threads: fix build on c23 2025-11-13 08:10:20 -08:00
compiler nir: Fix preseved metadata in sort_unstructured_blocks 2025-11-17 09:54:35 -08:00
drm-shim drm-shim: fix with asan 2025-09-03 11:47:00 +00:00
egl treewide: use BITSET_CALLOC 2025-10-09 12:29:55 +00:00
etnaviv etnaviv/ci: Add per-gpu GLES2 extension lists 2025-10-07 19:34:29 +00:00
freedreno tu: Handle case where pipeline writes unused color attachments 2025-11-17 09:54:26 -08:00
gallium zink: Create one queue lock per device 2025-11-21 14:22:49 -08:00
gbm egl,glx: allow OpenGL with old libx11, but disable glthread if it's unsafe 2025-08-21 02:05:26 +00:00
getopt
gfxstream gfxstream: delete magma-over-gfxstream 2025-10-08 15:42:13 +00:00
glx glx: provide glx.pc 2025-10-14 20:53:10 +00:00
gtest
imagination treewide: don't check before free 2025-10-15 23:01:33 +00:00
imgui imgui: Silence build warnings for imgui 2025-09-16 06:16:19 +00:00
intel anv: consider 64bit atomics on similar formats with mutable images 2025-11-19 09:39:00 -08:00
loader meson: use the wayland module 2025-09-22 16:35:26 +00:00
mesa mesa/st: do not enable EXT_texture_buffer_object with rgba only 2025-11-19 09:23:59 -08:00
microsoft microsoft/compiler: Respect write masks when lowering unaligned loads and stores 2025-10-10 19:53:15 +00:00
nouveau nil: Add support for Blackwell 8 and 16-bit modifiers 2025-11-13 08:10:18 -08:00
panfrost pan: fix a bifrost disassembly assert failure 2025-11-21 14:22:47 -08:00
tool clang-format: Update the .clang-format files to conformance clang-format json-schema 2025-09-09 07:04:55 +00:00
util radv: add vk_wsi_disable_unordered_submits and enable for GTK 2025-11-14 08:36:53 -08:00
virtio venus: properly fix the blob mem mapping size 2025-11-19 09:23:58 -08:00
vulkan vulkan/video: Fix coding AV1 seq_choose_screen_content_tools = 1 2025-11-17 09:54:34 -08:00
x11 meson: add missing x11 dependency on libloader_x11 2025-08-08 21:45:59 +00:00
.clang-format clang-format: Move ForEachMacros into src/.clang-format for freedreno 2025-09-09 07:04:55 +00:00
meson.build Revert "meson: use vcs_tag() instead of custom script" 2025-10-06 23:06:11 +00:00