Commit a9dcf0ea by Jamie Madill Committed by Commit Bot

Fix early fragment tests optimization condition.

The optimization should check of "alpha to coverage" is enabled, not just sample coverage. Bug: angleproject:4508 Bug: angleproject:5045 Bug: b/168493024 Change-Id: I0e52ddd4c92f9a6ea8a0e7cf56db71ce9ff3c5de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422078Reviewed-by: 's avatarCharlie Lao <cclao@google.com> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 1b436e07
......@@ -85,8 +85,6 @@ class ShaderState final : angle::NonCopyable
return mActiveOutputVariables;
}
bool isEarlyFragmentTeststOptimization() const { return mEarlyFragmentTestsOptimization; }
bool compilePending() const { return mCompileStatus == CompileStatus::COMPILE_REQUESTED; }
const sh::WorkGroupSize &getLocalSize() const { return mLocalSize; }
......
......@@ -820,7 +820,10 @@ class State : angle::NonCopyable
return mNoSimultaneousConstantColorAndAlphaBlendFunc;
}
bool isEarlyFragmentTestsOptimizationAllowed() const { return isSampleCoverageEnabled(); }
bool canEnableEarlyFragmentTestsOptimization() const
{
return !isSampleAlphaToCoverageEnabled();
}
const BufferVector &getOffsetBindingPointerUniformBuffers() const { return mUniformBuffers; }
......
......@@ -618,7 +618,7 @@ void ProgramExecutableVk::updateEarlyFragmentTestsOptimization(ContextVk *contex
const gl::State &glState = contextVk->getState();
mTransformOptionBits[ProgramTransformOption::RemoveEarlyFragmentTestsOptimization] = false;
if (!glState.isEarlyFragmentTestsOptimizationAllowed())
if (!glState.canEnableEarlyFragmentTestsOptimization())
{
ProgramVk *programVk = getShaderProgram(glState, gl::ShaderType::Fragment);
if (programVk->getState().hasEarlyFragmentTestsOptimization())
......
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