R-b On Fri, Jun 21, 2019, 4:14 PM Samuel Pitoiset <[email protected]> wrote:
> This simple extension might be useful for debugging purposes. > GAPID has support for it. > > Signed-off-by: Samuel Pitoiset <[email protected]> > --- > > A simple crucible test: > https://gitlab.freedesktop.org/mesa/crucible/merge_requests/47 > > src/amd/vulkan/radv_cmd_buffer.c | 35 +++++++++++++++++++++++++++++++ > src/amd/vulkan/radv_extensions.py | 1 + > 2 files changed, 36 insertions(+) > > diff --git a/src/amd/vulkan/radv_cmd_buffer.c > b/src/amd/vulkan/radv_cmd_buffer.c > index 9b4d4528028..215ccced144 100644 > --- a/src/amd/vulkan/radv_cmd_buffer.c > +++ b/src/amd/vulkan/radv_cmd_buffer.c > @@ -5716,3 +5716,38 @@ void radv_CmdDrawIndirectByteCountEXT( > > radv_draw(cmd_buffer, &info); > } > + > +/* VK_AMD_buffer_marker */ > +void radv_CmdWriteBufferMarkerAMD( > + VkCommandBuffer commandBuffer, > + VkPipelineStageFlagBits pipelineStage, > + VkBuffer dstBuffer, > + VkDeviceSize dstOffset, > + uint32_t marker) > +{ > + 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) + dstOffset; > + > + si_emit_cache_flush(cmd_buffer); > + > + if (!(pipelineStage & ~VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT)) { > + radeon_emit(cs, PKT3(PKT3_COPY_DATA, 4, 0)); > + radeon_emit(cs, COPY_DATA_SRC_SEL(COPY_DATA_IMM) | > + COPY_DATA_DST_SEL(COPY_DATA_DST_MEM) | > + COPY_DATA_WR_CONFIRM); > + radeon_emit(cs, marker); > + radeon_emit(cs, 0); > + radeon_emit(cs, va); > + radeon_emit(cs, va >> 32); > + } else { > + si_cs_emit_write_event_eop(cs, > + > cmd_buffer->device->physical_device->rad_info.chip_class, > + > radv_cmd_buffer_uses_mec(cmd_buffer), > + V_028A90_BOTTOM_OF_PIPE_TS, 0, > + EOP_DATA_SEL_VALUE_32BIT, > + va, marker, > + cmd_buffer->gfx9_eop_bug_va); > + } > +} > diff --git a/src/amd/vulkan/radv_extensions.py > b/src/amd/vulkan/radv_extensions.py > index b676cb8b8e2..1708173817b 100644 > --- a/src/amd/vulkan/radv_extensions.py > +++ b/src/amd/vulkan/radv_extensions.py > @@ -130,6 +130,7 @@ EXTENSIONS = [ > Extension('VK_EXT_transform_feedback', 1, True), > Extension('VK_EXT_vertex_attribute_divisor', 3, True), > Extension('VK_EXT_ycbcr_image_arrays', 1, True), > + Extension('VK_AMD_buffer_marker', 1, True), > Extension('VK_AMD_draw_indirect_count', 1, True), > Extension('VK_AMD_gcn_shader', 1, True), > Extension('VK_AMD_gpu_shader_half_float', 1, > 'device->rad_info.chip_class >= GFX8 && HAVE_LLVM >= 0x0800'), > -- > 2.22.0 > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
