Skip to content

Commit 8f7fcb0

Browse files
authored
ray_tracing_invocation_reorder: set scratch buffer alignment (#1499)
* ray_tracing_invocation_reorder: set scrach buffer alignment * ray_tracing_invocation_reorder: set scrach buffer alignment * ray_tracing_invocation_reorder: set scrach buffer alignment: remove duplicate line
1 parent 62f40c9 commit 8f7fcb0

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

samples/extensions/ray_tracing_invocation_reorder/ray_tracing_invocation_reorder.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@ void RaytracingInvocationReorder::create_bottom_level_acceleration_structure(boo
419419
model_buffer.vertex_offset + (model_buffer.is_static ? static_vertex_handle : dynamic_vertex_handle),
420420
model_buffer.index_offset + (model_buffer.is_static ? static_index_handle : dynamic_index_handle));
421421
}
422+
model_buffer.bottom_level_acceleration_structure->set_scrach_buffer_alignment(acceleration_structure_properties.minAccelerationStructureScratchOffsetAlignment);
422423
model_buffer.bottom_level_acceleration_structure->build(queue,
423424
model_buffer.is_static ? VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR : VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR | VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
424425
is_update ? VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR : VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR);
@@ -548,6 +549,7 @@ void RaytracingInvocationReorder::create_top_level_acceleration_structure(bool p
548549
{
549550
top_level_acceleration_structure->update_instance_geometry(instance_uid, instances_buffer, static_cast<uint32_t>(instances.size()));
550551
}
552+
top_level_acceleration_structure->set_scrach_buffer_alignment(acceleration_structure_properties.minAccelerationStructureScratchOffsetAlignment);
551553
top_level_acceleration_structure->build(queue);
552554
}
553555

@@ -1183,6 +1185,8 @@ bool RaytracingInvocationReorder::prepare(const vkb::ApplicationOptions &options
11831185
VkPhysicalDeviceProperties2 device_properties{};
11841186
device_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
11851187
device_properties.pNext = &ray_tracing_pipeline_properties;
1188+
ray_tracing_pipeline_properties.pNext = &acceleration_structure_properties;
1189+
11861190
vkGetPhysicalDeviceProperties2(get_device().get_gpu().get_handle(), &device_properties);
11871191

11881192
// Get the acceleration structure features, which we'll need later on in the sample

samples/extensions/ray_tracing_invocation_reorder/ray_tracing_invocation_reorder.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class RaytracingInvocationReorder : public ApiVulkanSample
3232
public:
3333
VkPhysicalDeviceRayTracingPipelinePropertiesKHR ray_tracing_pipeline_properties{};
3434
VkPhysicalDeviceAccelerationStructureFeaturesKHR acceleration_structure_features{};
35+
// Acceleration structure properties.
36+
VkPhysicalDeviceAccelerationStructurePropertiesKHR acceleration_structure_properties{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR};
3537
#ifdef VK_EXT_ray_tracing_invocation_reorder
3638
VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT invocation_reorder_properties_ext{};
3739
#endif

0 commit comments

Comments
 (0)