aco: Pre-split result of bvh64_intersect_ray_amd.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tue, 18 Oct 2022 21:56:31 +0000 (23:56 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 19 Oct 2022 21:44:48 +0000 (21:44 +0000)
Avoids  later moves with extractions from the vector.

Reduces VALU operation in the raytrace loop by ~6%, increasing
the RT performance in Q2RTX on a 6800 XT by about ~1.3%.

Suggested by Georg.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19148>

src/amd/compiler/aco_instruction_selection.cpp

index e48f128..29fe8f3 100644 (file)
@@ -6156,6 +6156,8 @@ visit_bvh64_intersect_ray_amd(isel_context* ctx, nir_intrinsic_instr* instr)
    mimg->dmask = 0xf;
    mimg->unrm = true;
    mimg->r128 = true;
+
+   emit_split_vector(ctx, dst, instr->dest.ssa.num_components);
 }
 
 static std::vector<Temp>