diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c index cb9f54f1153..eb7bef2a807 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c @@ -148,6 +148,7 @@ VKAPI_ATTR VkResult VKAPI_CALL panvk_per_arch(EndCommandBuffer)(VkCommandBuffer commandBuffer) { VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer); + struct panvk_device *dev = to_panvk_device(cmdbuf->vk.base.device); emit_tls(cmdbuf); @@ -162,6 +163,8 @@ panvk_per_arch(EndCommandBuffer)(VkCommandBuffer commandBuffer) } } + cmdbuf->flush_id = panthor_kmod_get_flush_id(dev->kmod.dev); + return vk_command_buffer_end(&cmdbuf->vk); } diff --git a/src/panfrost/vulkan/csf/panvk_vX_queue.c b/src/panfrost/vulkan/csf/panvk_vX_queue.c index 9db31531c9a..74836b0fbc6 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_queue.c +++ b/src/panfrost/vulkan/csf/panvk_vX_queue.c @@ -251,7 +251,7 @@ init_subqueue(struct panvk_queue *queue, enum panvk_subqueue_id subqueue) .queue_index = subqueue, .stream_size = cs_root_chunk_size(&b), .stream_addr = cs_root_chunk_gpu_addr(&b), - .latest_flush = 0, + .latest_flush = panthor_kmod_get_flush_id(dev->kmod.dev), .syncs = DRM_PANTHOR_OBJ_ARRAY(1, &syncop), }; struct drm_panthor_group_submit gsubmit = { @@ -568,7 +568,7 @@ panvk_queue_submit(struct vk_queue *vk_queue, struct vk_queue_submit *submit) .queue_index = j, .stream_size = cs_root_chunk_size(&cmdbuf->state.cs[j].builder), .stream_addr = cs_root_chunk_gpu_addr(&cmdbuf->state.cs[j].builder), - .latest_flush = 0, + .latest_flush = cmdbuf->flush_id, }; } }