nvc0/ir: be careful about propagating very large offsets into const load
Indirect constbuf indexing works by using very large offsets. However if an indirect constbuf index load is const-propagated, it becomes a very large const offset. Take that into account when legalizing the SSA by moving the high parts of that offset into the file index. Also disallow very large (or small) indices on most other instructions. This fixes regressions in ubo_array_indexing/*-two-arrays piglit tests. Fixes: abd326e8 (nv50/ir: propagate indirect loads into instructions) Signed-off-by:Ilia Mirkin <imirkin@alum.mit.edu>
Showing
- src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp 6 additions, 0 deletions...gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
- src/gallium/drivers/nouveau/codegen/nv50_ir_target.h 1 addition, 1 deletionsrc/gallium/drivers/nouveau/codegen/nv50_ir_target.h
- src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp 10 additions, 0 deletionssrc/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp
- src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h 2 additions, 0 deletionssrc/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h
Loading
Please register or sign in to comment