From 234e8fd157fa0c27aa213d6e2684525194840fd8 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Wed, 4 Jan 2023 14:31:48 +0100 Subject: [PATCH] r600/sfn: make sure we return a non-negative number of registers If a shader doesn't use any register and only ssa values we might end up with zero minimum registers, and because a unsigned is returned that goes wrong. Fixes: 565816dfa15214abbeef9a9d94e44f30507ca4d7 r600/sfn: Set minimum required registers based on array allocation Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8008 Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_shader.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_shader.cpp b/src/gallium/drivers/r600/sfn/sfn_shader.cpp index 19efe3800dd..dac6ddcae48 100644 --- a/src/gallium/drivers/r600/sfn/sfn_shader.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_shader.cpp @@ -520,7 +520,8 @@ Shader::allocate_local_registers(const exec_list *registers) { if (value_factory().allocate_registers(registers)) m_indirect_files |= 1 << TGSI_FILE_TEMPORARY; - m_required_registers = value_factory().next_register_index() - 1; + m_required_registers = value_factory().next_register_index() ? + value_factory().next_register_index() - 1 : 0; } bool