Change scissor type from sw::Rect to VkRect2D Removed sw::Rect from Renderer. Bug b/126883332 Change-Id: I01ff418745c19739b4692c7cec56ae54fe91a8fc Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27109 Tested-by: Alexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/Device/Renderer.cpp b/src/Device/Renderer.cpp index 90b84ff..d803e61 100644 --- a/src/Device/Renderer.cpp +++ b/src/Device/Renderer.cpp
@@ -438,10 +438,10 @@ // Scissor { - data->scissorX0 = scissor.x0; - data->scissorX1 = scissor.x1; - data->scissorY0 = scissor.y0; - data->scissorY1 = scissor.y1; + data->scissorX0 = scissor.offset.x; + data->scissorX1 = scissor.offset.x + scissor.extent.width; + data->scissorY0 = scissor.offset.y; + data->scissorY1 = scissor.offset.y + scissor.extent.height; } draw->primitive = 0; @@ -1604,7 +1604,7 @@ this->viewport = viewport; } - void Renderer::setScissor(const Rect &scissor) + void Renderer::setScissor(const VkRect2D &scissor) { this->scissor = scissor; }
diff --git a/src/Device/Renderer.hpp b/src/Device/Renderer.hpp index b90f1d7..c31676c 100644 --- a/src/Device/Renderer.hpp +++ b/src/Device/Renderer.hpp
@@ -267,7 +267,7 @@ // Viewport & Clipper void setViewport(const VkViewport &viewport); - void setScissor(const Rect &scissor); + void setScissor(const VkRect2D &scissor); void addQuery(Query *query); void removeQuery(Query *query); @@ -311,7 +311,7 @@ Clipper *clipper; Blitter *blitter; VkViewport viewport; - Rect scissor; + VkRect2D scissor; int clipFlags; Triangle *triangleBatch[16];
diff --git a/src/Vulkan/VkPipeline.cpp b/src/Vulkan/VkPipeline.cpp index e567e8d..9d11b85 100644 --- a/src/Vulkan/VkPipeline.cpp +++ b/src/Vulkan/VkPipeline.cpp
@@ -57,11 +57,6 @@ return sw::DRAW_TRIANGLELIST; } -sw::Rect Convert(const VkRect2D& rect) -{ - return sw::Rect(rect.offset.x, rect.offset.y, rect.offset.x + rect.extent.width, rect.offset.y + rect.extent.height); -} - sw::StreamType getStreamType(VkFormat format) { switch(format) @@ -331,7 +326,7 @@ UNIMPLEMENTED(); } - scissor = Convert(viewportState->pScissors[0]); + scissor = viewportState->pScissors[0]; viewport = viewportState->pViewports[0]; } @@ -517,7 +512,7 @@ return context; } -const sw::Rect& GraphicsPipeline::getScissor() const +const VkRect2D& GraphicsPipeline::getScissor() const { return scissor; }
diff --git a/src/Vulkan/VkPipeline.hpp b/src/Vulkan/VkPipeline.hpp index d3a92d2..84b6ef5 100644 --- a/src/Vulkan/VkPipeline.hpp +++ b/src/Vulkan/VkPipeline.hpp
@@ -71,7 +71,7 @@ uint32_t computePrimitiveCount(uint32_t vertexCount) const; const sw::Context& getContext() const; - const sw::Rect& getScissor() const; + const VkRect2D& getScissor() const; const VkViewport& getViewport() const; const sw::Color<float>& getBlendConstants() const; @@ -80,7 +80,7 @@ sw::SpirvShader *fragmentShader = nullptr; sw::Context context; - sw::Rect scissor; + VkRect2D scissor; VkViewport viewport; sw::Color<float> blendConstants; };