diff --git a/src/intel/compiler/elk/elk_fs.h b/src/intel/compiler/elk/elk_fs.h index 0aedb4a2e92334c2b55465215a2169eae10392b6..daffeb408f23d8d4178cf941906fe9a56fc75e57 100644 --- a/src/intel/compiler/elk/elk_fs.h +++ b/src/intel/compiler/elk/elk_fs.h @@ -392,7 +392,6 @@ public: elk_fs_reg uw_pixel_x; elk_fs_reg uw_pixel_y; elk_fs_reg pixel_z; - elk_fs_reg wpos_w; elk_fs_reg delta_xy[ELK_BARYCENTRIC_MODE_COUNT]; elk_fs_reg final_gs_vertex_count; elk_fs_reg control_data_bits; diff --git a/src/intel/compiler/elk/elk_fs_nir.cpp b/src/intel/compiler/elk/elk_fs_nir.cpp index 32f95d26fdf86bd459d3dbb34c9db3ea36ad320b..c4d84f6fac3f318091b1f45147dcb983c3792a07 100644 --- a/src/intel/compiler/elk/elk_fs_nir.cpp +++ b/src/intel/compiler/elk/elk_fs_nir.cpp @@ -3952,7 +3952,7 @@ fs_nir_emit_fs_intrinsic(nir_to_elk_state &ntb, case nir_intrinsic_load_frag_coord_w: /* Lowered to interpolation pre-gen6. */ assert(devinfo->ver >= 6); - bld.MOV(dest, s.wpos_w); + bld.emit(ELK_SHADER_OPCODE_RCP, dest, fetch_payload_reg(bld, fs_payload().source_w_reg)); break; case nir_intrinsic_load_interpolated_input: { diff --git a/src/intel/compiler/elk/elk_fs_visitor.cpp b/src/intel/compiler/elk/elk_fs_visitor.cpp index 78b5031d911c936ea8ffc13ee28472dd34c09a43..0e05bc32aa963e83fd6672adf90c70d81d3202b2 100644 --- a/src/intel/compiler/elk/elk_fs_visitor.cpp +++ b/src/intel/compiler/elk/elk_fs_visitor.cpp @@ -139,12 +139,6 @@ elk_fs_visitor::emit_interpolation_setup_gfx4() this->delta_xy[ELK_BARYCENTRIC_PERSPECTIVE_PIXEL]; abld = bld.annotate("compute pos.w and 1/pos.w"); - /* Compute wpos.w. It's always in our setup, since it's needed to - * interpolate the other attributes. - */ - this->wpos_w = vgrf(glsl_float_type()); - abld.emit(ELK_FS_OPCODE_LINTERP, wpos_w, delta_xy, - interp_reg(abld, VARYING_SLOT_POS, 3, 0)); } /** Emits the interpolation for the varying inputs. */ @@ -272,13 +266,6 @@ elk_fs_visitor::emit_interpolation_setup_gfx6() if (wm_prog_data->uses_src_depth) this->pixel_z = fetch_payload_reg(bld, fs_payload().source_depth_reg); - if (wm_prog_data->uses_src_w) { - abld = bld.annotate("compute pos.w"); - this->wpos_w = vgrf(glsl_float_type()); - abld.emit(ELK_SHADER_OPCODE_RCP, this->wpos_w, - fetch_payload_reg(abld, fs_payload().source_w_reg)); - } - if (wm_key->persample_interp == ELK_SOMETIMES) { assert(!devinfo->needs_unlit_centroid_workaround);