Package org.lwjgl.vulkan
Class KHRDeviceGroupCreation
- java.lang.Object
-
- org.lwjgl.vulkan.KHRDeviceGroupCreation
-
public class KHRDeviceGroupCreation extends java.lang.Object
This extension provides instance-level commands to enumerate groups of physical devices, and to create a logical device from a subset of one of those groups. Such a logical device can then be used with new features in theVK_KHR_device_group
extension.Promotion to Vulkan 1.1
All functionality in this extension is included in core Vulkan 1.1, with the KHR suffix omitted. The original type, enum and command names are still available as aliases of the core functionality.
Examples
VkDeviceCreateInfo devCreateInfo = { VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO }; // (not shown) fill out devCreateInfo as usual. uint32_t deviceGroupCount = 0; VkPhysicalDeviceGroupPropertiesKHR *props = NULL; // Query the number of device groups vkEnumeratePhysicalDeviceGroupsKHR(g_vkInstance, &deviceGroupCount, NULL); // Allocate and initialize structures to query the device groups props = (VkPhysicalDeviceGroupPropertiesKHR *)malloc(deviceGroupCount*sizeof(VkPhysicalDeviceGroupPropertiesKHR)); for (i = 0; i < deviceGroupCount; ++i) { props[i].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR; props[i].pNext = NULL; } vkEnumeratePhysicalDeviceGroupsKHR(g_vkInstance, &deviceGroupCount, props); // If the first device group has more than one physical device. create // a logical device using all of the physical devices. VkDeviceGroupDeviceCreateInfoKHR deviceGroupInfo = { VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR }; if (props[0].physicalDeviceCount > 1) { deviceGroupInfo.physicalDeviceCount = props[0].physicalDeviceCount; deviceGroupInfo.pPhysicalDevices = props[0].physicalDevices; devCreateInfo.pNext = &deviceGroupInfo; } vkCreateDevice(props[0].physicalDevices[0], &devCreateInfo, NULL, &g_vkDevice); free(props);
- Name String
VK_KHR_device_group_creation
- Extension Type
- Instance extension
- Registered Extension Number
- 71
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Deprecation state
- Promoted to Vulkan 1.1
- Contact
- Jeff Bolz jeffbolznv
- Last Modified Date
- 2016-10-19
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- Promoted to Vulkan 1.1 Core
- Contributors
- Jeff Bolz, NVIDIA
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME
The extension name.static int
VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION
The extension specification version.static int
VK_MAX_DEVICE_GROUP_SIZE_KHR
VK_MAX_DEVICE_GROUP_SIZE_KHRstatic int
VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
ExtendsVkMemoryHeapFlagBits
.static int
VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHRExtendsVkStructureType
.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
nvkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance, long pPhysicalDeviceGroupCount, long pPhysicalDeviceGroupProperties)
Unsafe version of:EnumeratePhysicalDeviceGroupsKHR
static int
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance, int[] pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties.Buffer pPhysicalDeviceGroupProperties)
Array version of:EnumeratePhysicalDeviceGroupsKHR
static int
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance, java.nio.IntBuffer pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties.Buffer pPhysicalDeviceGroupProperties)
-
-
-
Field Detail
-
VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION
The extension specification version.
-
VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR
ExtendsVkStructureType
.Enum values:
-
VK_MAX_DEVICE_GROUP_SIZE_KHR
VK_MAX_DEVICE_GROUP_SIZE_KHR
-
VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
ExtendsVkMemoryHeapFlagBits
.
-
-
Method Detail
-
nvkEnumeratePhysicalDeviceGroupsKHR
public static int nvkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance, long pPhysicalDeviceGroupCount, long pPhysicalDeviceGroupProperties)
Unsafe version of:EnumeratePhysicalDeviceGroupsKHR
- Parameters:
pPhysicalDeviceGroupCount
- a pointer to an integer related to the number of device groups available or queried, as described below.
-
vkEnumeratePhysicalDeviceGroupsKHR
public static int vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance, java.nio.IntBuffer pPhysicalDeviceGroupCount, @Nullable VkPhysicalDeviceGroupProperties.Buffer pPhysicalDeviceGroupProperties)
- Parameters:
instance
- a handle to a Vulkan instance previously created withCreateInstance
.pPhysicalDeviceGroupCount
- a pointer to an integer related to the number of device groups available or queried, as described below.pPhysicalDeviceGroupProperties
- eitherNULL
or a pointer to an array ofVkPhysicalDeviceGroupProperties
structures.
-
vkEnumeratePhysicalDeviceGroupsKHR
public static int vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance, int[] pPhysicalDeviceGroupCount, @Nullable VkPhysicalDeviceGroupProperties.Buffer pPhysicalDeviceGroupProperties)
Array version of:EnumeratePhysicalDeviceGroupsKHR
-
-