Add robustBufferAccess as part of PixelProcessor::States robustBufferAccess changes how OOB behavior is handled, so it must be taken into account in PixelProcessor::States. Generally, pipelines inherit whether robustness is enabled from the device, but that can now be set per pipeline thanks to VK_EXT_pipeline_robustness. For reference, see: https://chromium-review.googlesource.com/c/angle/angle/+/3943534 Bug: b/253062051 Change-Id: I3cdb81de8f48ec3a82b5903680b2e3f19ef82458 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/68888 Reviewed-by: Nicolas Capens <nicolascapens@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Commit-Queue: Alexis Hétu <sugoi@google.com> Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Device/PixelProcessor.cpp b/src/Device/PixelProcessor.cpp index afedb55..0ffbf7a 100644 --- a/src/Device/PixelProcessor.cpp +++ b/src/Device/PixelProcessor.cpp
@@ -87,11 +87,13 @@ { state.shaderID = fragmentShader->getIdentifier(); state.pipelineLayoutIdentifier = fragmentState.getPipelineLayout()->identifier; + state.robustBufferAccess = fragmentShader->getRobustBufferAccess(); } else { state.shaderID = 0; state.pipelineLayoutIdentifier = 0; + state.robustBufferAccess = false; } state.alphaToCoverage = fragmentOutputInterfaceState.hasAlphaToCoverage();
diff --git a/src/Device/PixelProcessor.hpp b/src/Device/PixelProcessor.hpp index a63af34..00d2c35 100644 --- a/src/Device/PixelProcessor.hpp +++ b/src/Device/PixelProcessor.hpp
@@ -74,6 +74,8 @@ VkCompareOp depthCompareMode; bool depthWriteEnable; + bool robustBufferAccess; + bool stencilActive; StencilOpState frontStencil; StencilOpState backStencil;