nir: Add a new lowering option to lower 3D surfaces from txd to txl.

Tested on gen9.

v2: Rename lower_txd_3d_surafaces flag to lower_txd_3d (Jason Ekstrand)

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Sagar Ghuge
2018-12-13 11:40:58 -08:00
parent 7ea8e54dd6
commit 933c44bcc4
2 changed files with 8 additions and 1 deletions

View File

@@ -3008,6 +3008,11 @@ typedef struct nir_lower_tex_options {
*/
bool lower_txd_cube_map;
/**
* If true, lower nir_texop_txd on 3D surfaces with nir_texop_txl.
*/
bool lower_txd_3d;
/**
* If true, lower nir_texop_txd on shadow samplers (except cube maps)
* with nir_texop_txl. Notice that cube map shadow samplers are lowered

View File

@@ -905,7 +905,9 @@ nir_lower_tex_block(nir_block *block, nir_builder *b,
(options->lower_txd_shadow_clamp && tex->is_shadow && has_min_lod) ||
(options->lower_txd_offset_clamp && has_offset && has_min_lod) ||
(options->lower_txd_cube_map &&
tex->sampler_dim == GLSL_SAMPLER_DIM_CUBE))) {
tex->sampler_dim == GLSL_SAMPLER_DIM_CUBE) ||
(options->lower_txd_3d &&
tex->sampler_dim == GLSL_SAMPLER_DIM_3D))) {
lower_gradient(b, tex);
progress = true;
continue;