Documentation
¶
Index ¶
Constants ¶
const ( // ExtensionName is "VK_KHR_device_group_creation" // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_device_group_creation.html ExtensionName string = C.VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME // MaxDeviceGroupSize is the length of a PhysicalDevice handle array // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_MAX_DEVICE_GROUP_SIZE_KHR.html MaxDeviceGroupSize int = C.VK_MAX_DEVICE_GROUP_SIZE_KHR // MemoryHeapMultiInstance specifies that ina logical Device representing more than one // PhysicalDevice, there is a per-PhysicalDevice instance of the heap memory // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryHeapFlagBits.html MemoryHeapMultiInstance core1_0.MemoryHeapFlags = C.VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DeviceGroupDeviceCreateInfo ¶
type DeviceGroupDeviceCreateInfo struct {
// PhysicalDevices is a slice of PhysicalDevice objects belonging to the same Device group
PhysicalDevices []core1_0.PhysicalDevice
common.NextOptions
}
DeviceGroupDeviceCreateInfo creates a logical Device from multiple PhysicalDevice objects
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupDeviceCreateInfo.html
type Extension ¶
type Extension interface {
// EnumeratePhysicalDeviceGroups enumerates groups of PhysicalDevice objects that can be used to
// create a single logical Device
//
// instance - The Instance to enumerate device groups for
//
// outDataFactory - This method can be provided to allocate each PhysicalDeviceGroupProperties object
// that is returned, along with any chained OutData structures. It can also be left nil, in which case
// PhysicalDeviceGroupProperties will be allocated with no chained structures.
//
// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkEnumeratePhysicalDeviceGroups.html
EnumeratePhysicalDeviceGroups(instance core1_0.Instance, outDataFactory func() *PhysicalDeviceGroupProperties) ([]*PhysicalDeviceGroupProperties, common.VkResult, error)
}
Extension contains all the commands for the khr_device_group_creation extension
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_device_group_creation.html
type PhysicalDeviceGroupProperties ¶
type PhysicalDeviceGroupProperties struct {
// PhysicalDevices is a slice of PhysicalDevice objects that represent all PhysicalDevice
// objects in the group
PhysicalDevices []core1_0.PhysicalDevice
// SubsetAllocation specifies whether logical Device objects created from the group support
// allocating DeviceMemory on a subset of Device objects, via MemoryAllocateFlagsInfo
SubsetAllocation bool
common.NextOutData
}
PhysicalDeviceGroupProperties specifies PhysicalDevice group properties
func (*PhysicalDeviceGroupProperties) PopulateHeader ¶
func (*PhysicalDeviceGroupProperties) 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 CreateExtensionFromDriver ¶
func CreateExtensionFromDriver(driver khr_device_group_creation_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 CreateExtensionFromInstance ¶
func CreateExtensionFromInstance(instance core1_0.Instance) *VulkanExtension
CreateExtensionFromInstance produces an Extension object from an Instance with khr_device_group_creation loaded
func (*VulkanExtension) EnumeratePhysicalDeviceGroups ¶
func (e *VulkanExtension) EnumeratePhysicalDeviceGroups(instance core1_0.Instance, outDataFactory func() *PhysicalDeviceGroupProperties) ([]*PhysicalDeviceGroupProperties, common.VkResult, error)