khr_acceleration_structure

package
v3.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

Variables

This section is empty.

Functions

This section is empty.

Types

type AccelerationStructure

type AccelerationStructure struct {
	// contains filtered or unexported fields
}

func (AccelerationStructure) APIVersion

func (s AccelerationStructure) APIVersion() common.APIVersion

func (AccelerationStructure) DeviceHandle

func (s AccelerationStructure) DeviceHandle() loader.VkDevice

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
}

func (AccelerationStructureBuildGeometryInfo) PopulateCPointer

func (o AccelerationStructureBuildGeometryInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type AccelerationStructureBuildRangeInfo

type AccelerationStructureBuildRangeInfo struct {
	PrimitiveCount  int
	PrimitiveOffset int
	FirstVertex     int
	TransformOffset int
}

func (AccelerationStructureBuildRangeInfo) PopulateCPointer

func (i AccelerationStructureBuildRangeInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer) (unsafe.Pointer, error)

type AccelerationStructureBuildSizesInfo

type AccelerationStructureBuildSizesInfo struct {
	AccelerationStructureSize int
	UpdateScratchSize         int
	BuildScratchSize          int

	common.NextOutData
}

func (*AccelerationStructureBuildSizesInfo) PopulateHeader

func (o *AccelerationStructureBuildSizesInfo) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*AccelerationStructureBuildSizesInfo) PopulateOutData

func (o *AccelerationStructureBuildSizesInfo) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

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

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 (AccelerationStructureCompatibility) String

type AccelerationStructureCreateFlags

type AccelerationStructureCreateFlags int32

AccelerationStructureCreateFlags specifies additional creation parameters for acceleration structure

https://docs.vulkan.org/refpages/latest/refpages/source/VkAccelerationStructureCreateFlagBitsKHR.html

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

type AccelerationStructureCreateInfo

type AccelerationStructureCreateInfo struct {
	CreateFlags   AccelerationStructureCreateFlags
	Buffer        core1_0.Buffer
	Offset        int
	Size          int
	Type          AccelerationStructureType
	DeviceAddress uint64

	common.NextOptions
}

func (AccelerationStructureCreateInfo) PopulateCPointer

func (o AccelerationStructureCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type AccelerationStructureDeviceAddressInfo

type AccelerationStructureDeviceAddressInfo struct {
	AccelerationStructure AccelerationStructure

	common.NextOptions
}

func (AccelerationStructureDeviceAddressInfo) PopulateCPointer

func (o AccelerationStructureDeviceAddressInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type AccelerationStructureGeometry

type AccelerationStructureGeometry struct {
	Type     GeometryType
	Flags    GeometryFlags
	Geometry Geometry

	common.NextOptions
}

func (AccelerationStructureGeometry) PopulateCPointer

func (g AccelerationStructureGeometry) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

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
}

func (AccelerationStructureVersionInfo) PopulateCPointer

func (o AccelerationStructureVersionInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

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

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

type CopyAccelerationStructureInfo

type CopyAccelerationStructureInfo struct {
	Src  AccelerationStructure
	Dst  AccelerationStructure
	Mode CopyAccelerationStructureMode

	common.NextOptions
}

func (CopyAccelerationStructureInfo) PopulateCPointer

func (o CopyAccelerationStructureInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

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

type CopyAccelerationStructureToMemoryInfo

type CopyAccelerationStructureToMemoryInfo struct {
	Src  AccelerationStructure
	Dst  DeviceOrHostAddressConst
	Mode CopyAccelerationStructureMode

	common.NextOptions
}

func (CopyAccelerationStructureToMemoryInfo) PopulateCPointer

func (o CopyAccelerationStructureToMemoryInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type CopyMemoryToAccelerationStructureInfo

type CopyMemoryToAccelerationStructureInfo struct {
	Src  DeviceOrHostAddressConst
	Dst  AccelerationStructure
	Mode CopyAccelerationStructureMode

	common.NextOptions
}

func (CopyMemoryToAccelerationStructureInfo) PopulateCPointer

func (o CopyMemoryToAccelerationStructureInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type DeviceAddressConst

type DeviceAddressConst struct {
	DeviceAddress uint64
}

func (DeviceAddressConst) PopulateAddressUnion

func (a DeviceAddressConst) PopulateAddressUnion(v unsafe.Pointer)

type DeviceOrHostAddressConst

type DeviceOrHostAddressConst interface {
	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 Geometry

type Geometry interface {
	common.Options
	IsGeometryType()
}

type GeometryAABBData

type GeometryAABBData struct {
	Data   DeviceOrHostAddressConst
	Stride int

	common.NextOptions
}

func (GeometryAABBData) IsGeometryType

func (a GeometryAABBData) IsGeometryType()

func (GeometryAABBData) PopulateCPointer

func (a GeometryAABBData) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

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()

func (GeometryInstancesData) PopulateCPointer

func (d GeometryInstancesData) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

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()

func (GeometryTrianglesData) PopulateCPointer

func (d GeometryTrianglesData) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

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

type HostAddressConst struct {
	HostAddress unsafe.Pointer
}

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 (o PhysicalDeviceAccelerationStructureFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceAccelerationStructureFeatures) PopulateHeader

func (o *PhysicalDeviceAccelerationStructureFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceAccelerationStructureFeatures) PopulateOutData

func (o *PhysicalDeviceAccelerationStructureFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

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 (o *PhysicalDeviceAccelerationStructureProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceAccelerationStructureProperties) PopulateOutData

func (o *PhysicalDeviceAccelerationStructureProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

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 (*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 (*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 (*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

func (e *VulkanExtensionDriver) WriteAccelerationStructuresProperties(accelerationStructures []AccelerationStructure,
	queryType core1_0.QueryType,
	dataSize int,
	data unsafe.Pointer,
	stride int,
) (common.VkResult, error)

type WriteDescriptorSetAccelerationStructure

type WriteDescriptorSetAccelerationStructure struct {
	AccelerationStructures []AccelerationStructure

	common.NextOptions
}

func (WriteDescriptorSetAccelerationStructure) PopulateCPointer

func (o WriteDescriptorSetAccelerationStructure) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

Directories

Path Synopsis
Package mock_acceleration_structure is a generated GoMock package.
Package mock_acceleration_structure is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL