Index: src/gpu/vk/GrVkPipeline.cpp |
diff --git a/src/gpu/vk/GrVkPipeline.cpp b/src/gpu/vk/GrVkPipeline.cpp |
index 055bb94d6f961e160b3f96246707e0ee5da20507..e401d8d9f9d28965d6aaf55a28e521d39005393b 100644 |
--- a/src/gpu/vk/GrVkPipeline.cpp |
+++ b/src/gpu/vk/GrVkPipeline.cpp |
@@ -495,7 +495,7 @@ void set_dynamic_scissor_state(GrVkGpu* gpu, |
!scissorState.rect().contains(0, 0, target.width(), target.height())) { |
// This all assumes the scissorState has previously been clipped to the device space render |
// target. |
- scissor.offset.x = scissorState.rect().fLeft; |
+ scissor.offset.x = SkTMax(scissorState.rect().fLeft, 0); |
scissor.extent.width = scissorState.rect().width(); |
if (kTopLeft_GrSurfaceOrigin == target.origin()) { |
scissor.offset.y = scissorState.rect().fTop; |
@@ -503,12 +503,11 @@ void set_dynamic_scissor_state(GrVkGpu* gpu, |
SkASSERT(kBottomLeft_GrSurfaceOrigin == target.origin()); |
scissor.offset.y = target.height() - scissorState.rect().fBottom; |
} |
+ scissor.offset.y = SkTMax(scissor.offset.y, 0); |
scissor.extent.height = scissorState.rect().height(); |
SkASSERT(scissor.offset.x >= 0); |
- SkASSERT(scissor.offset.x + scissor.extent.width <= (uint32_t)target.width()); |
SkASSERT(scissor.offset.y >= 0); |
- SkASSERT(scissor.offset.y + scissor.extent.height <= (uint32_t)target.height()); |
} else { |
scissor.extent.width = target.width(); |
scissor.extent.height = target.height(); |