[Mesa-dev] [PATCH 7/8] i965/fs: Handle nir_tex_src_ms_index more like the vec4

Ian Romanick idr at freedesktop.org
Wed Nov 18 15:46:53 PST 2015


From: Ian Romanick <ian.d.romanick at intel.com>

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
 src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index cdd470b..1f71f66 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
@@ -2579,6 +2579,13 @@ fs_visitor::nir_emit_texture(const fs_builder &bld, nir_tex_instr *instr)
          break;
       case nir_tex_src_ms_index:
          sample_index = retype(src, BRW_REGISTER_TYPE_UD);
+         if (devinfo->gen >= 7 &&
+             key_tex->compressed_multisample_layout_mask & (1 << sampler)) {
+            mcs = emit_mcs_fetch(coordinate, instr->coord_components, sampler_reg);
+         } else {
+            mcs = fs_reg(0u);
+         }
+         mcs = retype(mcs, BRW_REGISTER_TYPE_UD);
          break;
       case nir_tex_src_offset:
          tex_offset = retype(src, BRW_REGISTER_TYPE_D);
@@ -2612,15 +2619,6 @@ fs_visitor::nir_emit_texture(const fs_builder &bld, nir_tex_instr *instr)
       }
    }
 
-   if (instr->op == nir_texop_txf_ms) {
-      if (devinfo->gen >= 7 &&
-          key_tex->compressed_multisample_layout_mask & (1 << sampler)) {
-         mcs = emit_mcs_fetch(coordinate, instr->coord_components, sampler_reg);
-      } else {
-         mcs = fs_reg(0u);
-      }
-   }
-
    for (unsigned i = 0; i < 3; i++) {
       if (instr->const_offset[i] != 0) {
          assert(offset_components == 0);
-- 
2.1.0



More information about the mesa-dev mailing list