diff options
Diffstat (limited to 'src/intel/compiler')
-rw-r--r-- | src/intel/compiler/brw_fs.cpp | 8 | ||||
-rw-r--r-- | src/intel/compiler/brw_fs_nir.cpp | 9 | ||||
-rw-r--r-- | src/intel/compiler/brw_wm_iz.cpp | 2 |
3 files changed, 8 insertions, 11 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp index 493b9fdf8bb..c8dae0c85d9 100644 --- a/src/intel/compiler/brw_fs.cpp +++ b/src/intel/compiler/brw_fs.cpp @@ -6822,7 +6822,7 @@ fs_visitor::setup_fs_payload_gen6() assert(devinfo->gen >= 6); prog_data->uses_src_depth = prog_data->uses_src_w = - (nir->info.inputs_read & (1 << VARYING_SLOT_POS)) != 0; + (nir->info.system_values_read & (1ull << SYSTEM_VALUE_FRAG_COORD)) != 0; prog_data->uses_sample_mask = (nir->info.system_values_read & SYSTEM_BIT_SAMPLE_MASK_IN) != 0; @@ -7601,6 +7601,7 @@ fs_visitor::run_fs(bool allow_spilling, bool do_rep_send) emit_shader_time_begin(); if (nir->info.inputs_read > 0 || + (nir->info.system_values_read & (1ull << SYSTEM_VALUE_FRAG_COORD)) || (nir->info.outputs_read > 0 && !wm_key->coherent_fb_fetch)) { if (devinfo->gen < 6) emit_interpolation_setup_gen4(); @@ -7707,10 +7708,7 @@ is_used_in_not_interp_frag_coord(nir_ssa_def *def) return true; nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(src->parent_instr); - if (intrin->intrinsic != nir_intrinsic_load_interpolated_input) - return true; - - if (nir_intrinsic_base(intrin) != VARYING_SLOT_POS) + if (intrin->intrinsic != nir_intrinsic_load_frag_coord) return true; } diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index 0b3982737dd..2451fbf0349 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -3829,12 +3829,11 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder &bld, break; } - case nir_intrinsic_load_interpolated_input: { - if (nir_intrinsic_base(instr) == VARYING_SLOT_POS) { - emit_fragcoord_interpolation(dest); - break; - } + case nir_intrinsic_load_frag_coord: + emit_fragcoord_interpolation(dest); + break; + case nir_intrinsic_load_interpolated_input: { assert(instr->src[0].ssa && instr->src[0].ssa->parent_instr->type == nir_instr_type_intrinsic); nir_intrinsic_instr *bary_intrinsic = diff --git a/src/intel/compiler/brw_wm_iz.cpp b/src/intel/compiler/brw_wm_iz.cpp index b9b7e70a0f3..c2ea4aafd2b 100644 --- a/src/intel/compiler/brw_wm_iz.cpp +++ b/src/intel/compiler/brw_wm_iz.cpp @@ -145,7 +145,7 @@ void fs_visitor::setup_fs_payload_gen4() payload.subspan_coord_reg[0] = reg++; prog_data->uses_src_depth = - (nir->info.inputs_read & (1 << VARYING_SLOT_POS)) != 0; + (nir->info.system_values_read & (1ull << SYSTEM_VALUE_FRAG_COORD)) != 0; if (wm_iz_table[lookup].sd_present || prog_data->uses_src_depth || kill_stats_promoted_workaround) { payload.source_depth_reg[0] = reg; |