summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2021-05-17 13:15:48 -0700
committerMarge Bot <eric+marge@anholt.net>2021-06-23 07:34:22 +0000
commit231337a13af03f5579f5401cff16aa96ec796746 (patch)
tree9df3ad554f171435e7422f48c3168ddfb33cfeb6
parent85315f5fb1b17b7e289c22da317bc3f37666d043 (diff)
intel/fs/xehp: Assert that the compiler is sending all 3 coords for cubemaps.
As required by HSDES:14013363432. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11433>
-rw-r--r--src/intel/compiler/brw_fs.cpp6
-rw-r--r--src/intel/compiler/brw_fs_nir.cpp7
2 files changed, 11 insertions, 2 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 9cdd64ea82b..bab4bbb7fff 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -3049,9 +3049,11 @@ bool
fs_visitor::opt_zero_samples()
{
/* Gfx4 infers the texturing opcode based on the message length so we can't
- * change it.
+ * change it. Gfx12.5 has restrictions on the number of coordinate
+ * parameters that have to be provided for some texture types
+ * (Wa_14013363432).
*/
- if (devinfo->ver < 5)
+ if (devinfo->ver < 5 || devinfo->verx10 == 125)
return false;
bool progress = false;
diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp
index fde08300f69..35f881a66fa 100644
--- a/src/intel/compiler/brw_fs_nir.cpp
+++ b/src/intel/compiler/brw_fs_nir.cpp
@@ -5829,6 +5829,13 @@ fs_visitor::nir_emit_texture(const fs_builder &bld, nir_tex_instr *instr)
srcs[TEX_LOGICAL_SRC_COORDINATE] = retype(src, BRW_REGISTER_TYPE_F);
break;
}
+
+ /* Wa_14013363432:
+ *
+ * Compiler should send U,V,R parameters even if V,R are 0.
+ */
+ if (instr->sampler_dim == GLSL_SAMPLER_DIM_CUBE && devinfo->verx10 == 125)
+ assert(instr->coord_components == 3u + instr->is_array);
break;
case nir_tex_src_ddx:
srcs[TEX_LOGICAL_SRC_LOD] = retype(src, BRW_REGISTER_TYPE_F);