From 5b2cc545e84f5f0736bb0edcb6e156757e3b41cf Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Mon, 15 Mar 2021 13:46:42 +0100 Subject: [PATCH] vkd3d: Convert RTAS geometry flags. Signed-off-by: Hans-Kristian Arntzen --- libs/vkd3d/acceleration_structure.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libs/vkd3d/acceleration_structure.c b/libs/vkd3d/acceleration_structure.c index b476e940..5ef8b66a 100644 --- a/libs/vkd3d/acceleration_structure.c +++ b/libs/vkd3d/acceleration_structure.c @@ -51,6 +51,18 @@ static VkBuildAccelerationStructureFlagsKHR d3d12_build_flags_to_vk( return vk_flags; } +static VkGeometryFlagsKHR d3d12_geometry_flags_to_vk(D3D12_RAYTRACING_GEOMETRY_FLAGS flags) +{ + VkGeometryFlagsKHR vk_flags = 0; + + if (flags & D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE) + vk_flags |= VK_GEOMETRY_OPAQUE_BIT_KHR; + if (flags & D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION) + vk_flags |= VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR; + + return vk_flags; +} + bool vkd3d_acceleration_structure_convert_inputs( struct vkd3d_acceleration_structure_build_info *info, const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *desc) @@ -122,6 +134,8 @@ bool vkd3d_acceleration_structure_convert_inputs( else geom_desc = &desc->pGeometryDescs[i]; + info->geometries[i].flags = d3d12_geometry_flags_to_vk(geom_desc->Flags); + switch (geom_desc->Type) { case D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES: