zink: unset line stipple ds3 state flags when stipple not available

Fixes: 7b4c1b3a42 ("zink: track and apply ds3 states only on change")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24478>
(cherry picked from commit 122ffb0c88)
This commit is contained in:
Mike Blumenkrantz 2023-08-03 07:36:56 -04:00 committed by Dylan Baker
parent 575d50721e
commit d65ebabbb1
2 changed files with 5 additions and 1 deletions

View file

@ -10274,7 +10274,7 @@
"description": "zink: unset line stipple ds3 state flags when stipple not available",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "7b4c1b3a426ec781c81f48bf57e5e7de07bea2af",
"notes": null

View file

@ -3250,6 +3250,10 @@ flush_batch(struct zink_context *ctx, bool sync)
ctx->ds3_states = BITFIELD_MASK(ZINK_DS3_BLEND_A2C);
if (!screen->info.dynamic_state3_feats.extendedDynamicState3AlphaToOneEnable)
ctx->ds3_states &= ~BITFIELD_BIT(ZINK_DS3_BLEND_A21);
if (!screen->info.dynamic_state3_feats.extendedDynamicState3LineStippleEnable)
ctx->ds3_states &= ~BITFIELD_BIT(ZINK_DS3_RAST_STIPPLE_ON);
if (screen->driver_workarounds.no_linestipple)
ctx->ds3_states &= ~BITFIELD_BIT(ZINK_DS3_RAST_STIPPLE);
}
ctx->oom_flush = false;
ctx->oom_stall = false;