Add mode for sample qualifier
The sample qualifier forces the use of per sample rendering,
so this cl adds a mode for it and detects whether the sample
decoration is used in the shader.
Bug: b/171415086
Change-Id: Ic59eb45c41f019859eff01de4bf467284de53c0a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51730
Tested-by: Alexis Hétu <sugoi@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index 581511c..8f7a6fb 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -111,6 +111,9 @@
case spv::DecorationInputAttachmentIndex:
descriptorDecorations[targetId].InputAttachmentIndex = value;
break;
+ case spv::DecorationSample:
+ modes.ContainsSampleQualifier = true;
+ break;
default:
// Only handling descriptor decorations here.
break;
diff --git a/src/Pipeline/SpirvShader.hpp b/src/Pipeline/SpirvShader.hpp
index 826aff3..c479588 100644
--- a/src/Pipeline/SpirvShader.hpp
+++ b/src/Pipeline/SpirvShader.hpp
@@ -553,6 +553,7 @@
bool ContainsKill : 1;
bool ContainsControlBarriers : 1;
bool NeedsCentroid : 1;
+ bool ContainsSampleQualifier : 1;
// Compute workgroup dimensions
int WorkgroupSizeX = 1;