diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp index 3a0e24712ad..99f945569d7 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp @@ -937,8 +937,6 @@ RatInstr::emit_image_load_or_atomic(nir_intrinsic_instr *intrin, Shader& shader) return true; } -#define R600_SHADER_BUFFER_INFO_SEL (512 + R600_BUFFER_INFO_OFFSET / 16) - bool RatInstr::emit_image_size(nir_intrinsic_instr *intrin, Shader& shader) { diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp index cf946140140..38d26a40f6b 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp @@ -603,7 +603,7 @@ TexInstr::emit_buf_txf(nir_tex_instr *tex, Inputs& src, Shader& shader) if (shader.chip_class() < ISA_CC_EVERGREEN) { auto tmp_w = vf.temp_register(); - int buf_sel = (512 + R600_BUFFER_INFO_OFFSET / 16) + 2 * tex->texture_index; + int buf_sel = R600_SHADER_BUFFER_INFO_SEL + 2 * tex->texture_index; AluInstr *ir = nullptr; for (int i = 0; i < 4; ++i) { auto d = i < 3 ? dst[i] : tmp_w; @@ -658,7 +658,7 @@ TexInstr::emit_tex_txs(nir_tex_instr *tex, shader.emit_instruction(new QueryBufferSizeInstr( dest, {0, 7, 7, 7}, tex->texture_index + R600_MAX_CONST_BUFFERS)); } else { - int id = 2 * tex->texture_index + (512 + R600_BUFFER_INFO_OFFSET / 16) + 1; + int id = 2 * tex->texture_index + R600_SHADER_BUFFER_INFO_SEL + 1; auto src = vf.uniform(id, 1, R600_BUFFER_INFO_CONST_BUFFER); shader.emit_instruction(new AluInstr(op1_mov, dest[0], src, AluInstr::write)); shader.set_flag(Shader::sh_uses_tex_buffer); @@ -684,9 +684,10 @@ TexInstr::emit_tex_txs(nir_tex_instr *tex, shader.emit_instruction(ir); if (tex->is_array && tex->sampler_dim == GLSL_SAMPLER_DIM_CUBE) { - auto src_loc = vf.uniform(512 + R600_BUFFER_INFO_OFFSET / 16 + (tex->texture_index >> 2), - tex->texture_index & 3, - R600_BUFFER_INFO_CONST_BUFFER); + auto src_loc = + vf.uniform(R600_SHADER_BUFFER_INFO_SEL + (tex->texture_index >> 2), + tex->texture_index & 3, + R600_BUFFER_INFO_CONST_BUFFER); auto alu = new AluInstr(op1_mov, dest[2], src_loc, AluInstr::write); shader.emit_instruction(alu); diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_tex.h b/src/gallium/drivers/r600/sfn/sfn_instr_tex.h index 82f8739ae68..1267ed9abf6 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_tex.h +++ b/src/gallium/drivers/r600/sfn/sfn_instr_tex.h @@ -11,6 +11,8 @@ #include "sfn_shader.h" #include "sfn_valuefactory.h" +#define R600_SHADER_BUFFER_INFO_SEL (512 + R600_BUFFER_INFO_OFFSET / 16) + namespace r600 { class TexInstr : public InstrWithVectorResult {