Documentation
¶
Index ¶
- Constants
- type AccelerationStructure
- type AccelerationStructureBuildGeometryInfo
- type AccelerationStructureBuildRangeInfo
- type AccelerationStructureBuildSizesInfo
- type AccelerationStructureBuildType
- type AccelerationStructureCompatibility
- type AccelerationStructureCreateFlags
- type AccelerationStructureCreateInfo
- type AccelerationStructureDeviceAddressInfo
- type AccelerationStructureGeometry
- type AccelerationStructureType
- type AccelerationStructureVersionInfo
- type BuildAccelerationStructureFlags
- type BuildAccelerationStructureMode
- type CopyAccelerationStructureInfo
- type CopyAccelerationStructureMode
- type CopyAccelerationStructureToMemoryInfo
- type CopyMemoryToAccelerationStructureInfo
- type DeviceAddressConst
- type DeviceOrHostAddressConst
- type ExtensionDriver
- type Geometry
- type GeometryAABBData
- type GeometryFlags
- type GeometryInstancesData
- type GeometryTrianglesData
- type GeometryType
- type HostAddressConst
- type PhysicalDeviceAccelerationStructureFeatures
- func (o PhysicalDeviceAccelerationStructureFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *PhysicalDeviceAccelerationStructureFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *PhysicalDeviceAccelerationStructureFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)
- type PhysicalDeviceAccelerationStructureProperties
- func (o *PhysicalDeviceAccelerationStructureProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *PhysicalDeviceAccelerationStructureProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)
- type VulkanExtensionDriver
- func (e *VulkanExtensionDriver) BuildAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation, ...) (common.VkResult, error)
- func (e *VulkanExtensionDriver) CmdBuildAccelerationStructures(commandBuffer core1_0.CommandBuffer, ...)
- func (e *VulkanExtensionDriver) CmdBuildAccelerationStructuresIndirect(commandBuffer core1_0.CommandBuffer, ...)
- func (e *VulkanExtensionDriver) CmdCopyAccelerationStructure(commandBuffer core1_0.CommandBuffer, info CopyAccelerationStructureInfo)
- func (e *VulkanExtensionDriver) CmdCopyAccelerationStructureToMemory(commandBuffer core1_0.CommandBuffer, ...)
- func (e *VulkanExtensionDriver) CmdCopyMemoryToAccelerationStructure(commandBuffer core1_0.CommandBuffer, ...)
- func (e *VulkanExtensionDriver) CmdWriteAccelerationStructuresProperties(commandBuffer core1_0.CommandBuffer, ...)
- func (e *VulkanExtensionDriver) CopyAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation, ...) (common.VkResult, error)
- func (e *VulkanExtensionDriver) CopyAccelerationStructureToMemory(deferredOperation khr_deferred_host_operations.DeferredOperation, ...) (common.VkResult, error)
- func (e *VulkanExtensionDriver) CopyMemoryToAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation, ...) (common.VkResult, error)
- func (e *VulkanExtensionDriver) CreateAccelerationStructure(createInfo AccelerationStructureCreateInfo, ...) (AccelerationStructure, common.VkResult, error)
- func (e *VulkanExtensionDriver) DestroyAccelerationStructure(accelerationStructure AccelerationStructure, ...)
- func (e *VulkanExtensionDriver) GetAccelerationStructureBuildSizes(buildType AccelerationStructureBuildType, ...)
- func (e *VulkanExtensionDriver) GetAccelerationStructureDeviceAddress(o AccelerationStructureDeviceAddressInfo) uint64
- func (e *VulkanExtensionDriver) GetDeviceAccelerationStructureCompatibility(o AccelerationStructureVersionInfo) AccelerationStructureCompatibility
- func (e *VulkanExtensionDriver) WriteAccelerationStructuresProperties(accelerationStructures []AccelerationStructure, queryType core1_0.QueryType, ...) (common.VkResult, error)
- type WriteDescriptorSetAccelerationStructure
Constants ¶
const ( // ExtensionName is "VK_KHR_acceleration_structure" // // https://docs.vulkan.org/refpages/latest/refpages/source/VK_KHR_acceleration_structure.html ExtensionName string = C.VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccelerationStructure ¶
type AccelerationStructure struct {
// contains filtered or unexported fields
}
func InternalAccelerationStructure ¶
func InternalAccelerationStructure(device loader.VkDevice, handle khr_acceleration_structure_loader.VkAccelerationStructureKHR, version common.APIVersion) AccelerationStructure
func (AccelerationStructure) APIVersion ¶
func (s AccelerationStructure) APIVersion() common.APIVersion
func (AccelerationStructure) DeviceHandle ¶
func (s AccelerationStructure) DeviceHandle() loader.VkDevice
func (AccelerationStructure) Handle ¶
func (s AccelerationStructure) Handle() khr_acceleration_structure_loader.VkAccelerationStructureKHR
func (AccelerationStructure) Initialized ¶
func (s AccelerationStructure) Initialized() bool
type AccelerationStructureBuildGeometryInfo ¶
type AccelerationStructureBuildGeometryInfo struct {
Type AccelerationStructureType
Flags BuildAccelerationStructureFlags
Mode BuildAccelerationStructureMode
SrcAccelerationStructure AccelerationStructure
DstAccelerationStructure AccelerationStructure
Geometries []AccelerationStructureGeometry
ScratchData DeviceOrHostAddressConst
common.NextOptions
}
type AccelerationStructureBuildRangeInfo ¶
type AccelerationStructureBuildRangeInfo struct {
PrimitiveCount int
PrimitiveOffset int
FirstVertex int
TransformOffset int
}
func (AccelerationStructureBuildRangeInfo) PopulateCPointer ¶
type AccelerationStructureBuildSizesInfo ¶
type AccelerationStructureBuildSizesInfo struct {
AccelerationStructureSize int
UpdateScratchSize int
BuildScratchSize int
common.NextOutData
}
func (*AccelerationStructureBuildSizesInfo) PopulateHeader ¶
func (*AccelerationStructureBuildSizesInfo) PopulateOutData ¶
type AccelerationStructureBuildType ¶
type AccelerationStructureBuildType int32
AccelerationStructureBuildType represents the different build types for acceleration structures
https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureBuildTypeKHR.html
const ( // AccelerationStructureBuildTypeHost requests the memory requirement for operations performed by the host. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureBuildTypeKHR.html AccelerationStructureBuildTypeHost AccelerationStructureBuildType = C.VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR // AccelerationStructureBuildTypeDevice requests the memory requirement for operations performed by the // device. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureBuildTypeKHR.html AccelerationStructureBuildTypeDevice AccelerationStructureBuildType = C.VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR // AccelerationStructureBuildTypeHostOrDevice requests the memory requirement for operations performed by // either the host, or the device. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureBuildTypeKHR.html AccelerationStructureBuildTypeHostOrDevice AccelerationStructureBuildType = C.VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR )
func (AccelerationStructureBuildType) Register ¶
func (e AccelerationStructureBuildType) Register(str string)
func (AccelerationStructureBuildType) String ¶
func (e AccelerationStructureBuildType) String() string
type AccelerationStructureCompatibility ¶
type AccelerationStructureCompatibility int32
AccelerationStructureCompatibility represents whether an acceleration structure is compatible with a device
https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureCompatibilityKHR.html
const ( // AccelerationStructureCompatibilityCompatible indicates the pVersionData version acceleration structure // is compatible with device. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureCompatibilityKHR.html AccelerationStructureCompatibilityCompatible AccelerationStructureCompatibility = C.VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR // AccelerationStructureCompatibilityIncompatible indicates the pVersionData version acceleration // structure is not compatible with device. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureCompatibilityKHR.html AccelerationStructureCompatibilityIncompatible AccelerationStructureCompatibility = C.VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR )
func (AccelerationStructureCompatibility) Register ¶
func (e AccelerationStructureCompatibility) Register(str string)
func (AccelerationStructureCompatibility) String ¶
func (e AccelerationStructureCompatibility) String() string
type AccelerationStructureCreateFlags ¶
type AccelerationStructureCreateFlags int32
AccelerationStructureCreateFlags specifies additional creation parameters for acceleration structure
const ( // AccelerationStructureCreateDeviceAddressCaptureReplay specifies that the acceleration structure’s // address can be saved and reused on a subsequent run. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureCreateFlagBitsKHR.html AccelerationStructureCreateDeviceAddressCaptureReplay AccelerationStructureCreateFlags = C.VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR )
func (AccelerationStructureCreateFlags) Register ¶
func (f AccelerationStructureCreateFlags) Register(str string)
func (AccelerationStructureCreateFlags) String ¶
func (f AccelerationStructureCreateFlags) String() string
type AccelerationStructureCreateInfo ¶
type AccelerationStructureCreateInfo struct {
CreateFlags AccelerationStructureCreateFlags
Buffer core1_0.Buffer
Offset int
Size int
Type AccelerationStructureType
DeviceAddress uint64
common.NextOptions
}
type AccelerationStructureDeviceAddressInfo ¶
type AccelerationStructureDeviceAddressInfo struct {
AccelerationStructure AccelerationStructure
common.NextOptions
}
type AccelerationStructureGeometry ¶
type AccelerationStructureGeometry struct {
Type GeometryType
Flags GeometryFlags
Geometry Geometry
common.NextOptions
}
type AccelerationStructureType ¶
type AccelerationStructureType int32
AccelerationStructureType specifies the type of an acceleration structure
https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureTypeKHR.html
const ( // AccelerationStructureTypeTopLevel is a top-level acceleration structure containing // instance data referring to bottom-level acceleration structures. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureTypeKHR.html AccelerationStructureTypeTopLevel AccelerationStructureType = C.VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR // AccelerationStructureTypeBottomLevel is a bottom-level acceleration structure // containing the AABBs or geometry to be intersected. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureTypeKHR.html AccelerationStructureTypeBottomLevel AccelerationStructureType = C.VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR // AccelerationStructureTypeGeneric is an acceleration structure whose type is determined // at build time used for special circumstances. In these cases, the acceleration // structure type is not known at creation time, but must be specified at build time as // either top or bottom. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureTypeKHR.html AccelerationStructureTypeGeneric AccelerationStructureType = C.VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR )
func (AccelerationStructureType) Register ¶
func (e AccelerationStructureType) Register(str string)
func (AccelerationStructureType) String ¶
func (e AccelerationStructureType) String() string
type AccelerationStructureVersionInfo ¶
type AccelerationStructureVersionInfo struct {
VersionData unsafe.Pointer
common.NextOptions
}
type BuildAccelerationStructureFlags ¶
type BuildAccelerationStructureFlags int32
BuildAccelerationStructureFlags specifies additional parameters for acceleration structure builds.
https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureFlagBitsKHR.html
const ( // BuildAccelerationStructureAllowUpdate specifies that the specified acceleration // structure can be updated with a mode of VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR // in VkAccelerationStructureBuildGeometryInfoKHR or an update of VK_TRUE in // vkCmdBuildAccelerationStructureNV . For sphere and LSS primitives, only positions and // radii may be updated, the provided index buffers and flags must remain unchanged from // the initial build. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureFlagBitsKHR.html BuildAccelerationStructureAllowUpdate BuildAccelerationStructureFlags = C.VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR // BuildAccelerationStructureAllowCompaction specifies that the specified acceleration structure can act as // the source for a copy acceleration structure command with mode of // VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR to produce a compacted acceleration structure. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureFlagBitsKHR.html BuildAccelerationStructureAllowCompaction BuildAccelerationStructureFlags = C.VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR // BuildAccelerationStructurePreferFastTrace specifies that the given acceleration structure build should // prioritize trace performance over build time. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureFlagBitsKHR.html BuildAccelerationStructurePreferFastTrace BuildAccelerationStructureFlags = C.VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR // BuildAccelerationStructurePreferFastBuild specifies that the given acceleration structure build should // prioritize build time over trace performance. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureFlagBitsKHR.html BuildAccelerationStructurePreferFastBuild BuildAccelerationStructureFlags = C.VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR // BuildAccelerationStructureLowMemory specifies that this acceleration structure should minimize the size // of the scratch memory and the final result acceleration structure, potentially at the expense of build // time or trace performance. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureFlagBitsKHR.html BuildAccelerationStructureLowMemory BuildAccelerationStructureFlags = C.VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR )
func (BuildAccelerationStructureFlags) Register ¶
func (f BuildAccelerationStructureFlags) Register(str string)
func (BuildAccelerationStructureFlags) String ¶
func (f BuildAccelerationStructureFlags) String() string
type BuildAccelerationStructureMode ¶
type BuildAccelerationStructureMode int32
BuildAccelerationStructureMode specifies the type of build operation to perform
https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureModeKHR.html
const ( // BuildAccelerationStructureModeBuild specifies that the destination acceleration structure will be built // using the specified geometries. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureModeKHR.html BuildAccelerationStructureModeBuild BuildAccelerationStructureMode = C.VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR // BuildAccelerationStructureModeUpdate specifies that the destination acceleration structure will be built // using data in a source acceleration structure, updated by the specified geometries. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkBuildAccelerationStructureModeKHR.html BuildAccelerationStructureModeUpdate BuildAccelerationStructureMode = C.VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR )
func (BuildAccelerationStructureMode) Register ¶
func (e BuildAccelerationStructureMode) Register(str string)
func (BuildAccelerationStructureMode) String ¶
func (e BuildAccelerationStructureMode) String() string
type CopyAccelerationStructureInfo ¶
type CopyAccelerationStructureInfo struct {
Src AccelerationStructure
Dst AccelerationStructure
Mode CopyAccelerationStructureMode
common.NextOptions
}
type CopyAccelerationStructureMode ¶
type CopyAccelerationStructureMode int32
CopyAccelerationStructureMode specifies additional operations to perform during the copy
https://docs.vulkan.org/refpages/latest/refpages/source/VkCopyAccelerationStructureModeKHR.html
const ( // CopyAccelerationStructureModeClone creates a direct copy of the acceleration structure specified in // src into the one specified by dst. The dst acceleration structure must have been created with the same // parameters as src. If src contains references to other acceleration structures, dst will reference the // same acceleration structures. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkCopyAccelerationStructureModeKHR.html CopyAccelerationStructureModeClone CopyAccelerationStructureMode = C.VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR // CopyAccelerationStructureModeCompact creates a more compact version of an acceleration structure src // into dst. The acceleration structure dst must have been created with a size at least as large as that // returned by vkCmdWriteAccelerationStructuresPropertiesNV , vkCmdWriteAccelerationStructuresPropertiesKHR, // or vkWriteAccelerationStructuresPropertiesKHR after the build of the acceleration structure specified by // src. If src contains references to other acceleration structures, dst will reference the same acceleration // structures. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkCopyAccelerationStructureModeKHR.html CopyAccelerationStructureModeCompact CopyAccelerationStructureMode = C.VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR // CopyAccelerationStructureModeSerialize serializes the acceleration structure to a semi-opaque format // which can be reloaded on a compatible implementation. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkCopyAccelerationStructureModeKHR.html CopyAccelerationStructureModeSerialize CopyAccelerationStructureMode = C.VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR // CopyAccelerationStructureModeDeserialize deserializes the semi-opaque serialization format in the buffer // to the acceleration structure. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkCopyAccelerationStructureModeKHR.html CopyAccelerationStructureModeDeserialize CopyAccelerationStructureMode = C.VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR )
func (CopyAccelerationStructureMode) Register ¶
func (e CopyAccelerationStructureMode) Register(str string)
func (CopyAccelerationStructureMode) String ¶
func (e CopyAccelerationStructureMode) String() string
type CopyAccelerationStructureToMemoryInfo ¶
type CopyAccelerationStructureToMemoryInfo struct {
Src AccelerationStructure
Dst DeviceOrHostAddressConst
Mode CopyAccelerationStructureMode
common.NextOptions
}
type CopyMemoryToAccelerationStructureInfo ¶
type CopyMemoryToAccelerationStructureInfo struct {
Src DeviceOrHostAddressConst
Dst AccelerationStructure
Mode CopyAccelerationStructureMode
common.NextOptions
}
type DeviceAddressConst ¶
type DeviceAddressConst struct {
DeviceAddress uint64
}
func (DeviceAddressConst) PopulateAddressUnion ¶
func (a DeviceAddressConst) PopulateAddressUnion(v unsafe.Pointer)
type ExtensionDriver ¶
type ExtensionDriver interface {
BuildAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation,
infos []AccelerationStructureBuildGeometryInfo,
rangeInfos [][]AccelerationStructureBuildRangeInfo,
) (common.VkResult, error)
CmdBuildAccelerationStructuresIndirect(commandBuffer core1_0.CommandBuffer,
infos []AccelerationStructureBuildGeometryInfo,
indirectDeviceAddresses []uint64,
strides []int,
maxPrimitiveCounts [][]int,
)
CmdBuildAccelerationStructures(commandBuffer core1_0.CommandBuffer,
infos []AccelerationStructureBuildGeometryInfo,
rangeInfos [][]AccelerationStructureBuildRangeInfo,
)
CmdCopyAccelerationStructure(commandBuffer core1_0.CommandBuffer,
info CopyAccelerationStructureInfo,
)
CmdCopyAccelerationStructureToMemory(commandBuffer core1_0.CommandBuffer,
info CopyAccelerationStructureToMemoryInfo,
)
CmdCopyMemoryToAccelerationStructure(commandBuffer core1_0.CommandBuffer,
info CopyMemoryToAccelerationStructureInfo,
)
CmdWriteAccelerationStructuresProperties(commandBuffer core1_0.CommandBuffer,
accelerationStructures []AccelerationStructure,
queryType core1_0.QueryType,
queryPool core1_0.QueryPool,
firstQuery int,
)
CopyAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation,
info CopyAccelerationStructureInfo,
) (common.VkResult, error)
CopyAccelerationStructureToMemory(deferredOperation khr_deferred_host_operations.DeferredOperation,
info CopyAccelerationStructureToMemoryInfo,
) (common.VkResult, error)
CopyMemoryToAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation,
info CopyMemoryToAccelerationStructureInfo,
) (common.VkResult, error)
CreateAccelerationStructure(createInfo AccelerationStructureCreateInfo,
allocator *loader.AllocationCallbacks,
) (AccelerationStructure, common.VkResult, error)
DestroyAccelerationStructure(accelerationStructure AccelerationStructure,
pAllocator *loader.AllocationCallbacks,
)
GetAccelerationStructureBuildSizes(buildType AccelerationStructureBuildType,
buildInfo AccelerationStructureBuildGeometryInfo,
maxPrimitiveCounts []int,
out *AccelerationStructureBuildSizesInfo)
GetAccelerationStructureDeviceAddress(o AccelerationStructureDeviceAddressInfo) uint64
GetDeviceAccelerationStructureCompatibility(o AccelerationStructureVersionInfo) AccelerationStructureCompatibility
WriteAccelerationStructuresProperties(accelerationStructures []AccelerationStructure,
queryType core1_0.QueryType,
dataSize int,
data unsafe.Pointer,
stride int,
) (common.VkResult, error)
}
func CreateExtensionDriverFromCoreDriver ¶
func CreateExtensionDriverFromCoreDriver(loader core1_0.DeviceDriver) ExtensionDriver
CreateExtensionDriverFromCoreDriver produces an ExtensionDriver object from a Device with khr_acceleration_structure loaded
type GeometryAABBData ¶
type GeometryAABBData struct {
Data DeviceOrHostAddressConst
Stride int
common.NextOptions
}
func (GeometryAABBData) IsGeometryType ¶
func (a GeometryAABBData) IsGeometryType()
type GeometryFlags ¶
type GeometryFlags int32
GeometryFlags specifies additional parameters for a geometry
https://docs.vulkan.org/refpages/latest/refpages/source/VkGeometryFlagBitsKHR.html
const ( // GeometryOpaque specifies that this geometry does not invoke the any-hit shaders even if present // in a hit group. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkGeometryFlagBitsKHR.html GeometryOpaque GeometryFlags = C.VK_GEOMETRY_OPAQUE_BIT_KHR // GeometryNoDuplicateAnyHitInvocation specifies that the implementation must only call the any-hit shader // a single time for each primitive in this geometry. If this bit is absent an implementation may invoke // the any-hit shader more than once for this geometry. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkGeometryFlagBitsKHR.html GeometryNoDuplicateAnyHitInvocation GeometryFlags = C.VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR )
func (GeometryFlags) Register ¶
func (f GeometryFlags) Register(str string)
func (GeometryFlags) String ¶
func (f GeometryFlags) String() string
type GeometryInstancesData ¶
type GeometryInstancesData struct {
ArrayOfPointers bool
Data DeviceOrHostAddressConst
common.NextOptions
}
func (GeometryInstancesData) IsGeometryType ¶
func (d GeometryInstancesData) IsGeometryType()
type GeometryTrianglesData ¶
type GeometryTrianglesData struct {
VertexFormat core1_0.Format
VertexData DeviceOrHostAddressConst
VertexStride int
MaxVertex int
IndexType core1_0.IndexType
IndexData DeviceOrHostAddressConst
TransformData DeviceOrHostAddressConst
common.NextOptions
}
func (GeometryTrianglesData) IsGeometryType ¶
func (d GeometryTrianglesData) IsGeometryType()
type GeometryType ¶
type GeometryType int32
GeometryType specifies which type of geometry is provided
https://docs.vulkan.org/refpages/latest/refpages/source/VkGeometryTypeKHR.html
const ( // GeometryTypeTriangles specifies a geometry type consisting of triangles. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkGeometryTypeKHR.html GeometryTypeTriangles GeometryType = C.VK_GEOMETRY_TYPE_TRIANGLES_KHR // GeometryTypeAABBs specifies a geometry type consisting of axis-aligned bounding boxes. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkGeometryTypeKHR.html GeometryTypeAABBs GeometryType = C.VK_GEOMETRY_TYPE_AABBS_KHR // GeometryTypeInstances specifies a geometry type consisting of acceleration structure instances. // // https://docs.vulkan.org/refpages/latest/refpages/source/VkGeometryTypeKHR.html GeometryTypeInstances GeometryType = C.VK_GEOMETRY_TYPE_INSTANCES_KHR )
func (GeometryType) Register ¶
func (e GeometryType) Register(str string)
func (GeometryType) String ¶
func (e GeometryType) String() string
type HostAddressConst ¶
func (HostAddressConst) PopulateAddressUnion ¶
func (a HostAddressConst) PopulateAddressUnion(v unsafe.Pointer)
type PhysicalDeviceAccelerationStructureFeatures ¶
type PhysicalDeviceAccelerationStructureFeatures struct {
AccelerationStructure bool
AccelerationStructureCaptureReplay bool
AccelerationStructureIndirectBuild bool
AccelerationStructureHostCommands bool
DescriptorBindingAccelerationStructureUpdateAfterBind bool
common.NextOptions
common.NextOutData
}
func (PhysicalDeviceAccelerationStructureFeatures) PopulateCPointer ¶
func (*PhysicalDeviceAccelerationStructureFeatures) PopulateHeader ¶
func (*PhysicalDeviceAccelerationStructureFeatures) PopulateOutData ¶
type PhysicalDeviceAccelerationStructureProperties ¶
type PhysicalDeviceAccelerationStructureProperties struct {
MaxGeometryCount int
MaxInstanceCount int
MaxPrimitiveCount int
MaxPerStageDescriptorAccelerationStructures int
MaxPerStageDescriptorUpdateAfterBindAccelerationStructures int
MaxDescriptorSetAccelerationStructures int
MaxDescriptorSetUpdateAfterBindAccelerationStructures int
MinAccelerationStructureScratchOffsetAlignment int
common.NextOutData
}
func (*PhysicalDeviceAccelerationStructureProperties) PopulateHeader ¶
func (*PhysicalDeviceAccelerationStructureProperties) PopulateOutData ¶
type VulkanExtensionDriver ¶
type VulkanExtensionDriver struct {
// contains filtered or unexported fields
}
func CreateExtensionDriverFromLoader ¶
func CreateExtensionDriverFromLoader(loader khr_acceleration_structure_loader.Loader, device core1_0.Device) *VulkanExtensionDriver
CreateExtensionDriverFromLoader generates an ExtensionDriver from a loader.Loader object- this is usually used in tests to build an ExtensionDriver from mock drivers
func (*VulkanExtensionDriver) BuildAccelerationStructure ¶
func (e *VulkanExtensionDriver) BuildAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation, infos []AccelerationStructureBuildGeometryInfo, rangeInfos [][]AccelerationStructureBuildRangeInfo, ) (common.VkResult, error)
func (*VulkanExtensionDriver) CmdBuildAccelerationStructures ¶
func (e *VulkanExtensionDriver) CmdBuildAccelerationStructures(commandBuffer core1_0.CommandBuffer, infos []AccelerationStructureBuildGeometryInfo, rangeInfos [][]AccelerationStructureBuildRangeInfo, )
func (*VulkanExtensionDriver) CmdBuildAccelerationStructuresIndirect ¶
func (e *VulkanExtensionDriver) CmdBuildAccelerationStructuresIndirect(commandBuffer core1_0.CommandBuffer, infos []AccelerationStructureBuildGeometryInfo, indirectDeviceAddresses []uint64, strides []int, maxPrimitiveCounts [][]int, )
func (*VulkanExtensionDriver) CmdCopyAccelerationStructure ¶
func (e *VulkanExtensionDriver) CmdCopyAccelerationStructure(commandBuffer core1_0.CommandBuffer, info CopyAccelerationStructureInfo, )
func (*VulkanExtensionDriver) CmdCopyAccelerationStructureToMemory ¶
func (e *VulkanExtensionDriver) CmdCopyAccelerationStructureToMemory(commandBuffer core1_0.CommandBuffer, info CopyAccelerationStructureToMemoryInfo, )
func (*VulkanExtensionDriver) CmdCopyMemoryToAccelerationStructure ¶
func (e *VulkanExtensionDriver) CmdCopyMemoryToAccelerationStructure(commandBuffer core1_0.CommandBuffer, info CopyMemoryToAccelerationStructureInfo, )
func (*VulkanExtensionDriver) CmdWriteAccelerationStructuresProperties ¶
func (e *VulkanExtensionDriver) CmdWriteAccelerationStructuresProperties(commandBuffer core1_0.CommandBuffer, accelerationStructures []AccelerationStructure, queryType core1_0.QueryType, queryPool core1_0.QueryPool, firstQuery int, )
func (*VulkanExtensionDriver) CopyAccelerationStructure ¶
func (e *VulkanExtensionDriver) CopyAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation, info CopyAccelerationStructureInfo, ) (common.VkResult, error)
func (*VulkanExtensionDriver) CopyAccelerationStructureToMemory ¶
func (e *VulkanExtensionDriver) CopyAccelerationStructureToMemory(deferredOperation khr_deferred_host_operations.DeferredOperation, info CopyAccelerationStructureToMemoryInfo, ) (common.VkResult, error)
func (*VulkanExtensionDriver) CopyMemoryToAccelerationStructure ¶
func (e *VulkanExtensionDriver) CopyMemoryToAccelerationStructure(deferredOperation khr_deferred_host_operations.DeferredOperation, info CopyMemoryToAccelerationStructureInfo, ) (common.VkResult, error)
func (*VulkanExtensionDriver) CreateAccelerationStructure ¶
func (e *VulkanExtensionDriver) CreateAccelerationStructure(createInfo AccelerationStructureCreateInfo, allocator *loader.AllocationCallbacks, ) (AccelerationStructure, common.VkResult, error)
func (*VulkanExtensionDriver) DestroyAccelerationStructure ¶
func (e *VulkanExtensionDriver) DestroyAccelerationStructure(accelerationStructure AccelerationStructure, pAllocator *loader.AllocationCallbacks, )
func (*VulkanExtensionDriver) GetAccelerationStructureBuildSizes ¶
func (e *VulkanExtensionDriver) GetAccelerationStructureBuildSizes(buildType AccelerationStructureBuildType, buildInfo AccelerationStructureBuildGeometryInfo, maxPrimitiveCounts []int, out *AccelerationStructureBuildSizesInfo)
func (*VulkanExtensionDriver) GetAccelerationStructureDeviceAddress ¶
func (e *VulkanExtensionDriver) GetAccelerationStructureDeviceAddress(o AccelerationStructureDeviceAddressInfo) uint64
func (*VulkanExtensionDriver) GetDeviceAccelerationStructureCompatibility ¶
func (e *VulkanExtensionDriver) GetDeviceAccelerationStructureCompatibility(o AccelerationStructureVersionInfo) AccelerationStructureCompatibility
func (*VulkanExtensionDriver) WriteAccelerationStructuresProperties ¶
type WriteDescriptorSetAccelerationStructure ¶
type WriteDescriptorSetAccelerationStructure struct {
AccelerationStructures []AccelerationStructure
common.NextOptions
}
Source Files
¶
- acceleration_structure.go
- address.go
- buildrange.go
- const.go
- extension.go
- extiface.go
- features_acceleration.go
- options_aabbs.go
- options_buildgeometry.go
- options_copy.go
- options_copymemory.go
- options_copytomemory.go
- options_create.go
- options_deviceaddress.go
- options_geometry.go
- options_instances.go
- options_triangles.go
- options_version.go
- options_writedescriptor.go
- outdata_buildsizes.go
- outdata_properties.go