From 8c5358040de9293e5e7dd14dcbb145bdffc86a06 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Thu, 29 Aug 2024 11:51:37 +0200 Subject: [PATCH] radv: move emitting VBOs with DGC Only for graphics. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_device_generated_commands.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/amd/vulkan/radv_device_generated_commands.c b/src/amd/vulkan/radv_device_generated_commands.c index fe92e6fdddc..e9a1633519b 100644 --- a/src/amd/vulkan/radv_device_generated_commands.c +++ b/src/amd/vulkan/radv_device_generated_commands.c @@ -1920,13 +1920,6 @@ build_dgc_prepare_shader(struct radv_device *dev, struct radv_indirect_command_l nir_iadd(&b, load_param32(&b, upload_main_offset), nir_imul(&b, load_param32(&b, upload_stride), sequence_id)); nir_store_var(&b, cmd_buf.upload_offset, upload_offset_init, 0x1); - nir_def *vbo_bind_mask = load_param32(&b, vbo_bind_mask); - nir_push_if(&b, nir_ine_imm(&b, vbo_bind_mask, 0)); - { - dgc_emit_vertex_buffer(&cmd_buf, stream_addr, vbo_bind_mask); - } - nir_pop_if(&b, NULL); - if (layout->push_constant_mask) { const VkShaderStageFlags stages = VK_SHADER_STAGE_ALL_GRAPHICS | VK_SHADER_STAGE_COMPUTE_BIT | VK_SHADER_STAGE_MESH_BIT_EXT; @@ -1935,6 +1928,13 @@ build_dgc_prepare_shader(struct radv_device *dev, struct radv_indirect_command_l } if (layout->pipeline_bind_point == VK_PIPELINE_BIND_POINT_GRAPHICS) { + nir_def *vbo_bind_mask = load_param32(&b, vbo_bind_mask); + nir_push_if(&b, nir_ine_imm(&b, vbo_bind_mask, 0)); + { + dgc_emit_vertex_buffer(&cmd_buf, stream_addr, vbo_bind_mask); + } + nir_pop_if(&b, NULL); + if (layout->indexed) { /* Emit direct draws when index buffers are also updated by DGC. Otherwise, emit * indirect draws to remove the dependency on the cmdbuf state in order to enable