From 03f0f70adf11cea248d0ce205d26365476e16870 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Fri, 2 Dec 2022 13:06:02 +0200 Subject: [PATCH] intel/nir/rt: use a single load for instance leaf loading Signed-off-by: Lionel Landwerlin Reviewed-by: Caio Oliveira Part-of: --- src/intel/compiler/brw_nir_rt_builder.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/intel/compiler/brw_nir_rt_builder.h b/src/intel/compiler/brw_nir_rt_builder.h index 43c3db4..0658496 100644 --- a/src/intel/compiler/brw_nir_rt_builder.h +++ b/src/intel/compiler/brw_nir_rt_builder.h @@ -837,12 +837,12 @@ brw_nir_rt_load_bvh_instance_leaf(nir_builder *b, struct brw_nir_rt_bvh_instance_leaf_defs *defs, nir_ssa_def *leaf_addr) { + nir_ssa_def *leaf_desc = brw_nir_rt_load(b, leaf_addr, 4, 2, 32); + defs->shader_index = - nir_iand_imm(b, brw_nir_rt_load(b, leaf_addr, 4, 1, 32), (1 << 24) - 1); + nir_iand_imm(b, nir_channel(b, leaf_desc, 0), (1 << 24) - 1); defs->contribution_to_hit_group_index = - nir_iand_imm(b, - brw_nir_rt_load(b, nir_iadd_imm(b, leaf_addr, 4), 4, 1, 32), - (1 << 24) - 1); + nir_iand_imm(b, nir_channel(b, leaf_desc, 1), (1 << 24) - 1); defs->world_to_object[0] = brw_nir_rt_load(b, nir_iadd_imm(b, leaf_addr, 16), 4, 3, 32); -- 2.7.4