Break out long condition into a helper function
No functional difference expected.
Bug: b/358602678
Test: build
Change-Id: Ie18ea0ad6555e867afdc5e16c16405cb1198a4be
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/73948
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Jason Macnak <natsu@google.com>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
diff --git a/src/Pipeline/PixelRoutine.cpp b/src/Pipeline/PixelRoutine.cpp
index 92fb6b3..d2e69dc 100644
--- a/src/Pipeline/PixelRoutine.cpp
+++ b/src/Pipeline/PixelRoutine.cpp
@@ -25,6 +25,32 @@
#include "Vulkan/VkStringify.hpp"
namespace sw {
+namespace {
+
+bool shouldUsePerSampleShading(const PixelProcessor::State &state, const SpirvShader *spirvShader)
+{
+ if(state.sampleShadingEnabled && (state.minSampleShading * state.multiSampleCount > 1.0f))
+ {
+ return true;
+ }
+
+ if(spirvShader)
+ {
+ if(spirvShader->getUsedCapabilities().InterpolationFunction) // TODO(b/194714095)
+ {
+ return true;
+ }
+
+ if(spirvShader->getAnalysis().ContainsSampleQualifier)
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+} // namespace
PixelRoutine::PixelRoutine(
const PixelProcessor::State &state,
@@ -37,9 +63,7 @@
, attachments(attachments)
, descriptorSets(descriptorSets)
, shaderContainsInterpolation(spirvShader && spirvShader->getUsedCapabilities().InterpolationFunction)
- , shaderContainsSampleQualifier(spirvShader && spirvShader->getAnalysis().ContainsSampleQualifier)
- , perSampleShading((state.sampleShadingEnabled && (state.minSampleShading * state.multiSampleCount > 1.0f)) ||
- shaderContainsSampleQualifier || shaderContainsInterpolation) // TODO(b/194714095)
+ , perSampleShading(shouldUsePerSampleShading(state, spirvShader))
, invocationCount(perSampleShading ? state.multiSampleCount : 1)
{
if(spirvShader)
diff --git a/src/Pipeline/PixelRoutine.hpp b/src/Pipeline/PixelRoutine.hpp
index 8b372d7..ba97cb6 100644
--- a/src/Pipeline/PixelRoutine.hpp
+++ b/src/Pipeline/PixelRoutine.hpp
@@ -112,7 +112,6 @@
// Derived state parameters
const bool shaderContainsInterpolation; // TODO(b/194714095)
- const bool shaderContainsSampleQualifier;
const bool perSampleShading;
const int invocationCount;