radv/nir: fix front_face_fsign opt
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

If front facing primitives are culled, there are only back facing fragments left.

Fixes: 0fe8250bf4 ("radv: optimize known front_face_fsign too")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38937>
This commit is contained in:
Georg Lehmann 2025-12-13 09:51:02 +01:00
parent d17d1f53bd
commit fee87679bf

View file

@ -25,9 +25,9 @@ pass(nir_builder *b, nir_intrinsic_instr *intr, void *data)
}
} else if (intr->intrinsic == nir_intrinsic_load_front_face_fsign) {
if (gfx_state->rs.cull_mode == VK_CULL_MODE_FRONT_BIT) {
replacement = nir_imm_float(b, 1.0);
} else if (gfx_state->rs.cull_mode == VK_CULL_MODE_BACK_BIT) {
replacement = nir_imm_float(b, -1.0);
} else if (gfx_state->rs.cull_mode == VK_CULL_MODE_BACK_BIT) {
replacement = nir_imm_float(b, 1.0);
}
} else if (intr->intrinsic == nir_intrinsic_load_sample_id) {
if (!gfx_state->dynamic_rasterization_samples && gfx_state->ms.rasterization_samples == 0) {