mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
radv: add support for VK_AMD_buffer_marker
This simple extension might be useful for debugging purposes. GAPID has support for it. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
ff77b0415b
commit
946193ae00
2 changed files with 36 additions and 0 deletions
|
|
@ -5716,3 +5716,38 @@ void radv_CmdDrawIndirectByteCountEXT(
|
||||||
|
|
||||||
radv_draw(cmd_buffer, &info);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -130,6 +130,7 @@ EXTENSIONS = [
|
||||||
Extension('VK_EXT_transform_feedback', 1, True),
|
Extension('VK_EXT_transform_feedback', 1, True),
|
||||||
Extension('VK_EXT_vertex_attribute_divisor', 3, True),
|
Extension('VK_EXT_vertex_attribute_divisor', 3, True),
|
||||||
Extension('VK_EXT_ycbcr_image_arrays', 1, 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_draw_indirect_count', 1, True),
|
||||||
Extension('VK_AMD_gcn_shader', 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'),
|
Extension('VK_AMD_gpu_shader_half_float', 1, 'device->rad_info.chip_class >= GFX8 && HAVE_LLVM >= 0x0800'),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue