diff --git a/src/Magnum/Vk/BufferCreateInfo.h b/src/Magnum/Vk/BufferCreateInfo.h index 7f9e0babb..b97b85668 100644 --- a/src/Magnum/Vk/BufferCreateInfo.h +++ b/src/Magnum/Vk/BufferCreateInfo.h @@ -77,7 +77,24 @@ enum class BufferUsage: UnsignedInt { IndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, /** @todo VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, 1.2 */ - /** @todo RT-related usages */ + + /** + * Suitable for a ray tracing shader binding table + * @requires_vk_feature @ref DeviceFeature::RayTracingPipeline + */ + ShaderBindingTable = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR, + + /** + * Suitable as a read-only input to an acceleration structure build + * @requires_vk_feature @ref DeviceFeature::AccelerationStructure + */ + AccelerationStructureBuildInputReadOnly = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR, + + /** + * Suitable for an acceleration structure storage space + * @requires_vk_feature @ref DeviceFeature::AccelerationStructure + */ + AccelerationStructureStorage = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR }; /** diff --git a/src/Magnum/Vk/Pipeline.h b/src/Magnum/Vk/Pipeline.h index d9f7eee68..76603a03c 100644 --- a/src/Magnum/Vk/Pipeline.h +++ b/src/Magnum/Vk/Pipeline.h @@ -132,10 +132,16 @@ enum class PipelineStage: UnsignedInt { /** Execution of host read/writes of device memory */ Host = VK_PIPELINE_STAGE_HOST_BIT, - /** Execution of commands related to an acceleration structure */ + /** + * Execution of commands related to an acceleration structure + * @requires_vk_feature @ref DeviceFeature::AccelerationStructure + */ AccelerationStructureBuild = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, - /** Execution of ray tracing shaders */ + /** + * Execution of ray tracing shaders + * @requires_vk_feature @ref DeviceFeature::RayTracingPipeline + */ RayTracingShader = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, /** @@ -350,6 +356,7 @@ enum class Access: UnsignedInt { * @ref PipelineStage::TessellationEvaluationShader "TessellationEvaluationShader", * @ref PipelineStage::ComputeShader "ComputeShader" and * @ref PipelineStage::RayTracingShader "RayTracingShader". + * @requires_vk_feature @ref DeviceFeature::AccelerationStructure */ AccelerationStructureRead = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, @@ -358,6 +365,7 @@ enum class Access: UnsignedInt { * part of a build or copy command. * * Valid for @ref PipelineStage::AccelerationStructureBuild. + * @requires_vk_feature @ref DeviceFeature::AccelerationStructure */ AccelerationStructureWrite = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR };