From: Samuel Pitoiset Date: Mon, 16 Oct 2017 12:15:54 +0000 (+0200) Subject: radv: be smarter with the draw packets when executing secondary buffers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=47d7d1861399563900d1f0ca31b06690f33049a1;p=mesa.git radv: be smarter with the draw packets when executing secondary buffers Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- 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