From 80e5e059fa3c90904a3e5fe960c98c2ebe1d11ae Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 13 Aug 2021 12:04:42 +0200 Subject: [PATCH] radv: fix pre-computing viewport xform when setting new viewports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit viewportCount is the number of viewports in pViewports while firstViewport is the index. Fixes new CTS dEQP-VK.draw.depth_clamp.*_clamp_four_viewports Fixes: a2ef92d7a58 ("radv: pre-calculate viewport transforms") Signed-off-by: Samuel Pitoiset Reviewed-by: Timur Kristóf Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index bf621c2c3ff..7c14f6de2a0 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -4412,8 +4412,11 @@ radv_CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint3 memcpy(state->dynamic.viewport.viewports + firstViewport, pViewports, viewportCount * sizeof(*pViewports)); - for (unsigned i = firstViewport; i < firstViewport + viewportCount; i++) - radv_get_viewport_xform(&pViewports[i], state->dynamic.viewport.xform[i].scale, state->dynamic.viewport.xform[i].translate); + for (unsigned i = 0; i < viewportCount; i++) { + radv_get_viewport_xform(&pViewports[i], + state->dynamic.viewport.xform[i + firstViewport].scale, + state->dynamic.viewport.xform[i + firstViewport].translate); + } state->dirty |= RADV_CMD_DIRTY_DYNAMIC_VIEWPORT; }