mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-17 00:36:24 +00:00
* 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`
148 lines
5.1 KiB
Plaintext
148 lines
5.1 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_get_physical_device_properties2.txt[]
|
|
|
|
*Last Modified Date*::
|
|
2017-09-05
|
|
*IP Status*::
|
|
No known IP claims.
|
|
*Interactions and External Dependencies*::
|
|
- Promoted to Vulkan 1.1 Core
|
|
*Contributors*::
|
|
- Jeff Bolz, NVIDIA
|
|
- Ian Elliott, Google
|
|
|
|
This extension provides new entry points to query device features, device
|
|
properties, and format properties in a way that can be easily extended by
|
|
other extensions, without introducing any further entry points.
|
|
The Vulkan 1.0 feature/limit/formatproperty structures do not include
|
|
ptext:sType/ptext:pNext members.
|
|
This extension wraps them in new structures with ptext:sType/ptext:pNext
|
|
members, so an application can query a chain of feature/limit/formatproperty
|
|
structures by constructing the chain and letting the implementation fill
|
|
them in.
|
|
A new command is added for each ftext:vkGetPhysicalDevice* command in core
|
|
Vulkan 1.0.
|
|
The new feature structure (and a chain of extension structures) can also be
|
|
passed in to device creation to enable features.
|
|
|
|
This extension also allows applications to use the physical-device
|
|
components of device extensions before flink:vkCreateDevice is called.
|
|
|
|
=== New Object Types
|
|
|
|
None.
|
|
|
|
=== New Enum Constants
|
|
|
|
* Extending elink:VkStructureType:
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR
|
|
** ename:VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR
|
|
** ename:VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR
|
|
** ename:VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR
|
|
** ename:VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR
|
|
|
|
=== New Enums
|
|
|
|
None.
|
|
|
|
=== New Structures
|
|
|
|
* slink:VkPhysicalDeviceFeatures2KHR
|
|
* slink:VkPhysicalDeviceProperties2KHR
|
|
* slink:VkFormatProperties2KHR
|
|
* slink:VkImageFormatProperties2KHR
|
|
* slink:VkPhysicalDeviceImageFormatInfo2KHR
|
|
* slink:VkQueueFamilyProperties2KHR
|
|
* slink:VkPhysicalDeviceMemoryProperties2KHR
|
|
* slink:VkSparseImageFormatProperties2KHR
|
|
* slink:VkPhysicalDeviceSparseImageFormatInfo2KHR
|
|
|
|
=== New Functions
|
|
|
|
* flink:vkGetPhysicalDeviceFeatures2KHR
|
|
* flink:vkGetPhysicalDeviceProperties2KHR
|
|
* flink:vkGetPhysicalDeviceFormatProperties2KHR
|
|
* flink:vkGetPhysicalDeviceImageFormatProperties2KHR
|
|
* flink:vkGetPhysicalDeviceQueueFamilyProperties2KHR
|
|
* flink:vkGetPhysicalDeviceMemoryProperties2KHR
|
|
* flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR
|
|
|
|
=== 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.
|
|
|
|
=== Issues
|
|
|
|
None.
|
|
|
|
=== Examples
|
|
|
|
[source,c++]
|
|
----------------------------------------
|
|
|
|
// Get features with a hypothetical future extension.
|
|
VkHypotheticalExtensionFeaturesKHR hypotheticalFeatures =
|
|
{
|
|
VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, // sType
|
|
NULL, // pNext
|
|
};
|
|
|
|
VkPhysicalDeviceFeatures2KHR features =
|
|
{
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, // sType
|
|
&hypotheticalFeatures, // pNext
|
|
};
|
|
|
|
// After this call, features and hypotheticalFeatures have been filled out.
|
|
vkGetPhysicalDeviceFeatures2KHR(physicalDevice, &features);
|
|
|
|
// Properties/limits can be chained and queried similarly.
|
|
|
|
// Enable some features:
|
|
VkHypotheticalExtensionFeaturesKHR enabledHypotheticalFeatures =
|
|
{
|
|
VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, // sType
|
|
NULL, // pNext
|
|
};
|
|
|
|
VkPhysicalDeviceFeatures2KHR enabledFeatures =
|
|
{
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, // sType
|
|
&enabledHypotheticalFeatures, // pNext
|
|
};
|
|
|
|
enabledFeatures.features.xyz = VK_TRUE;
|
|
enabledHypotheticalFeatures.abc = VK_TRUE;
|
|
|
|
VkDeviceCreateInfo deviceCreateInfo =
|
|
{
|
|
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, // sType
|
|
&enabledFeatures, // pNext
|
|
...
|
|
NULL, // pEnabledFeatures
|
|
}
|
|
|
|
VkDevice device;
|
|
vkCreateDevice(physicalDevice, &deviceCreateInfo, NULL, &device);
|
|
|
|
----------------------------------------
|
|
|
|
=== Version History
|
|
|
|
* Revision 1, 2016-09-12 (Jeff Bolz)
|
|
- Internal revisions
|
|
|
|
* Revision 2, 2016-11-02 (Ian Elliott)
|
|
- Added ability for applications to use the physical-device components of
|
|
device extensions before vkCreateDevice is called.
|