diff options
author | Axel Davy <davyaxel0@gmail.com> | 2022-07-29 21:15:01 +0200 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2022-08-16 10:08:16 -0700 |
commit | d6659eb5e380ff36314a008aa99a0064a79cbce2 (patch) | |
tree | 6ad32d7f4fe64dbd02840d52e8e3c6b354f5c328 | |
parent | ef8b0f095abbd1c8dbc388d68d579dab309d138b (diff) | |
download | mesa-d6659eb5e380ff36314a008aa99a0064a79cbce2.tar.gz |
frontend/nine: Fix ATOC handling
The previous code was incorrectly checking the previous
value of alphatestenable.
In addition, remove an optimization that cannot hit (as we
filter out redundant state settings).
cc: mesa-stable
Fixes: 1272640d5 ("st/nine: Fix alpha to coverage states")
Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18021>
(cherry picked from commit 4f953ad51299a744aa74b7667debd8a8245685f5)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/gallium/frontends/nine/nine_state.c | 5 |
2 files changed, 2 insertions, 5 deletions
diff --git a/.pick_status.json b/.pick_status.json index c41a1c18d60..99ae5740491 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -931,7 +931,7 @@ "description": "frontend/nine: Fix ATOC handling", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "1272640d55243105bb192a5dd460dc70fc7a77a6" }, diff --git a/src/gallium/frontends/nine/nine_state.c b/src/gallium/frontends/nine/nine_state.c index 051bf4de978..899bdcc60cd 100644 --- a/src/gallium/frontends/nine/nine_state.c +++ b/src/gallium/frontends/nine/nine_state.c @@ -1438,11 +1438,8 @@ CSMT_ITEM_NO_WAIT(nine_context_set_render_state, } } if (unlikely(State == D3DRS_ALPHATESTENABLE && (context->rs[NINED3DRS_ALPHACOVERAGE] & 2))) { - DWORD alphacoverage_prev = context->rs[NINED3DRS_ALPHACOVERAGE]; context->rs[NINED3DRS_ALPHACOVERAGE] &= 6; - context->rs[NINED3DRS_ALPHACOVERAGE] |= (context->rs[D3DRS_ALPHATESTENABLE] ? 1 : 0); - if (context->rs[NINED3DRS_ALPHACOVERAGE] != alphacoverage_prev) - context->changed.group |= NINE_STATE_BLEND; + context->rs[NINED3DRS_ALPHACOVERAGE] |= (Value ? 1 : 0); } context->rs[State] = nine_fix_render_state_value(State, Value); |