mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
intel/nir: Fix txs for null surfaces
Closes: #4860 Fixes:05a37e2422("intel/nir: Set lower txs with non-zero LOD") Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11435> (cherry picked from commit4c67924251)
This commit is contained in:
parent
46d222c2ab
commit
c0d172016d
2 changed files with 8 additions and 4 deletions
|
|
@ -445,7 +445,7 @@
|
|||
"description": "intel/nir: Fix txs for null surfaces",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "05a37e2422080278a668f048cd8bc7a0e4d5d644"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1091,10 +1091,14 @@ nir_lower_txs_lod(nir_builder *b, nir_tex_instr *tex)
|
|||
nir_instr_rewrite_src(&tex->instr, &tex->src[lod_idx].src,
|
||||
nir_src_for_ssa(nir_imm_int(b, 0)));
|
||||
|
||||
/* TXS(LOD) = max(TXS(0) >> LOD, 1) */
|
||||
/* TXS(LOD) = max(TXS(0) >> LOD, 1)
|
||||
* But we do min(TXS(0), TXS(LOD)) to catch the case of a null surface,
|
||||
* which should return 0, not 1.
|
||||
*/
|
||||
b->cursor = nir_after_instr(&tex->instr);
|
||||
nir_ssa_def *minified = nir_imax(b, nir_ushr(b, &tex->dest.ssa, lod),
|
||||
nir_imm_int(b, 1));
|
||||
nir_ssa_def *minified = nir_imin(b, &tex->dest.ssa,
|
||||
nir_imax(b, nir_ushr(b, &tex->dest.ssa, lod),
|
||||
nir_imm_int(b, 1)));
|
||||
|
||||
/* Make sure the component encoding the array size (if any) is not
|
||||
* minified.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue