From b02a98d7d8f854a9d5fba1a30642c7131dd5d5ef Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Thu, 20 Nov 2025 17:17:35 -0500 Subject: [PATCH] microsof: Run lower_sysvals_to_varyings after lower_input_attachments This lets us request system values from lower_input_attachments and just lower them ourselves instead of asking it to create variables. Reviewed-by: Alyssa Rosenzweig Part-of: --- src/microsoft/spirv_to_dxil/dxil_spirv_nir.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c b/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c index 42d03734b19..6478041c319 100644 --- a/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c +++ b/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c @@ -967,11 +967,14 @@ dxil_spirv_nir_passes(nir_shader *nir, if (nir->info.stage == MESA_SHADER_FRAGMENT) { NIR_PASS(_, nir, nir_lower_input_attachments, &(nir_input_attachment_options){ - .use_fragcoord_sysval = false, - .use_layer_id_sysval = !conf->lower_view_index, + .use_fragcoord_sysval = true, + .use_layer_id_sysval = true, .use_view_id_for_layer = !conf->lower_view_index, }); + /* Lower sysvals again to get rid of load_layer_id */ + NIR_PASS(_, nir, nir_lower_sysvals_to_varyings, &sysvals_to_varyings); + NIR_PASS(_, nir, dxil_nir_lower_discard_and_terminate); NIR_PASS(_, nir, nir_lower_returns); NIR_PASS(_, nir, dxil_nir_lower_sample_pos);