public class KHRDeviceGroup
extends java.lang.Object
VK_KHR_device_group_creation extension. A device group can allocate memory across the subdevices, bind memory from one subdevice to a resource on another subdevice, record command buffers where some work executes on an arbitrary subset of the subdevices, and potentially present a swapchain image from one or more subdevices.
The following enums, types and commands are included as interactions with VK_KHR_swapchain:
STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHRSTRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHRSTRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHRSTRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHRSTRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHRSTRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHRSWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHRVkDeviceGroupPresentModeFlagBitsKHRVkDeviceGroupPresentCapabilitiesKHRVkImageSwapchainCreateInfoKHRVkBindImageMemorySwapchainInfoKHRVkAcquireNextImageInfoKHRVkDeviceGroupPresentInfoKHRVkDeviceGroupSwapchainCreateInfoKHRGetDeviceGroupPresentCapabilitiesKHRGetDeviceGroupSurfacePresentModesKHRGetPhysicalDevicePresentRectanglesKHRAcquireNextImage2KHRIf Vulkan 1.1 and VK_KHR_swapchain are supported, these are included by VK_KHR_swapchain.
The base 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.
TODO
VK_KHR_device_groupVK_KHR_device_group_creation| Modifier and Type | Method and Description |
|---|---|
static int |
nvkAcquireNextImage2KHR(org.lwjgl.vulkan.VkDevice device,
long pAcquireInfo,
long pImageIndex)
Unsafe version of:
AcquireNextImage2KHR |
static void |
nvkGetDeviceGroupPeerMemoryFeaturesKHR(org.lwjgl.vulkan.VkDevice device,
int heapIndex,
int localDeviceIndex,
int remoteDeviceIndex,
long pPeerMemoryFeatures)
Unsafe version of:
GetDeviceGroupPeerMemoryFeaturesKHR |
static int |
nvkGetDeviceGroupPresentCapabilitiesKHR(org.lwjgl.vulkan.VkDevice device,
long pDeviceGroupPresentCapabilities)
Unsafe version of:
GetDeviceGroupPresentCapabilitiesKHR |
static int |
nvkGetDeviceGroupSurfacePresentModesKHR(org.lwjgl.vulkan.VkDevice device,
long surface,
long pModes)
Unsafe version of:
GetDeviceGroupSurfacePresentModesKHR |
static int |
nvkGetPhysicalDevicePresentRectanglesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
long surface,
long pRectCount,
long pRects)
Unsafe version of:
GetPhysicalDevicePresentRectanglesKHR |
static int |
vkAcquireNextImage2KHR(org.lwjgl.vulkan.VkDevice device,
VkAcquireNextImageInfoKHR pAcquireInfo,
int[] pImageIndex)
Array version of:
AcquireNextImage2KHR |
static int |
vkAcquireNextImage2KHR(org.lwjgl.vulkan.VkDevice device,
VkAcquireNextImageInfoKHR pAcquireInfo,
java.nio.IntBuffer pImageIndex)
Retrieve the index of the next available presentable image.
|
static void |
vkCmdDispatchBaseKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer,
int baseGroupX,
int baseGroupY,
int baseGroupZ,
int groupCountX,
int groupCountY,
int groupCountZ)
See
CmdDispatchBase. |
static void |
vkCmdSetDeviceMaskKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer,
int deviceMask)
See
CmdSetDeviceMask. |
static void |
vkGetDeviceGroupPeerMemoryFeaturesKHR(org.lwjgl.vulkan.VkDevice device,
int heapIndex,
int localDeviceIndex,
int remoteDeviceIndex,
int[] pPeerMemoryFeatures)
Array version of:
GetDeviceGroupPeerMemoryFeaturesKHR |
static void |
vkGetDeviceGroupPeerMemoryFeaturesKHR(org.lwjgl.vulkan.VkDevice device,
int heapIndex,
int localDeviceIndex,
int remoteDeviceIndex,
java.nio.IntBuffer pPeerMemoryFeatures)
|
static int |
vkGetDeviceGroupPresentCapabilitiesKHR(org.lwjgl.vulkan.VkDevice device,
VkDeviceGroupPresentCapabilitiesKHR pDeviceGroupPresentCapabilities)
Query present capabilities from other physical devices.
|
static int |
vkGetDeviceGroupSurfacePresentModesKHR(org.lwjgl.vulkan.VkDevice device,
long surface,
int[] pModes)
Array version of:
GetDeviceGroupSurfacePresentModesKHR |
static int |
vkGetDeviceGroupSurfacePresentModesKHR(org.lwjgl.vulkan.VkDevice device,
long surface,
java.nio.IntBuffer pModes)
Query present capabilities for a surface.
|
static int |
vkGetPhysicalDevicePresentRectanglesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
long surface,
int[] pRectCount,
VkRect2D.Buffer pRects)
Array version of:
GetPhysicalDevicePresentRectanglesKHR |
static int |
vkGetPhysicalDevicePresentRectanglesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
long surface,
java.nio.IntBuffer pRectCount,
VkRect2D.Buffer pRects)
Query present rectangles for a surface on a physical device.
|
public static final int VK_KHR_DEVICE_GROUP_SPEC_VERSION
public static final java.lang.String VK_KHR_DEVICE_GROUP_EXTENSION_NAME
public static final int VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR
VkStructureType.
public static final int VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR
VkPeerMemoryFeatureFlagBits.
public static final int VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR
VkPeerMemoryFeatureFlagBits.
public static final int VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR
VkPeerMemoryFeatureFlagBits.
public static final int VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR
VkPeerMemoryFeatureFlagBits.
public static final int VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR
VkMemoryAllocateFlagBits.public static final int VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
VkPipelineCreateFlagBits.
public static final int VK_PIPELINE_CREATE_DISPATCH_BASE_KHR
VkPipelineCreateFlagBits.
public static final int VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR
VkDependencyFlagBits.public static final int VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR
VkStructureType.
public static final int VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
VkImageCreateFlagBits.public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
VkStructureType.public static final int VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
VkStructureType.
public static final int VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
VkStructureType.
public static final int VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
VkSwapchainCreateFlagBitsKHR.public static void nvkGetDeviceGroupPeerMemoryFeaturesKHR(org.lwjgl.vulkan.VkDevice device,
int heapIndex,
int localDeviceIndex,
int remoteDeviceIndex,
long pPeerMemoryFeatures)
GetDeviceGroupPeerMemoryFeaturesKHRpublic static void vkGetDeviceGroupPeerMemoryFeaturesKHR(org.lwjgl.vulkan.VkDevice device,
int heapIndex,
int localDeviceIndex,
int remoteDeviceIndex,
java.nio.IntBuffer pPeerMemoryFeatures)
device - the logical device that owns the memory.heapIndex - the index of the memory heap from which the memory is allocated.localDeviceIndex - the device index of the physical device that performs the memory access.remoteDeviceIndex - the device index of the physical device that the memory is allocated for.pPeerMemoryFeatures - a pointer to a VkPeerMemoryFeatureFlags bitmask indicating which types of memory accesses are supported for the combination of heap, local, and remote devices.public static void vkCmdSetDeviceMaskKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer,
int deviceMask)
CmdSetDeviceMask.commandBuffer - command buffer whose current device mask is modified.deviceMask - the new value of the current device mask.public static void vkCmdDispatchBaseKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer,
int baseGroupX,
int baseGroupY,
int baseGroupZ,
int groupCountX,
int groupCountY,
int groupCountZ)
CmdDispatchBase.commandBuffer - the command buffer into which the command will be recorded.baseGroupX - the start value for the X component of WorkgroupId.baseGroupY - the start value for the Y component of WorkgroupId.baseGroupZ - the start value for the Z component of WorkgroupId.groupCountX - the number of local workgroups to dispatch in the X dimension.groupCountY - the number of local workgroups to dispatch in the Y dimension.groupCountZ - the number of local workgroups to dispatch in the Z dimension.public static int nvkGetDeviceGroupPresentCapabilitiesKHR(org.lwjgl.vulkan.VkDevice device,
long pDeviceGroupPresentCapabilities)
GetDeviceGroupPresentCapabilitiesKHRpublic static int vkGetDeviceGroupPresentCapabilitiesKHR(org.lwjgl.vulkan.VkDevice device,
VkDeviceGroupPresentCapabilitiesKHR pDeviceGroupPresentCapabilities)
A logical device that represents multiple physical devices may support presenting from images on more than one physical device, or combining images from multiple physical devices.
To query these capabilities, call:
VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
VkDevice device,
VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
device must be a valid VkDevice handlepDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structuredevice - the logical device.pDeviceGroupPresentCapabilities - a pointer to a VkDeviceGroupPresentCapabilitiesKHR structure in which the device’s capabilities are returned.public static int nvkGetDeviceGroupSurfacePresentModesKHR(org.lwjgl.vulkan.VkDevice device,
long surface,
long pModes)
GetDeviceGroupSurfacePresentModesKHRpublic static int vkGetDeviceGroupSurfacePresentModesKHR(org.lwjgl.vulkan.VkDevice device,
long surface,
java.nio.IntBuffer pModes)
Some surfaces may not be capable of using all the device group present modes.
To query the supported device group present modes for a particular surface, call:
VkResult vkGetDeviceGroupSurfacePresentModesKHR(
VkDevice device,
VkSurfaceKHR surface,
VkDeviceGroupPresentModeFlagsKHR* pModes);
The modes returned by this command are not invariant, and may change in response to the surface being moved, resized, or occluded. These modes must be a subset of the modes returned by GetDeviceGroupPresentCapabilitiesKHR.
device must be a valid VkDevice handlesurface must be a valid VkSurfaceKHR handlepModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR valuedevice, and surface must have been created, allocated, or retrieved from the same VkInstancesurface must be externally synchronizeddevice - the logical device.surface - the surface.pModes - a pointer to a VkDeviceGroupPresentModeFlagsKHR in which the supported device group present modes for the surface are returned.public static int nvkGetPhysicalDevicePresentRectanglesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
long surface,
long pRectCount,
long pRects)
GetPhysicalDevicePresentRectanglesKHRpRectCount - a pointer to an integer related to the number of rectangles available or queried, as described below.public static int vkGetPhysicalDevicePresentRectanglesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
long surface,
java.nio.IntBuffer pRectCount,
@Nullable
VkRect2D.Buffer pRects)
When using DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, the application may need to know which regions of the surface are used when presenting locally on each physical device. Presentation of swapchain images to this surface need only have valid contents in the regions returned by this command.
To query a set of rectangles used in presentation on the physical device, call:
VkResult vkGetPhysicalDevicePresentRectanglesKHR(
VkPhysicalDevice physicalDevice,
VkSurfaceKHR surface,
uint32_t* pRectCount,
VkRect2D* pRects);
If pRects is NULL, then the number of rectangles used when presenting the given surface is returned in pRectCount. Otherwise, pRectCount must point to a variable set by the user to the number of elements in the pRects array, and on return the variable is overwritten with the number of structures actually written to pRects. If the value of pRectCount is less than the number of rectangles, at most pRectCount structures will be written. If pRectCount is smaller than the number of rectangles used for the given surface, INCOMPLETE will be returned instead of SUCCESS to indicate that not all the available values were returned.
The values returned by this command are not invariant, and may change in response to the surface being moved, resized, or occluded.
The rectangles returned by this command must not overlap.
physicalDevice must be a valid VkPhysicalDevice handlesurface must be a valid VkSurfaceKHR handlepRectCount must be a valid pointer to a uint32_t valuepRectCount is not 0, and pRects is not NULL, pRects must be a valid pointer to an array of pRectCount VkRect2D structuresphysicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstancesurface must be externally synchronizedphysicalDevice - the physical device.surface - the surface.pRectCount - a pointer to an integer related to the number of rectangles available or queried, as described below.pRects - either NULL or a pointer to an array of VkRect2D structures.public static int nvkAcquireNextImage2KHR(org.lwjgl.vulkan.VkDevice device,
long pAcquireInfo,
long pImageIndex)
AcquireNextImage2KHRpublic static int vkAcquireNextImage2KHR(org.lwjgl.vulkan.VkDevice device,
VkAcquireNextImageInfoKHR pAcquireInfo,
java.nio.IntBuffer pImageIndex)
To acquire an available presentable image to use, and retrieve the index of that image, call:
VkResult vkAcquireNextImage2KHR(
VkDevice device,
const VkAcquireNextImageInfoKHR* pAcquireInfo,
uint32_t* pImageIndex);
swapchain member of pAcquireInfo and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to GetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, the timeout member of pAcquireInfo must not be UINT64_MAXdevice must be a valid VkDevice handlepAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structurepImageIndex must be a valid pointer to a uint32_t valuedevice - the device associated with swapchain.pAcquireInfo - a pointer to a VkAcquireNextImageInfoKHR structure containing parameters of the acquire.pImageIndex - a pointer to a uint32_t that is set to the index of the next image to use.public static void vkGetDeviceGroupPeerMemoryFeaturesKHR(org.lwjgl.vulkan.VkDevice device,
int heapIndex,
int localDeviceIndex,
int remoteDeviceIndex,
int[] pPeerMemoryFeatures)
GetDeviceGroupPeerMemoryFeaturesKHRpublic static int vkGetDeviceGroupSurfacePresentModesKHR(org.lwjgl.vulkan.VkDevice device,
long surface,
int[] pModes)
GetDeviceGroupSurfacePresentModesKHRpublic static int vkGetPhysicalDevicePresentRectanglesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice,
long surface,
int[] pRectCount,
@Nullable
VkRect2D.Buffer pRects)
GetPhysicalDevicePresentRectanglesKHRpublic static int vkAcquireNextImage2KHR(org.lwjgl.vulkan.VkDevice device,
VkAcquireNextImageInfoKHR pAcquireInfo,
int[] pImageIndex)
AcquireNextImage2KHRCopyright LWJGL. All Rights Reserved. License terms.