vulkan_lib/vulkan-sys/src/functions/khr/acceleration_structure.rs

153 lines
5 KiB
Rust
Raw Normal View History

2023-01-14 12:03:01 +00:00
use crate::prelude::*;
use library_loader::load_function_ptrs;
use std::os::raw::c_void;
load_function_ptrs!(AccelerationStructureFunctions, {
vkBuildAccelerationStructuresKHR(
device: VkDevice,
deferredOperation: VkDeferredOperationKHR,
infoCount: u32,
pInfos: *const VkAccelerationStructureBuildGeometryInfoKHR,
ppBuildRangeInfos: *const *const VkAccelerationStructureBuildRangeInfoKHR
) -> VkResult,
vkCmdBuildAccelerationStructuresIndirectKHR(
commandBuffer: VkCommandBuffer,
infoCount: u32,
pInfo: *const VkAccelerationStructureBuildGeometryInfoKHR,
pIndirectDeviceAddresses: *const VkDeviceAddress,
pIndirectStrides: *const u32,
ppMaxPrimitiveCounts: *const *const u32
) -> (),
vkCmdBuildAccelerationStructuresKHR(
commandBuffer: VkCommandBuffer,
infoCount: u32,
pInfos: *const VkAccelerationStructureBuildGeometryInfoKHR,
ppBuildRangeInfos: *const *const VkAccelerationStructureBuildRangeInfoKHR
) -> (),
vkCmdCopyAccelerationStructureKHR(
commandBuffer: VkCommandBuffer,
pInfo: *const VkCopyAccelerationStructureInfoKHR
) -> (),
vkCmdCopyAccelerationStructureToMemoryKHR(
commandBuffer: VkCommandBuffer,
pInfo: *const VkCopyAccelerationStructureToMemoryInfoKHR
) -> (),
vkCmdCopyMemoryToAccelerationStructureKHR(
commandBuffer: VkCommandBuffer,
pInfo: *const VkCopyMemoryToAccelerationStructureInfoKHR
) -> (),
vkCmdWriteAccelerationStructuresPropertiesKHR(
commandBuffer: VkCommandBuffer,
accelerationStructureCount: u32,
pAccelerationStructures: *const VkAccelerationStructureKHR,
queryType: VkQueryType,
queryPool: VkQueryPool,
firstQuery: u32
) -> (),
vkCopyAccelerationStructureKHR(
device: VkDevice,
deferredOperation: VkDeferredOperationKHR,
pInfo: *const VkCopyAccelerationStructureInfoKHR
) -> VkResult,
vkCopyAccelerationStructureToMemoryKHR(
device: VkDevice,
deferredOperation: VkDeferredOperationKHR,
pInfo: *const VkCopyAccelerationStructureToMemoryInfoKHR
) -> VkResult,
vkCopyMemoryToAccelerationStructureKHR(
device: VkDevice,
deferredOperation: VkDeferredOperationKHR,
pInfo: *const VkCopyMemoryToAccelerationStructureInfoKHR
) -> VkResult,
vkCreateAccelerationStructureKHR(
device: VkDevice,
pCreateInfo: *const VkAccelerationStructureCreateInfoKHR,
pAllocator: *const VkAllocationCallbacks,
pAccelerationStructure: *mut VkAccelerationStructureKHR
) -> VkResult,
vkDestroyAccelerationStructureKHR(
device: VkDevice,
accelerationStructure: VkAccelerationStructureKHR,
pAllocator: *const VkAllocationCallbacks
) -> (),
vkGetAccelerationStructureBuildSizesKHR(
device: VkDevice,
buildType: VkAccelerationStructureBuildTypeKHR,
pBuildInfo: *const VkAccelerationStructureBuildGeometryInfoKHR,
pMaxPrimitiveCounts: *const u32,
pSizeInfo: *mut VkAccelerationStructureBuildSizesInfoKHR
) -> (),
vkGetAccelerationStructureDeviceAddressKHR(
device: VkDevice,
pInfo: *const VkAccelerationStructureDeviceAddressInfoKHR
) -> VkDeviceAddress,
vkGetDeviceAccelerationStructureCompatibilityKHR(
device: VkDevice,
pVersionInfo: *const VkAccelerationStructureVersionInfoKHR,
pCompatibility: *mut VkAccelerationStructureCompatibilityKHR
) -> (),
vkWriteAccelerationStructuresPropertiesKHR(
device: VkDevice,
accelerationStructureCount: u32,
pAccelerationStructures: *const VkAccelerationStructureKHR,
queryType: VkQueryType,
dataSize: isize,
pData: *mut c_void,
stride: isize
) -> VkResult,
});
impl AccelerationStructureFunctions {
pub fn new(instance_functions: &InstanceFunctions, device: VkDevice) -> Self {
Self::load(|name| unsafe {
instance_functions.vkGetDeviceProcAddr(device, name.as_ptr()) as *const std::ffi::c_void
})
}
}
// vkBindAccelerationStructureMemoryKHR(
// device: VkDevice,
// bindInfoCount: u32,
// pBindInfos: *const VkBindAccelerationStructureMemoryInfoKHR
// ) -> VkResult,
// vkCreateRayTracingPipelinesKHR(
// device: VkDevice,
// pipelineCache: VkPipelineCache,
// createInfoCount: u32,
// pCreateInfos: *const VkRayTracingPipelineCreateInfoKHR,
// pAllocator: *const VkAllocationCallbacks,
// pPipelines: *mut VkPipeline
// ) -> VkResult,
// vkGetAccelerationStructureMemoryRequirementsKHR(
// device: VkDevice,
// pInfo: *const VkAccelerationStructureMemoryRequirementsInfoKHR,
// pMemoryRequirements: *mut VkMemoryRequirements2
// ) -> (),
// vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
// device: VkDevice,
// pipeline: VkPipeline,
// firstGroup: u32,
// groupCount: u32,
// dataSize: isize,
// pData: *mut c_void
// ) -> VkResult,