Skip to content

intel/fs: fix size_read() for LOAD_PAYLOAD

With Anv/Zink, the piglit test :

arb_shader_storage_buffer_object-max-ssbo-size -auto -fbo fsexceed

is failing validation after copy propagation :

load_payload(8) vgrf15:F, vgrf1+0.12<0>:F, vgrf1+0.0<0>:F, vgrf1+0.4<0>:F, vgrf1+0.8<0>:F, vgrf1+0.12<0>:F
../src/intel/compiler/brw_fs_validate.cpp:191: A <= B failed
  A = inst->src[i].offset / REG_SIZE + regs_read(inst, i) = 2
  B = alloc.sizes[inst->src[i].nr] = 1

In most cases it works because src[0] would be at offset 0 and so reading a full reg passes validation, but Anv/Zink started emitting slightly different code adding an offset making the size read 2 GRFs.

Signed-off-by: Lionel Landwerlin lionel.g.landwerlin@intel.com

Edited by Lionel Landwerlin

Merge request reports

Loading