pan/bi: Fix LD_VAR_BUF indirect offset calculations
We multiply by 16 correctly but then drop that in the case where vbase
is non-zero. We typically lower FS input indirects so we don't see this
often but there are a few cases where they still sneak through.
Fixes: 0fcddd4d2c ("pan/bi: Rework varying linking on Valhall")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38788>
This commit is contained in:
committed by
Marge Bot
parent
9f173bb066
commit
83f90b0760
@@ -215,7 +215,6 @@ spec@ext_transform_feedback@tessellation triangle_strip flat_last,Fail
|
||||
spec@ext_transform_feedback@tessellation triangle_strip monochrome,Fail
|
||||
spec@ext_transform_feedback@tessellation triangle_strip smooth,Fail
|
||||
spec@ext_transform_feedback@tessellation triangle_strip wireframe,Fail
|
||||
spec@glsl-1.10@execution@variable-indexing@fs-input-array-vec4-index-rd,Fail
|
||||
spec@glsl-1.20@execution@fs-underflow-mul-compare-zero,Fail
|
||||
spec@glsl-1.30@execution@clipping@fs-clip-distance-interpolated,Crash
|
||||
spec@glsl-1.30@execution@interpolation@interpolation-noperspective-gl_backcolor-flat-distance,Fail
|
||||
|
||||
@@ -694,7 +694,7 @@ bi_emit_load_vary(bi_builder *b, nir_intrinsic_instr *instr)
|
||||
unsigned vbase = bi_varying_base_bytes(b->shader, instr);
|
||||
|
||||
if (vbase != 0)
|
||||
idx_bytes = bi_iadd_u32(b, idx, bi_imm_u32(vbase), false);
|
||||
idx_bytes = bi_iadd_u32(b, idx_bytes, bi_imm_u32(vbase), false);
|
||||
|
||||
bi_ld_var_buf_to(b, sz, dest, src0, idx_bytes, regfmt, sample,
|
||||
source_format, update, vecsize);
|
||||
|
||||
Reference in New Issue
Block a user