nir/lower_tex: avoid adding invalid LOD to RECT textures

this is illegal

Fixes: 74ec2b12be ("nir/lower_tex: Rework invalid implicit LOD lowering")

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15804>
(cherry picked from commit 6cfcf891c1)
This commit is contained in:
Mike Blumenkrantz 2022-04-07 14:49:07 -04:00 committed by Dylan Baker
parent ee46e64aa0
commit 3c0ba49a66
2 changed files with 3 additions and 1 deletions

View file

@ -4036,7 +4036,7 @@
"description": "nir/lower_tex: avoid adding invalid LOD to RECT textures",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"because_sha": "74ec2b12be17a7796186b3100a5a6b208be45b23"
},
{

View file

@ -1471,8 +1471,10 @@ nir_lower_tex_block(nir_block *block, nir_builder *b,
/* Only fragment and compute (in some cases) support implicit
* derivatives. Lower those opcodes which use implicit derivatives to
* use an explicit LOD of 0.
* But don't touch RECT samplers because they don't have mips.
*/
if (nir_tex_instr_has_implicit_derivative(tex) &&
tex->sampler_dim != GLSL_SAMPLER_DIM_RECT &&
!nir_shader_supports_implicit_lod(b->shader)) {
lower_zero_lod(b, tex);
progress = true;