Commit ea1f7d10 by Alexis Hetu Committed by Alexis Hétu

Handle sampleRateShading parameters

VkPipelineMultisampleStateCreateInfo contains parameters specific to the sampleRateShading feature. This cl handles these new parameters (without enabling the sampleRateShading feature). Bug: b/171415086 Change-Id: I8e895483ab5d27643a2fc59347bb41a51570602d Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51732Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent be800bd2
...@@ -409,8 +409,10 @@ GraphicsState::GraphicsState(const Device *device, const VkGraphicsPipelineCreat ...@@ -409,8 +409,10 @@ GraphicsState::GraphicsState(const Device *device, const VkGraphicsPipelineCreat
UNSUPPORTED("pCreateInfo->pMultisampleState->flags %d", int(pCreateInfo->pMultisampleState->flags)); UNSUPPORTED("pCreateInfo->pMultisampleState->flags %d", int(pCreateInfo->pMultisampleState->flags));
} }
if(multisampleState->sampleShadingEnable != VK_FALSE) sampleShadingEnable = (multisampleState->sampleShadingEnable != VK_FALSE);
if(sampleShadingEnable)
{ {
minSampleShading = multisampleState->minSampleShading;
UNSUPPORTED("VkPhysicalDeviceFeatures::sampleRateShading"); UNSUPPORTED("VkPhysicalDeviceFeatures::sampleRateShading");
} }
......
...@@ -165,6 +165,8 @@ struct GraphicsState ...@@ -165,6 +165,8 @@ struct GraphicsState
inline unsigned int getMultiSampleMask() const { return multiSampleMask; } inline unsigned int getMultiSampleMask() const { return multiSampleMask; }
inline int getSampleCount() const { return sampleCount; } inline int getSampleCount() const { return sampleCount; }
inline bool hasSampleShadingEnabled() const { return sampleShadingEnable; }
inline float getMinSampleShading() const { return minSampleShading; }
inline bool hasAlphaToCoverage() const { return alphaToCoverage; } inline bool hasAlphaToCoverage() const { return alphaToCoverage; }
inline bool hasPrimitiveRestartEnable() const { return primitiveRestartEnable; } inline bool hasPrimitiveRestartEnable() const { return primitiveRestartEnable; }
...@@ -233,6 +235,9 @@ private: ...@@ -233,6 +235,9 @@ private:
int sampleCount; int sampleCount;
bool alphaToCoverage; bool alphaToCoverage;
bool sampleShadingEnable = false;
float minSampleShading = 0.0f;
bool primitiveRestartEnable = false; bool primitiveRestartEnable = false;
VkRect2D scissor; VkRect2D scissor;
VkViewport viewport; VkViewport viewport;
......
...@@ -137,6 +137,8 @@ const PixelProcessor::State PixelProcessor::update(const vk::GraphicsState &pipe ...@@ -137,6 +137,8 @@ const PixelProcessor::State PixelProcessor::update(const vk::GraphicsState &pipe
state.multiSampleMask = pipelineState.getMultiSampleMask(); state.multiSampleMask = pipelineState.getMultiSampleMask();
state.enableMultiSampling = (state.multiSampleCount > 1) && state.enableMultiSampling = (state.multiSampleCount > 1) &&
!(pipelineState.isDrawLine(true) && (pipelineState.getLineRasterizationMode() == VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT)); !(pipelineState.isDrawLine(true) && (pipelineState.getLineRasterizationMode() == VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
state.sampleShadingEnabled = pipelineState.hasSampleShadingEnabled();
state.minSampleShading = pipelineState.getMinSampleShading();
if(state.enableMultiSampling && fragmentShader) if(state.enableMultiSampling && fragmentShader)
{ {
......
...@@ -89,6 +89,8 @@ public: ...@@ -89,6 +89,8 @@ public:
bool enableMultiSampling; bool enableMultiSampling;
bool alphaToCoverage; bool alphaToCoverage;
bool centroid; bool centroid;
bool sampleShadingEnabled;
float minSampleShading;
VkFrontFace frontFace; VkFrontFace frontFace;
vk::Format depthFormat; vk::Format depthFormat;
bool depthBias; bool depthBias;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment