From 67f3bf68a9cb813b15b82be21f45b910352b7dd6 Mon Sep 17 00:00:00 2001 From: ziga-lunarg Date: Mon, 17 Oct 2022 00:42:52 +0200 Subject: [PATCH] Fix viewport width in FSR with multiviewport tests Tests with extent 1x1 create viewport with width equal to 0.0f Components: Vulkan VK-GL-CTS issue: 4057 Affected tests: dEQP-VK.fragment_shading_rate.* Change-Id: I99a050348de83d1790320bd5d6d711722dd1fbaf --- .../vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp index d9245de..7c55857 100644 --- a/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp +++ b/external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp @@ -1701,11 +1701,11 @@ tcu::TestStatus FSRTestInstance::iterate (void) // Split the viewport into left and right halves int x0 = 0, x1 = m_data.framebufferDim.width/2, x2 = m_data.framebufferDim.width; - viewports.push_back(makeViewport((float)x0, 0, (float)(x1-x0), (float)m_data.framebufferDim.height, 0.0f, 1.0f)); - scissors.push_back(makeRect2D(x0, 0, x1-x0, m_data.framebufferDim.height)); + viewports.push_back(makeViewport((float)x0, 0, std::max((float)(x1 - x0), 1.0f), (float)m_data.framebufferDim.height, 0.0f, 1.0f)); + scissors.push_back(makeRect2D(x0, 0, x1 - x0, m_data.framebufferDim.height)); - viewports.push_back(makeViewport((float)x1, 0, (float)(x2-x1), (float)m_data.framebufferDim.height, 0.0f, 1.0f)); - scissors.push_back(makeRect2D(x1, 0, x2-x1, m_data.framebufferDim.height)); + viewports.push_back(makeViewport((float)x1, 0, std::max((float)(x2 - x1), 1.0f), (float)m_data.framebufferDim.height, 0.0f, 1.0f)); + scissors.push_back(makeRect2D(x1, 0, x2 - x1, m_data.framebufferDim.height)); } else { -- 2.7.4