diff options
author | Samuel Pitoiset <[email protected]> | 2017-11-10 09:18:04 +0100 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-11-13 11:05:38 +0100 |
commit | 305745457c12fd54ff98d2f090dcebee27d5d33e (patch) | |
tree | c12b433389a9ee494b2ab04547d365ac7aa3e53d /src | |
parent | 957d42271bc095145b8a089d2982ebe44fd8250b (diff) |
radv: optimize calling radv_cmd_buffer_trace_emit()
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/amd/vulkan/radv_cmd_buffer.c | 10 | ||||
-rw-r--r-- | src/amd/vulkan/radv_meta_buffer.c | 3 | ||||
-rw-r--r-- | src/amd/vulkan/si_cmd_buffer.c | 7 |
3 files changed, 12 insertions, 8 deletions
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 0478b2f196d..45fe51a2b9b 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -402,9 +402,6 @@ void radv_cmd_buffer_trace_emit(struct radv_cmd_buffer *cmd_buffer) struct radeon_winsys_cs *cs = cmd_buffer->cs; uint64_t va; - if (!device->trace_bo) - return; - va = radv_buffer_get_va(device->trace_bo); if (cmd_buffer->level == VK_COMMAND_BUFFER_LEVEL_SECONDARY) va += 4; @@ -435,7 +432,8 @@ radv_cmd_buffer_after_draw(struct radv_cmd_buffer *cmd_buffer) flags); } - radv_cmd_buffer_trace_emit(cmd_buffer); + if (unlikely(cmd_buffer->device->trace_bo)) + radv_cmd_buffer_trace_emit(cmd_buffer); } static void @@ -2254,7 +2252,9 @@ VkResult radv_BeginCommandBuffer( radv_cmd_buffer_set_subpass(cmd_buffer, subpass, false); } - radv_cmd_buffer_trace_emit(cmd_buffer); + if (unlikely(cmd_buffer->device->trace_bo)) + radv_cmd_buffer_trace_emit(cmd_buffer); + return result; } diff --git a/src/amd/vulkan/radv_meta_buffer.c b/src/amd/vulkan/radv_meta_buffer.c index 41cdc76b95b..e6ad235e93b 100644 --- a/src/amd/vulkan/radv_meta_buffer.c +++ b/src/amd/vulkan/radv_meta_buffer.c @@ -525,7 +525,8 @@ void radv_CmdUpdateBuffer( radeon_emit(cmd_buffer->cs, va >> 32); radeon_emit_array(cmd_buffer->cs, pData, words); - radv_cmd_buffer_trace_emit(cmd_buffer); + if (unlikely(cmd_buffer->device->trace_bo)) + radv_cmd_buffer_trace_emit(cmd_buffer); } else { uint32_t buf_offset; radv_cmd_buffer_upload_data(cmd_buffer, dataSize, 32, pData, &buf_offset); diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c index 89ee399817d..e61f5b8fa47 100644 --- a/src/amd/vulkan/si_cmd_buffer.c +++ b/src/amd/vulkan/si_cmd_buffer.c @@ -1126,7 +1126,9 @@ si_emit_cache_flush(struct radv_cmd_buffer *cmd_buffer) cmd_buffer->state.flush_bits); - radv_cmd_buffer_trace_emit(cmd_buffer); + if (unlikely(cmd_buffer->device->trace_bo)) + radv_cmd_buffer_trace_emit(cmd_buffer); + cmd_buffer->state.flush_bits = 0; } @@ -1250,7 +1252,8 @@ static void si_emit_cp_dma(struct radv_cmd_buffer *cmd_buffer, radeon_emit(cs, 0); } - radv_cmd_buffer_trace_emit(cmd_buffer); + if (unlikely(cmd_buffer->device->trace_bo)) + radv_cmd_buffer_trace_emit(cmd_buffer); } void si_cp_dma_prefetch(struct radv_cmd_buffer *cmd_buffer, uint64_t va, |