mesa/src/virtio
Yiwei Zhang 68d31c28d4 venus: fix racy semaphore feedback counter update
Previously, we update the sfb dst slot upon vn_SignalSemaphore so that
vn_GetSemaphoreCounterValue can poll just the feedback slot itself.
However, that can race with pending sfb cmds that are going to update
the slot value, ending up with stuck sync progression.

This change fixes it by disallowing vn_SignalSemaphore to touch the sfb
dst slot. To ensure counter query being monotonic, vn_GetSemaphoreCounterValue
now takes the greater of signaled counter and the sfb counter read.

Test with dEQP-VK.synchronization* group:
- w/o this: stuck shows up within 2 min with 8 parallel deqp runs
- with this: no stuck for multiple full runs of the same

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14304
Fixes: 5c7e60362c ("venus: enable timeline semaphore feedback")
(cherry picked from commit 829bd406c0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 15:02:48 -08:00
..
ci ci: Rename ANDROID_GPU_MODE to CUTTLEFISH_GPU_MODE 2025-10-08 09:25:24 +00:00
protocols mesa: import mesa3d_protocols 2025-06-17 22:28:54 +00:00
vdrm virtio/vdrm: Fix varying offsets of struct vdrm_device members 2025-10-30 12:13:58 -07:00
venus-protocol venus: sync latest protocol 2025-03-27 00:52:17 +00:00
virtgpu_kumquat virtio: virtgpu_kumquat: clippy fixes 2025-09-24 16:57:51 +00:00
virtgpu_kumquat_ffi clang-format: Update the .clang-format files to conformance clang-format json-schema 2025-09-09 07:04:55 +00:00
virtio-gpu gfxstream: hide vkTraceAsyncGOOGLE behind new capset flag 2025-09-16 23:26:27 +00:00
vtest virtio/vdrm: Add vtest backend 2025-04-08 15:38:39 +00:00
vulkan venus: fix racy semaphore feedback counter update 2025-12-03 15:02:48 -08:00