aco/gfx12: use s_load_dwordx3 to load ray launch sizes

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34162>
This commit is contained in:
Rhys Perry
2025-03-11 12:10:28 +00:00
committed by Marge Bot
parent cbd718506b
commit 208d62430f
+10 -4
View File
@@ -12600,10 +12600,16 @@ select_rt_prolog(Program* program, ac_shader_config* config,
Operand(tmp_raygen_sbt, s2), Operand::c32(0u));
/* load ray launch sizes */
bld.smem(aco_opcode::s_load_dword, Definition(out_launch_size_z, s1),
Operand(in_launch_size_addr, s2), Operand::c32(8u));
bld.smem(aco_opcode::s_load_dwordx2, Definition(out_launch_size_x, s2),
Operand(in_launch_size_addr, s2), Operand::c32(0u));
assert(out_launch_size_x.reg() % 4 == 0);
if (options->gfx_level >= GFX12) {
bld.smem(aco_opcode::s_load_dwordx3, Definition(out_launch_size_x, s3),
Operand(in_launch_size_addr, s2), Operand::c32(0u));
} else {
bld.smem(aco_opcode::s_load_dword, Definition(out_launch_size_z, s1),
Operand(in_launch_size_addr, s2), Operand::c32(8u));
bld.smem(aco_opcode::s_load_dwordx2, Definition(out_launch_size_x, s2),
Operand(in_launch_size_addr, s2), Operand::c32(0u));
}
/* calculate ray launch ids */
if (options->gfx_level >= GFX11) {