diff --git a/src/amd/vulkan/bvh/update.comp b/src/amd/vulkan/bvh/update.comp index 84c3c9ab96c..d8a9a6047cf 100644 --- a/src/amd/vulkan/bvh/update.comp +++ b/src/amd/vulkan/bvh/update.comp @@ -95,6 +95,8 @@ void main() { if (!VK_BUILD_FLAG(RADV_BUILD_FLAG_UPDATE_IN_PLACE)) { for (uint32_t i = 0; i < 4; ++i) DEREF(dst_node).children[i] = children[i]; + if (VK_BUILD_FLAG(VK_BUILD_FLAG_PROPAGATE_CULL_FLAGS)) + DEREF(dst_node).flags = DEREF(src_node).flags; } for (uint32_t i = 0; i < valid_child_count; ++i) { diff --git a/src/amd/vulkan/radv_acceleration_structure.c b/src/amd/vulkan/radv_acceleration_structure.c index fe753276189..4271a0be143 100644 --- a/src/amd/vulkan/radv_acceleration_structure.c +++ b/src/amd/vulkan/radv_acceleration_structure.c @@ -320,6 +320,9 @@ radv_get_build_config(VkDevice _device, struct vk_acceleration_structure_build_s if (state->build_info->geometryCount == 1) update_key |= RADV_BUILD_FLAG_UPDATE_SINGLE_GEOMETRY; + if (device->meta_state.accel_struct_build.build_args.propagate_cull_flags) + update_key |= VK_BUILD_FLAG_PROPAGATE_CULL_FLAGS; + state->config.update_key[0] = update_key; }