diff --git a/src/virtio/vulkan/vn_common.c b/src/virtio/vulkan/vn_common.c index bae8a0cd2d5..fdb1a47c14f 100644 --- a/src/virtio/vulkan/vn_common.c +++ b/src/virtio/vulkan/vn_common.c @@ -169,10 +169,8 @@ vn_relax_init(struct vn_ring *ring, const char *reason) ring->monitor.report_period_us); #endif - if (vn_ring_monitor_acquire(ring)) { - ring->monitor.alive = true; + if (vn_ring_monitor_acquire(ring)) vn_ring_unset_status_bits(ring, VK_RING_STATUS_ALIVE_BIT_MESA); - } } return (struct vn_relax_state){ diff --git a/src/virtio/vulkan/vn_instance.c b/src/virtio/vulkan/vn_instance.c index 98d59e76d79..52552f7a020 100644 --- a/src/virtio/vulkan/vn_instance.c +++ b/src/virtio/vulkan/vn_instance.c @@ -138,6 +138,9 @@ vn_instance_init_ring(struct vn_instance *instance) ring->monitor.report_period_us = 3000000; mtx_init(&ring->monitor.mutex, mtx_plain); + /* ring monitor should be alive at all time */ + ring->monitor.alive = true; + const struct VkRingMonitorInfoMESA monitor_info = { .sType = VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA, .maxReportingPeriodMicroseconds = ring->monitor.report_period_us,