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
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");
}
......
......@@ -165,6 +165,8 @@ struct GraphicsState
inline unsigned int getMultiSampleMask() const { return multiSampleMask; }
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 hasPrimitiveRestartEnable() const { return primitiveRestartEnable; }
......@@ -233,6 +235,9 @@ private:
int sampleCount;
bool alphaToCoverage;
bool sampleShadingEnable = false;
float minSampleShading = 0.0f;
bool primitiveRestartEnable = false;
VkRect2D scissor;
VkViewport viewport;
......
......@@ -137,6 +137,8 @@ const PixelProcessor::State PixelProcessor::update(const vk::GraphicsState &pipe
state.multiSampleMask = pipelineState.getMultiSampleMask();
state.enableMultiSampling = (state.multiSampleCount > 1) &&
!(pipelineState.isDrawLine(true) && (pipelineState.getLineRasterizationMode() == VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT));
state.sampleShadingEnabled = pipelineState.hasSampleShadingEnabled();
state.minSampleShading = pipelineState.getMinSampleShading();
if(state.enableMultiSampling && fragmentShader)
{
......
......@@ -89,6 +89,8 @@ public:
bool enableMultiSampling;
bool alphaToCoverage;
bool centroid;
bool sampleShadingEnabled;
float minSampleShading;
VkFrontFace frontFace;
vk::Format depthFormat;
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