Module: Mesa Branch: master Commit: a302009b7b8e5d29e9cd78e48e52b897db85e027 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a302009b7b8e5d29e9cd78e48e52b897db85e027
Author: Samuel Pitoiset <[email protected]> Date: Wed Dec 6 17:48:41 2017 +0100 radv: only reset command buffers that are not in the initial state dota2 always calls vkResetCommandBuffer() before vkBeginCommandBuffer() which is quite useless. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Dave Airlie <[email protected]> --- src/amd/vulkan/radv_cmd_buffer.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 63a5eebab9..8821fcacef 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -2230,11 +2230,16 @@ VkResult radv_BeginCommandBuffer( const VkCommandBufferBeginInfo *pBeginInfo) { RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); - VkResult result; + VkResult result = VK_SUCCESS; - result = radv_reset_cmd_buffer(cmd_buffer); - if (result != VK_SUCCESS) - return result; + if (cmd_buffer->status != RADV_CMD_BUFFER_STATUS_INITIAL) { + /* If the command buffer has already been resetted with + * vkResetCommandBuffer, no need to do it again. + */ + result = radv_reset_cmd_buffer(cmd_buffer); + if (result != VK_SUCCESS) + return result; + } memset(&cmd_buffer->state, 0, sizeof(cmd_buffer->state)); cmd_buffer->state.last_primitive_reset_en = -1; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
