OSDN Git Service

Propagate image view clear aspect mask to image clear
authorChris Forbes <chrisforbes@google.com>
Sat, 16 Mar 2019 01:37:58 +0000 (18:37 -0700)
committerChris Forbes <chrisforbes@google.com>
Sat, 16 Mar 2019 05:02:11 +0000 (05:02 +0000)
The mask was previously dropped on the floor here, and the imageview's
only mask used instead. This would produce incorrect results when a
renderpass begin operation had different load ops for depth vs stencil aspect.

Bug: b/128715612
Change-Id: I2bf4051e16c027737b65cd5bc5193a94cf891c36
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27428
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

src/Vulkan/VkImageView.cpp

index db6532c..205cbed 100644 (file)
@@ -92,7 +92,9 @@ void ImageView::clear(const VkClearValue& clearValue, const VkImageAspectFlags a
                UNIMPLEMENTED();
        }
 
-       image->clear(clearValue, renderArea, subresourceRange);
+       VkImageSubresourceRange sr = subresourceRange;
+       sr.aspectMask = aspectMask;
+       image->clear(clearValue, renderArea, sr);
 }
 
 void ImageView::clear(const VkClearValue& clearValue, const VkImageAspectFlags aspectMask, const VkClearRect& renderArea)