From 47d7d1861399563900d1f0ca31b06690f33049a1 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 16 Oct 2017 14:15:54 +0200 Subject: radv: be smarter with the draw packets when executing secondary buffers Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/vulkan/radv_cmd_buffer.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/amd/vulkan') diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 64e7e2637b9..2252d80e11e 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -2669,8 +2669,16 @@ void radv_CmdExecuteCommands( secondary->state.emitted_compute_pipeline; } - primary->state.last_primitive_reset_en = secondary->state.last_primitive_reset_en; - primary->state.last_primitive_reset_index = secondary->state.last_primitive_reset_index; + /* Only re-emit the draw packets when needed. */ + if (secondary->state.last_primitive_reset_en != -1) { + primary->state.last_primitive_reset_en = + secondary->state.last_primitive_reset_en; + } + + if (secondary->state.last_primitive_reset_index) { + primary->state.last_primitive_reset_index = + secondary->state.last_primitive_reset_index; + } } /* After executing commands from secondary buffers we have to dirty -- cgit v1.2.3