mesa/src/gallium/drivers/r300/compiler
Pavel Ondračka 42a3d22f16 r300: Keep rc_rename_regs() from overflowing RC_REGISTER_MAX_INDEX
This pass tries to move register usage closer to SSA, and for large
shaders this means we can overflow the register index, which only has
RC_REGISTER_INDEX_BITS size. This creates invalid code and leads to
crash at a later stage. Limit the pool of available registers to
RC_REGISTER_MAX_INDEX, currently is was two times the number of
shader instructions.

This means we'll fail the compile right away if we wanted more than
RC_REGISTER_MAX_INDEX temps, but when we've got that many we're
already well past how many instructions we can support anyway.

CC: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6017
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17393>
2022-07-11 03:38:59 +00:00
..
tests r300/compiler/tests: print regoff_t as size_t 2022-03-03 17:48:17 +00:00
memory_pool.c
memory_pool.h
r3xx_fragprog.c r300: Delete the loop unrolling. 2022-02-15 17:27:17 +00:00
r3xx_vertprog.c r300: set PVS_XYZW_VALID_INST properly to last position write 2022-04-01 21:18:42 +00:00
r3xx_vertprog_dump.c
r300_fragprog.c
r300_fragprog.h
r300_fragprog_emit.c
r300_fragprog_swizzle.c replace 0 with NULL for NULL pointers 2022-01-10 22:53:32 +00:00
r300_fragprog_swizzle.h
r300_nir_algebraic.py r300: transform fs sin and cos input to [0,1) range in NIR 2022-02-11 16:09:45 +00:00
r500_fragprog.c r300: Ensure that immediates have matching negate flags too. 2021-12-08 02:35:52 +00:00
r500_fragprog.h
r500_fragprog_emit.c r300: Fix missing \n in an error message. 2022-02-03 14:28:41 -08:00
radeon_code.c
radeon_code.h r300: set PVS_XYZW_VALID_INST properly to last position write 2022-04-01 21:18:42 +00:00
radeon_compiler.c util: Rename pipe_debug_message to util_debug_message 2022-04-01 01:52:43 +00:00
radeon_compiler.h util: Rename pipe_debug_callback to util_debug_callback 2022-04-01 01:52:43 +00:00
radeon_compiler_util.c r300: don't check for unitialized reads when rewriting register 2022-06-05 21:38:36 +00:00
radeon_compiler_util.h r300: don't check for unitialized reads when rewriting register 2022-06-05 21:38:36 +00:00
radeon_dataflow.c r300: be less agresive with copy propagate in loops 2022-06-05 21:38:36 +00:00
radeon_dataflow.h r300: be less agresive with copy propagate in loops 2022-06-05 21:38:36 +00:00
radeon_dataflow_deadcode.c r300: fix deadcode elimination in loops with breaks 2022-02-05 15:39:26 +01:00
radeon_dataflow_swizzles.c r300: keep negation if w is an inline constant 2022-05-19 06:34:02 +00:00
radeon_emulate_branches.c replace 0 with NULL for NULL pointers 2022-01-10 22:53:32 +00:00
radeon_emulate_branches.h
radeon_inline_literals.c r300: don't try to use inline constants instead of constant swizzles 2022-06-05 21:38:36 +00:00
radeon_list.c
radeon_list.h
radeon_opcodes.c r300: Remove unused RC_OPCODE_DPH 2021-12-16 16:57:02 +00:00
radeon_opcodes.h r300: Remove unused RC_OPCODE_DPH 2021-12-16 16:57:02 +00:00
radeon_optimize.c r300: only run merge_movs pass on R500 2022-06-23 12:59:11 +00:00
radeon_pair_dead_sources.c
radeon_pair_regalloc.c
radeon_pair_schedule.c r300: schedule TEX instructions before OUT instructions 2022-03-03 20:05:32 +00:00
radeon_pair_translate.c
radeon_program.c
radeon_program.h
radeon_program_alu.c r300: Print warning when stubbing derivatives 2022-04-21 16:49:53 +00:00
radeon_program_alu.h r300: stub derivatives on r300 and r400 hardware 2021-11-03 21:56:19 +00:00
radeon_program_constants.h r300: keep negation if w is an inline constant 2022-05-19 06:34:02 +00:00
radeon_program_pair.c
radeon_program_pair.h
radeon_program_print.c r300: Use uif() instead of pointer aliasing in program printing. 2022-01-05 17:07:38 +00:00
radeon_program_tex.c r300: Remove the non_normalized_coords from the shader key. 2021-12-08 02:35:52 +00:00
radeon_program_tex.h
radeon_regalloc.h
radeon_remove_constants.c
radeon_remove_constants.h
radeon_rename_regs.c r300: Keep rc_rename_regs() from overflowing RC_REGISTER_MAX_INDEX 2022-07-11 03:38:59 +00:00
radeon_rename_regs.h
radeon_swizzle.h
radeon_variable.c r300: don't check for unitialized reads when rewriting register 2022-06-05 21:38:36 +00:00
radeon_variable.h
radeon_vert_fc.c r300: fix vertex shader control flow in loops 2022-05-13 08:15:15 +00:00