diff --git a/.pick_status.json b/.pick_status.json index 27175d7b13d..2c2a7077f04 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1687,7 +1687,7 @@ "description": "nir/lower_tex: ignore saturate for txf ops", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/compiler/nir/nir_lower_tex.c b/src/compiler/nir/nir_lower_tex.c index 64ab92c4619..60364999a3e 100644 --- a/src/compiler/nir/nir_lower_tex.c +++ b/src/compiler/nir/nir_lower_tex.c @@ -1419,13 +1419,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);