Documentation ¶
Index ¶
- Constants
- type BufferDeviceAddressInfo
- type BufferOpaqueCaptureAddressCreateInfo
- type DeviceMemoryOpaqueCaptureAddressInfo
- type Extension
- type MemoryOpaqueCaptureAddressAllocateInfo
- type PhysicalDeviceBufferDeviceAddressFeatures
- func (o PhysicalDeviceBufferDeviceAddressFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *PhysicalDeviceBufferDeviceAddressFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *PhysicalDeviceBufferDeviceAddressFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)
- type VulkanExtension
- func (e *VulkanExtension) GetBufferDeviceAddress(device core1_0.Device, o BufferDeviceAddressInfo) (uint64, error)
- func (e *VulkanExtension) GetBufferOpaqueCaptureAddress(device core1_0.Device, o BufferDeviceAddressInfo) (uint64, error)
- func (e *VulkanExtension) GetDeviceMemoryOpaqueCaptureAddress(device core1_0.Device, o DeviceMemoryOpaqueCaptureAddressInfo) (uint64, error)
Constants ¶
const ( // ExtensionName is "VK_KHR_buffer_device_address" // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_buffer_device_address.html ExtensionName string = C.VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME // BufferCreateDeviceAddressCaptureReplay specifies that the Buffer object's address can // be saved and reused on a subsequent run (e.g. for trace capture and replay) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferCreateFlagBits.html BufferCreateDeviceAddressCaptureReplay core1_0.BufferCreateFlags = C.VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR // BufferUsageShaderDeviceAddress specifies that the Buffer can be used to retrieve a // Buffer device address via Device.GetBufferDeviceAddress and use that address to // access the Buffer object's memory from a shader // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html BufferUsageShaderDeviceAddress core1_0.BufferUsageFlags = C.VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR // MemoryAllocateDeviceAddress specifies that the memory can be attached to a Buffer object // created with BufferUsageShaderDeviceAddress set in Usage, and that the DeviceMemory object // can be used to retrieve an opaque address via Device.GetDeviceMemoryOpaqueCaptureAddress // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagBits.html MemoryAllocateDeviceAddress core1_1.MemoryAllocateFlags = C.VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR // MemoryAllocateDeviceAddressCaptureReplay specifies that the memory's address can be saved // and reused on a subsequent run (e.g. for trace capture and replay) // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagBits.html MemoryAllocateDeviceAddressCaptureReplay core1_1.MemoryAllocateFlags = C.VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR // VkErrorInvalidOpaqueCaptureAddress indicates a Buffer creation or memory allocation failed // because the requested address is not available // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VkErrorInvalidOpaqueCaptureAddress common.VkResult = C.VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BufferDeviceAddressInfo ¶
type BufferDeviceAddressInfo struct { // Buffer specifies the Buffer whose address is being queried Buffer core1_0.Buffer common.NextOptions }
BufferDeviceAddressInfo specifies the Buffer to query an address for
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferDeviceAddressInfo.html
type BufferOpaqueCaptureAddressCreateInfo ¶
type BufferOpaqueCaptureAddressCreateInfo struct { // OpaqueCaptureAddress is the opaque capture address requested for the Buffer OpaqueCaptureAddress uint64 common.NextOptions }
BufferOpaqueCaptureAddressCreateInfo requests a specific address for a Buffer
type DeviceMemoryOpaqueCaptureAddressInfo ¶
type DeviceMemoryOpaqueCaptureAddressInfo struct { // Memory specifies the DeviceMemory whose address is being queried Memory core1_0.DeviceMemory common.NextOptions }
DeviceMemoryOpaqueCaptureAddressInfo specifies the DeviceMemory object to query an address for
type Extension ¶
type Extension interface { // GetBufferDeviceAddress queries an address of a Buffer // // device - The Device that owns the Buffer // // o - Specifies the Buffer to retrieve an address for // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetBufferDeviceAddress.html GetBufferDeviceAddress(device core1_0.Device, o BufferDeviceAddressInfo) (uint64, error) // GetBufferOpaqueCaptureAddress queries an opaque capture address of a Buffer // // device - The Device that owns the Buffer // // o - Specifies the Buffer to retrieve an address for // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetBufferOpaqueCaptureAddress.html GetBufferOpaqueCaptureAddress(device core1_0.Device, o BufferDeviceAddressInfo) (uint64, error) // GetDeviceMemoryOpaqueCaptureAddress queries an opaque capture address of a DeviceMemory object // // device - The Device that owns the DeviceMemory // // o - Specifies the DeviceMemory object to retrieve an address for // // https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetDeviceMemoryOpaqueCaptureAddress.html GetDeviceMemoryOpaqueCaptureAddress(device core1_0.Device, o DeviceMemoryOpaqueCaptureAddressInfo) (uint64, error) }
Extension contains all the commands for the khr_buffer_device_address extension
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_buffer_device_address.html
type MemoryOpaqueCaptureAddressAllocateInfo ¶
type MemoryOpaqueCaptureAddressAllocateInfo struct { // OpaqueCaptureAddress is the opaque capture address requested for the memory allocation OpaqueCaptureAddress uint64 common.NextOptions }
MemoryOpaqueCaptureAddressAllocateInfo requests a specific address for a memory allocation
type PhysicalDeviceBufferDeviceAddressFeatures ¶
type PhysicalDeviceBufferDeviceAddressFeatures struct { // BufferDeviceAddress indicates that the implementation supports accessing Buffer memory // in shaders as storage Buffer objects via an address queried from Device.GetBufferDeviceAddress BufferDeviceAddress bool // BufferDeviceAddressCaptureReplay indicates that the implementation supports saving and // reusing Buffer and Device addresses, e.g. for trace capture and replay BufferDeviceAddressCaptureReplay bool // BufferDeviceAddressMultiDevice indicates that the implementation supports the // BufferDeviceAddress, RayTracingPipeline, and RayQuery features for logical Device objects // created with multiple PhysicalDevice objects BufferDeviceAddressMultiDevice bool common.NextOptions common.NextOutData }
PhysicalDeviceBufferDeviceAddressFeatures describes Buffer address features that can be supported by an implementation
func (PhysicalDeviceBufferDeviceAddressFeatures) PopulateCPointer ¶
func (*PhysicalDeviceBufferDeviceAddressFeatures) PopulateHeader ¶
func (*PhysicalDeviceBufferDeviceAddressFeatures) PopulateOutData ¶
type VulkanExtension ¶
type VulkanExtension struct {
// contains filtered or unexported fields
}
VulkanExtension is an implementation of the Extension interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.
func CreateExtensionFromDevice ¶
func CreateExtensionFromDevice(device core1_0.Device) *VulkanExtension
CreateExtensionFromDevice produces an Extension object from a Device with khr_buffer_device_address loaded
func CreateExtensionFromDriver ¶
func CreateExtensionFromDriver(driver khr_buffer_device_address_driver.Driver) *VulkanExtension
CreateExtensionFromDriver generates an Extension from a driver.Driver object- this is usually used in tests to build an Extension from mock drivers
func (*VulkanExtension) GetBufferDeviceAddress ¶
func (e *VulkanExtension) GetBufferDeviceAddress(device core1_0.Device, o BufferDeviceAddressInfo) (uint64, error)
func (*VulkanExtension) GetBufferOpaqueCaptureAddress ¶
func (e *VulkanExtension) GetBufferOpaqueCaptureAddress(device core1_0.Device, o BufferDeviceAddressInfo) (uint64, error)
func (*VulkanExtension) GetDeviceMemoryOpaqueCaptureAddress ¶
func (e *VulkanExtension) GetDeviceMemoryOpaqueCaptureAddress(device core1_0.Device, o DeviceMemoryOpaqueCaptureAddressInfo) (uint64, error)