diff options
author | Yiwei Zhang <zzyiwei@chromium.org> | 2022-09-21 20:43:51 +0000 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-03-07 00:25:07 +0000 |
commit | 15a55198ecfdcfc6ee44458d007a478ed88147a7 (patch) | |
tree | 4135c60c9f336fad62bb7686c44fc030525c803a /src/virtio | |
parent | 0b458938236fcce224c1344b1f4f7baac13e0993 (diff) | |
download | mesa-15a55198ecfdcfc6ee44458d007a478ed88147a7.tar.gz |
venus: abort ring submit when ring is in fatal status
This change also migrates to use the protocol defined status enums.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21542>
Diffstat (limited to 'src/virtio')
-rw-r--r-- | src/virtio/vulkan/vn_ring.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/virtio/vulkan/vn_ring.c b/src/virtio/vulkan/vn_ring.c index 6ed64a7b7dc..7186033c52f 100644 --- a/src/virtio/vulkan/vn_ring.c +++ b/src/virtio/vulkan/vn_ring.c @@ -8,10 +8,6 @@ #include "vn_cs.h" #include "vn_renderer.h" -enum vn_ring_status_flag { - VN_RING_STATUS_IDLE = 1u << 0, -}; - static uint32_t vn_ring_load_head(const struct vn_ring *ring) { @@ -240,7 +236,11 @@ vn_ring_submit(struct vn_ring *ring, } vn_ring_store_tail(ring); - const bool notify = vn_ring_load_status(ring) & VN_RING_STATUS_IDLE; + const VkRingStatusFlagsMESA status = vn_ring_load_status(ring); + if (status & VK_RING_STATUS_FATAL_BIT_MESA) { + vn_log(NULL, "vn_ring_submit abort on fatal"); + abort(); + } vn_ring_retire_submits(ring, cur_seqno); @@ -248,7 +248,9 @@ vn_ring_submit(struct vn_ring *ring, list_addtail(&submit->head, &ring->submits); *seqno = submit->seqno; - return notify; + + /* notify renderer to wake up ring if idle */ + return status & VK_RING_STATUS_IDLE_BIT_MESA; } /** |