Vulkan-Docs/appendices/VK_KHR_device_group.txt
Jon Leech 56e0289318 Change log for January 05, 2019 Vulkan 1.1.97 spec update:
* Update release number to 97.

Public Issues:

  * Add a special case to the <<renderpass-compatibility, Render Pass
    Compatibility>> rules allowing single-subpass renderpasses to be
    compatible even if they have different resolve attachment references
    (public issue 835).
  * Fix the miss shader binding table record address rule in the
    <<shader-binding-table-indexing-rules, Miss Shaders>> section to index
    by code:missIndex, not code:sbtOffset (public issue 875).

Internal Issues:

  * Add a missing anchor to the elink:VkSamplerCreateFlagBits language
    (internal issue 1483).
  * Add missing implicit valid usage include for slink:VkHdrMetadataEXT and
    corresponding `noautovalidity` attributes in `vk.xml` for the
    externally-defined metadata properties (internal issue 1514).
  * Remove restrictions on the `mask` parameter of SPIR-V's
    code:OpGroupNonUniformXor in the <<spirvenv-module-validation,
    Validation Rules within a Module>> appendix (internal merge request
    2971).
  * Restore `noautovalidity` attribute for
    slink:VkPipelineViewportWScalingStateCreateInfoNV::pname:pViewportWScalings
    in `vk.xml` (internal merge request 2975).
  * Update copyright dates on Khronos-copyrighted files to 2019 (internal
    merge request 2980).

New Extensions:

  * `VK_KHR_depth_stencil_resolve`
  * `VK_EXT_buffer_device_address`
  * `VK_EXT_memory_budget`
  * `VK_EXT_memory_priority`
  * `VK_EXT_validation_features`
2019-01-05 19:40:12 -08:00

162 lines
5.7 KiB
Plaintext

// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
include::meta/VK_KHR_device_group.txt[]
*Last Modified Date*::
2017-10-06
*IP Status*::
No known IP claims.
*Interactions and External Dependencies*::
- Promoted to Vulkan 1.1 Core
*Contributors*::
- Jeff Bolz, NVIDIA
- Tobias Hector, Imagination Technologies
This extension provides functionality to use a logical device that consists
of multiple physical devices, as created with the
`<<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.
=== New Object Types
None.
=== New Enum Constants
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR
ifdef::VK_KHR_swapchain[]
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
** ename:VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
** ename:VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
endif::VK_KHR_swapchain[]
** ename:VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR
** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR
* Extending elink:VkImageCreateFlagBits
** ename:VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
* Extending elink:VkPipelineCreateFlagBits
** ename:VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
** ename:VK_PIPELINE_CREATE_DISPATCH_BASE_KHR
* Extending elink:VkDependencyFlagBits
** ename:VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR
ifdef::VK_KHR_swapchain[]
* Extending elink:VkSwapchainCreateFlagBitsKHR
** ename:VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
endif::VK_KHR_swapchain[]
=== New Enums
* elink:VkPeerMemoryFeatureFlagBitsKHR
* elink:VkMemoryAllocateFlagBitsKHR
ifdef::VK_KHR_swapchain[]
* elink:VkDeviceGroupPresentModeFlagBitsKHR
endif::VK_KHR_swapchain[]
=== New Structures
* slink:VkMemoryAllocateFlagsInfoKHR
* slink:VkDeviceGroupRenderPassBeginInfoKHR
* slink:VkDeviceGroupCommandBufferBeginInfoKHR
* slink:VkDeviceGroupSubmitInfoKHR
* slink:VkDeviceGroupBindSparseInfoKHR
* slink:VkBindBufferMemoryDeviceGroupInfoKHR
* slink:VkBindImageMemoryDeviceGroupInfoKHR
ifdef::VK_KHR_swapchain[]
* slink:VkDeviceGroupPresentCapabilitiesKHR
* slink:VkImageSwapchainCreateInfoKHR
* slink:VkBindImageMemorySwapchainInfoKHR
* slink:VkAcquireNextImageInfoKHR
* slink:VkDeviceGroupPresentInfoKHR
* slink:VkDeviceGroupSwapchainCreateInfoKHR
endif::VK_KHR_swapchain[]
=== New Functions
* flink:vkGetDeviceGroupPeerMemoryFeaturesKHR
* flink:vkCmdSetDeviceMaskKHR
* flink:vkCmdDispatchBaseKHR
ifdef::VK_KHR_swapchain[]
* flink:vkGetDeviceGroupPresentCapabilitiesKHR
* flink:vkGetDeviceGroupSurfacePresentModesKHR
* flink:vkGetPhysicalDevicePresentRectanglesKHR
* flink:vkAcquireNextImage2KHR
endif::VK_KHR_swapchain[]
=== New Built-In Variables
* <<interfaces-builtin-variables-deviceindex,code:DeviceIndex>>
=== New SPIR-V Capabilities
* <<spirvenv-capabilities,code:DeviceGroup>>
=== Promotion to Vulkan 1.1
ifdef::VK_KHR_swapchain[]
The following enums, types and commands are included as interactions with
`<<VK_KHR_swapchain>>`:
* ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
* ename:VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
* ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
* ename:VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
* ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
* ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
* ename:VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
* elink:VkDeviceGroupPresentModeFlagBitsKHR
* slink:VkDeviceGroupPresentCapabilitiesKHR
* slink:VkImageSwapchainCreateInfoKHR
* slink:VkBindImageMemorySwapchainInfoKHR
* slink:VkAcquireNextImageInfoKHR
* slink:VkDeviceGroupPresentInfoKHR
* slink:VkDeviceGroupSwapchainCreateInfoKHR
* flink:vkGetDeviceGroupPresentCapabilitiesKHR
* flink:vkGetDeviceGroupSurfacePresentModesKHR
* flink:vkGetPhysicalDevicePresentRectanglesKHR
* flink:vkAcquireNextImage2KHR
If Vulkan 1.1 and VK_KHR_swapchain are supported, these are included by
VK_KHR_swapchain.
endif::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.
=== Issues
None.
=== Examples
TODO
=== Version History
* Revision 1, 2016-10-19 (Jeff Bolz)
- Internal revisions
* Revision 2, 2017-05-19 (Tobias Hector)
- Removed extended memory bind functions to VK_KHR_bind_memory2, added
dependency on that extension, and device-group-specific structs for
those functions.
* Revision 3, 2017-10-06 (Ian Elliott)
- Corrected Vulkan 1.1 interactions with the WSI extensions.
All Vulkan 1.1 WSI interactions are with the VK_KHR_swapchain
extension.
* Revision 4, 2017-10-10 (Jeff Bolz)
- Rename "SFR" bits and structure members to use the phrase "split
instance bind regions".