summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAxel Davy <davyaxel0@gmail.com>2022-07-29 21:15:01 +0200
committerDylan Baker <dylan.c.baker@intel.com>2022-08-16 10:08:16 -0700
commitd6659eb5e380ff36314a008aa99a0064a79cbce2 (patch)
tree6ad32d7f4fe64dbd02840d52e8e3c6b354f5c328
parentef8b0f095abbd1c8dbc388d68d579dab309d138b (diff)
downloadmesa-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.json2
-rw-r--r--src/gallium/frontends/nine/nine_state.c5
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);