radv/bvh: Treat instances with mask == 0 as inactive

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25268>
This commit is contained in:
Konstantin Seurer 2023-09-16 16:35:00 +02:00 committed by Marge Bot
parent 8d2dcd55d7
commit 3e7850f97b

View file

@ -268,8 +268,10 @@ build_instance(inout radv_aabb bounds, VOID_REF src_ptr, VOID_REF dst_ptr, uint3
AccelerationStructureInstance instance = DEREF(REF(AccelerationStructureInstance)(src_ptr));
DEREF(node).base_ptr = instance.accelerationStructureReference;
/* An inactive instance is one whose acceleration structure handle is VK_NULL_HANDLE. */
if (instance.accelerationStructureReference == 0)
/* An inactive instance is one whose acceleration structure handle is VK_NULL_HANDLE. Since the active terminology is
* only relevant for BVH updates, which we do not implement, we can also skip instances with mask == 0.
*/
if (instance.accelerationStructureReference == 0 || instance.custom_instance_and_mask < (1u << 24u))
return false;
DEREF(node).otw_matrix = instance.transform;