Module: Mesa Branch: main Commit: a632024700cd162c73108e72389e01e5465d44b7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a632024700cd162c73108e72389e01e5465d44b7
Author: Timur Kristóf <[email protected]> Date: Fri Oct 6 22:29:55 2023 +0200 radv: Implement vkCmdWriteBufferMarker2AMD on transfer queues. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26580> --- src/amd/vulkan/radv_cmd_buffer.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 85697c80ebb..1c845a3dab7 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -11115,7 +11115,16 @@ radv_CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer, VkPipelineStageFlag RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); RADV_FROM_HANDLE(radv_buffer, buffer, dstBuffer); struct radeon_cmdbuf *cs = cmd_buffer->cs; - uint64_t va = radv_buffer_get_va(buffer->bo) + buffer->offset + dstOffset; + const uint64_t va = radv_buffer_get_va(buffer->bo) + buffer->offset + dstOffset; + + if (cmd_buffer->qf == RADV_QUEUE_TRANSFER) { + radeon_check_space(cmd_buffer->device->ws, cmd_buffer->cs, 4); + radeon_emit(cmd_buffer->cs, SDMA_PACKET(SDMA_OPCODE_FENCE, 0, SDMA_FENCE_MTYPE_UC)); + radeon_emit(cs, va); + radeon_emit(cs, va >> 32); + radeon_emit(cs, marker); + return; + } si_emit_cache_flush(cmd_buffer);
