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>
This commit is contained in:
Francisco Jerez
2021-05-17 13:15:48 -07:00
committed by Marge Bot
parent 85315f5fb1
commit 231337a13a
2 changed files with 11 additions and 2 deletions

View File

@@ -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;

View File

@@ -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);