From fd874bdd0c03593a51dce50c7a46c6578eecb66d Mon Sep 17 00:00:00 2001 From: Patrick Lerda Date: Fri, 31 Jan 2025 12:58:51 +0100 Subject: [PATCH] r600: fix emit_image_size() range base compatibility This change fixes a regression introduced with 8b5d41cacb51. Indeed, lookup_resid was not updated. This change was tested on palm and cayman. Here are the tests fixed: khr-gl4[3-5]/shader_image_size/advanced-nonms-cs-float: fail pass khr-gl4[3-5]/shader_image_size/advanced-nonms-cs-int: fail pass khr-gl4[3-5]/shader_image_size/advanced-nonms-cs-uint: fail pass khr-gl4[3-5]/shader_image_size/advanced-nonms-fs-float: fail pass khr-gl4[3-5]/shader_image_size/advanced-nonms-fs-int: fail pass khr-gl4[3-5]/shader_image_size/advanced-nonms-fs-uint: fail pass khr-gl4[3-5]/shader_image_size/basic-nonms-cs-float: fail pass khr-gl4[3-5]/shader_image_size/basic-nonms-cs-int: fail pass khr-gl4[3-5]/shader_image_size/basic-nonms-cs-uint: fail pass khr-gl4[3-5]/shader_image_size/basic-nonms-fs-float: fail pass khr-gl4[3-5]/shader_image_size/basic-nonms-fs-int: fail pass khr-gl4[3-5]/shader_image_size/basic-nonms-fs-uint: fail pass Fixes: 8b5d41cacb51 ("r600/sfn: Use range_base for atomics and images") Signed-off-by: Patrick Lerda Part-of: --- src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp index a19d3632caa..8a484fcfe21 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp @@ -915,7 +915,8 @@ RatInstr::emit_image_size(nir_intrinsic_instr *intrin, Shader& shader) shader.set_flag(Shader::sh_txs_cube_array_comp); if (const_offset) { - unsigned lookup_resid = const_offset[0].u32 + shader.image_size_const_offset(); + unsigned lookup_resid = (res_id - R600_IMAGE_REAL_RESOURCE_OFFSET) + + shader.image_size_const_offset(); shader.emit_instruction( new AluInstr(op1_mov, dest[2],