From 402ae3b132e026d681cb5e4b8b44d6504998c2b5 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 20 Jun 2023 13:48:05 -0400 Subject: [PATCH] nir/lower_tex: ignore saturate for txf ops saturate is used for GL_CLAMP emulation, and GL_CLAMP cannot be used with txf ref #9226 cc: mesa-stable Reviewed-by: Jesse Natalie Part-of: --- src/compiler/nir/nir_lower_tex.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/compiler/nir/nir_lower_tex.c b/src/compiler/nir/nir_lower_tex.c index 16c335b9acf..b01f18a8f32 100644 --- a/src/compiler/nir/nir_lower_tex.c +++ b/src/compiler/nir/nir_lower_tex.c @@ -1385,13 +1385,15 @@ nir_lower_tex_block(nir_block *block, nir_builder *b, /* mask of src coords to saturate (clamp): */ unsigned sat_mask = 0; - - if ((1 << tex->sampler_index) & options->saturate_r) - sat_mask |= (1 << 2); /* .z */ - if ((1 << tex->sampler_index) & options->saturate_t) - sat_mask |= (1 << 1); /* .y */ - if ((1 << tex->sampler_index) & options->saturate_s) - sat_mask |= (1 << 0); /* .x */ + /* ignore saturate for txf ops: these don't use samplers and can't GL_CLAMP */ + if (nir_tex_instr_need_sampler(tex)) { + if ((1 << tex->sampler_index) & options->saturate_r) + sat_mask |= (1 << 2); /* .z */ + if ((1 << tex->sampler_index) & options->saturate_t) + sat_mask |= (1 << 1); /* .y */ + if ((1 << tex->sampler_index) & options->saturate_s) + sat_mask |= (1 << 0); /* .x */ + } if (options->lower_index_to_offset) progress |= lower_index_to_offset(b, tex);