aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShahbaz Youssefi <syoussefi@chromium.org>2023-04-20 11:21:59 -0400
committerAngle LUCI CQ <angle-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-04-20 20:58:40 +0000
commit77d86c4a7ecc62356fde5ddcc83a25e2e51747bd (patch)
treed806d4daaa1606e888e862e3eef4001d37cb3385
parent03f0e51d7f4308947daad0ecc064fd5c2f2d3856 (diff)
downloadangle-77d86c4a7ecc62356fde5ddcc83a25e2e51747bd.tar.gz
Vulkan: Set shading rate dynamic state unconditionally
Since this state is dynamic, it must be set before use. Bug: angleproject:8108 Change-Id: I3ceeae95cdfad3388c35dd9e629e1424617f48b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455148 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
-rw-r--r--src/libANGLE/renderer/vulkan/ContextVk.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index 77393113dd..1004f62526 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -3145,8 +3145,8 @@ angle::Result ContextVk::handleDirtyGraphicsDynamicFragmentShadingRate(
gl::ShadingRate shadingRate = getState().getShadingRate();
if (shadingRate == gl::ShadingRate::Undefined)
{
- // Shading rate has not been set. Nothing to do, early return.
- return angle::Result::Continue;
+ // Shading rate has not been set. Since this is dynamic state, set it to 1x1
+ shadingRate = gl::ShadingRate::_1x1;
}
const bool shadingRateSupported = mRenderer->isShadingRateSupported(shadingRate);
@@ -5652,7 +5652,10 @@ angle::Result ContextVk::syncState(const gl::Context *context,
}
break;
case gl::State::EXTENDED_DIRTY_BIT_SHADING_RATE:
- mGraphicsDirtyBits.set(DIRTY_BIT_DYNAMIC_FRAGMENT_SHADING_RATE);
+ if (getFeatures().supportsFragmentShadingRate.enabled)
+ {
+ mGraphicsDirtyBits.set(DIRTY_BIT_DYNAMIC_FRAGMENT_SHADING_RATE);
+ }
break;
default:
UNREACHABLE();