From 09c218e8aae70da3c7eb778175a204bc489da63c Mon Sep 17 00:00:00 2001 From: Felix DeGrood Date: Fri, 10 Oct 2025 19:35:37 +0000 Subject: [PATCH] anv/rt: fully restore code to write instance_count Conformance tests and games still pass without this code, but spec says we need it: https://registry.khronos.org/vulkan/specs/latest/html/ vkspec.html#vkCmdCopyAccelerationStructureToMemoryKHR This is potentially expensive code. There may be a future opportunity to optimize this out. Need to research. Reviewed-by: Sagar Ghuge Part-of: --- src/intel/vulkan/bvh/encode.comp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/intel/vulkan/bvh/encode.comp b/src/intel/vulkan/bvh/encode.comp index b78f49a223b..4ae8563c1fe 100644 --- a/src/intel/vulkan/bvh/encode.comp +++ b/src/intel/vulkan/bvh/encode.comp @@ -251,7 +251,10 @@ encode_leaf_node(uint32_t type, uint64_t src_node, uint64_t dst_node, REF(anv_ac DEREF(dst_instance).part1.instance_index = src.instance_id; DEREF(dst_instance).part1.instance_id = src.custom_instance_and_mask & 0xffffff; + uint64_t instance_leaves_addr_base = args.output_bvh - + args.output_bvh_offset + ANV_RT_BVH_HEADER_SIZE; uint64_t cnt = atomicAdd(DEREF(dst_header).instance_count, 1); + DEREF(INDEX(uint64_t, instance_leaves_addr_base, cnt)) = dst_node; break; } }