summaryrefslogtreecommitdiff
path: root/src/virtio
diff options
context:
space:
mode:
authorYiwei Zhang <zzyiwei@chromium.org>2022-09-21 20:43:51 +0000
committerMarge Bot <emma+marge@anholt.net>2023-03-07 00:25:07 +0000
commit15a55198ecfdcfc6ee44458d007a478ed88147a7 (patch)
tree4135c60c9f336fad62bb7686c44fc030525c803a /src/virtio
parent0b458938236fcce224c1344b1f4f7baac13e0993 (diff)
downloadmesa-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.c14
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;
}
/**