brw: replace lower_fs_msaa with nir_inline_sysval

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36516>
This commit is contained in:
Alyssa Rosenzweig
2025-08-01 07:52:50 -04:00
committed by Marge Bot
parent 1c28fc0a86
commit 3719983edf
4 changed files with 21 additions and 54 deletions
+21 -1
View File
@@ -1528,7 +1528,27 @@ brw_compile_fs(const struct brw_compiler *compiler,
}
NIR_PASS(_, nir, brw_nir_move_interpolation_to_top);
NIR_PASS(_, nir, brw_nir_lower_fs_msaa, key);
if (!brw_wm_prog_key_is_dynamic(key)) {
uint32_t f = 0;
if (key->multisample_fbo == INTEL_ALWAYS)
f |= INTEL_MSAA_FLAG_MULTISAMPLE_FBO;
if (key->alpha_to_coverage == INTEL_ALWAYS)
f |= INTEL_MSAA_FLAG_ALPHA_TO_COVERAGE;
if (key->provoking_vertex_last == INTEL_ALWAYS)
f |= INTEL_MSAA_FLAG_PROVOKING_VERTEX_LAST;
if (key->persample_interp == INTEL_ALWAYS) {
f |= INTEL_MSAA_FLAG_PERSAMPLE_DISPATCH |
INTEL_MSAA_FLAG_PERSAMPLE_INTERP;
}
NIR_PASS(_, nir, nir_inline_sysval, nir_intrinsic_load_fs_msaa_intel, f);
}
brw_postprocess_nir(nir, compiler, debug_enabled,
key->base.robust_flags);
-2
View File
@@ -178,8 +178,6 @@ bool brw_nir_lower_cs_intrinsics(nir_shader *nir,
bool brw_nir_lower_alpha_to_coverage(nir_shader *shader);
bool brw_needs_vertex_attributes_bypass(const nir_shader *shader);
void brw_nir_lower_fs_barycentrics(nir_shader *shader);
bool brw_nir_lower_fs_msaa(nir_shader *shader,
const struct brw_wm_prog_key *key);
void brw_nir_lower_vs_inputs(nir_shader *nir);
void brw_nir_lower_vue_inputs(nir_shader *nir,
@@ -1,50 +0,0 @@
/*
* Copyright (c) 2025 Intel Corporation
* SPDX-License-Identifier: MIT
*/
#include "compiler/nir/nir_builder.h"
#include "brw_nir.h"
static bool
brw_nir_lower_fs_msaa_intel_instr(nir_builder *b,
nir_intrinsic_instr *intrin,
void *data)
{
if (intrin->intrinsic != nir_intrinsic_load_fs_msaa_intel)
return false;
b->cursor = nir_before_instr(&intrin->instr);
const struct brw_wm_prog_key *key = data;
uint32_t fs_msaa_flags =
(key->multisample_fbo == INTEL_ALWAYS ?
INTEL_MSAA_FLAG_MULTISAMPLE_FBO : 0) |
(key->persample_interp == INTEL_ALWAYS ?
(INTEL_MSAA_FLAG_PERSAMPLE_DISPATCH |
INTEL_MSAA_FLAG_PERSAMPLE_INTERP) : 0) |
(key->alpha_to_coverage == INTEL_ALWAYS ?
INTEL_MSAA_FLAG_ALPHA_TO_COVERAGE : 0) |
(key->provoking_vertex_last == INTEL_ALWAYS ?
INTEL_MSAA_FLAG_PROVOKING_VERTEX_LAST : 0);
nir_def_replace(&intrin->def, nir_imm_int(b, fs_msaa_flags));
return true;
}
bool
brw_nir_lower_fs_msaa(nir_shader *shader,
const struct brw_wm_prog_key *key)
{
if (brw_wm_prog_key_is_dynamic(key))
return false;
return nir_shader_intrinsics_pass(shader,
brw_nir_lower_fs_msaa_intel_instr,
nir_metadata_control_flow |
nir_metadata_live_defs |
nir_metadata_divergence,
(void *)key);
}
-1
View File
@@ -73,7 +73,6 @@ libintel_compiler_brw_files = files(
'brw_nir_lower_cs_intrinsics.c',
'brw_nir_lower_alpha_to_coverage.c',
'brw_nir_lower_fs_barycentrics.c',
'brw_nir_lower_fs_msaa.c',
'brw_nir_lower_immediate_offsets.c',
'brw_nir_lower_intersection_shader.c',
'brw_nir_lower_ray_queries.c',