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;