Change log for July 7, 2018 Vulkan 1.1.80 spec update:
* Update release number to 80. Public Issues: * Remove unused "`API Order`" term from glossary (public issue 657). * Dynamically generate the extension appendix includes based on information in `vk.xml`, including new metadata tags describing deprecated, obsoleted, and promoted extensions (public pull request 690). Internal Issues: * Add valid usage statements to flink:vkCmdBindDescriptorSets to keep offsets + range less than or equal to the buffer size (internal issue 1174). New Extensions: * `VK_EXT_conditional_render` * `VK_KHR_create_renderpass2` (public issue 736) * `VK_KHR_8bit_storage` (public issue 737)
This commit is contained in:
parent
5ffcd3fa3e
commit
831e2d4525
2
Makefile
2
Makefile
|
@ -107,7 +107,7 @@ VERBOSE =
|
|||
# EXTRAATTRIBS sets additional attributes, if passed to make
|
||||
# ADOCOPTS options for asciidoc->HTML5 output
|
||||
NOTEOPTS = -a editing-notes -a implementation-guide
|
||||
PATCHVERSION = 79
|
||||
PATCHVERSION = 80
|
||||
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
|
||||
SPECREVISION = 1.1.$(PATCHVERSION)
|
||||
else
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
include::meta/VK_EXT_conditional_rendering.txt[]
|
||||
|
||||
*Last Modified Date*::
|
||||
2018-05-21
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Contributors*::
|
||||
- Vikram Kushwaha, NVIDIA
|
||||
- Daniel Rakos, AMD
|
||||
- Jesse Hall, Google
|
||||
- Jeff Bolz, NVIDIA
|
||||
- Piers Daniell, NVIDIA
|
||||
- Stuart Smith, Imagination Technologies
|
||||
|
||||
This extension allows the execution of one or more rendering commands to be
|
||||
conditional on a value in buffer memory.
|
||||
This may help an application reduce the latency by conditionally discarding
|
||||
rendering commands without application intervention.
|
||||
The conditional rendering commands are limited to draws, compute dispatches
|
||||
and clearing attachments within a conditional rendering block.
|
||||
|
||||
=== New Object Types
|
||||
|
||||
None.
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending elink:VkAccessFlagBits:
|
||||
** ename:VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT
|
||||
* Extending elink:VkBufferUsageFlagBits:
|
||||
** ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
|
||||
* Extending elink:VkPipelineStageFlagBits:
|
||||
** ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
|
||||
|
||||
=== New Enums
|
||||
|
||||
* elink:VkConditionalRenderingFlagBitsEXT
|
||||
|
||||
=== New Structures
|
||||
|
||||
* slink:VkConditionalRenderingBeginInfoEXT
|
||||
* Extending slink:VkCommandBufferInheritanceInfo:
|
||||
** slink:VkCommandBufferInheritanceConditionalRenderingInfoEXT
|
||||
* Extending slink:VkPhysicalDeviceFeatures2:
|
||||
** slink:VkPhysicalDeviceConditionalRenderingFeaturesEXT
|
||||
|
||||
None.
|
||||
|
||||
=== New Functions
|
||||
|
||||
* flink:vkCmdBeginConditionalRenderingEXT
|
||||
* flink:vkCmdEndConditionalRenderingEXT
|
||||
|
||||
=== Issues
|
||||
|
||||
1) Should conditional rendering affect copy and blit commands?
|
||||
|
||||
RESOLVED: Conditional rendering should not affect copies and blits.
|
||||
|
||||
2) Should secondary command buffers be allowed to execute while conditional
|
||||
rendering is active in the primary command buffer?
|
||||
|
||||
RESOLVED: The rendering commands in secondary command buffer will be
|
||||
affected by an active conditional rendering in primary command buffer if the
|
||||
pname:conditionalRenderingEnable is set to ename:VK_TRUE.
|
||||
Conditional rendering must: not be active in the primary command buffer if
|
||||
pname:conditionalRenderingEnable is ename:VK_FALSE.
|
||||
|
||||
=== Examples
|
||||
|
||||
None.
|
||||
|
||||
=== Version History
|
||||
|
||||
* Revision 1, 2018-04-19 (Vikram Kushwaha)
|
||||
- First Version
|
||||
|
||||
* Revision 2, 2018-05-21 (Vikram Kushwaha)
|
||||
- Add new pipeline stage, access flags and limit conditional rendering
|
||||
to a subpass or entire renderpass.
|
|
@ -0,0 +1,48 @@
|
|||
// Copyright (c) 2017-2018 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_8bit_storage.txt[]
|
||||
|
||||
*Last Modified Date*::
|
||||
2018-02-05
|
||||
*IP Status*::
|
||||
No known IP claims.
|
||||
*Interactions and External Dependencies*::
|
||||
- This extension requires
|
||||
https://www.khronos.org/registry/spir-v/extensions/KHR/SPV_KHR_8bit_storage.html[+SPV_KHR_8bit_storage+]
|
||||
*Contributors*::
|
||||
- Alexander Galazin, Arm
|
||||
|
||||
The +VK_KHR_8bit_storage+ extension allows use of 8-bit types in uniform and
|
||||
storage buffers, and push constant blocks.
|
||||
This extension introduces several new optional features which map to SPIR-V
|
||||
capabilities and allow access to 8-bit data in code:Block-decorated objects
|
||||
in the code:Uniform and the code:StorageBuffer storage classes, and objects
|
||||
in the code:PushConstant storage class.
|
||||
|
||||
The code:StorageBuffer8BitAccess capability must: be supported by all
|
||||
implementations of this extension.
|
||||
The other capabilities are optional.
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR
|
||||
|
||||
=== New Structures
|
||||
|
||||
* slink:VkPhysicalDevice8BitStorageFeaturesKHR
|
||||
|
||||
=== New SPIR-V Capabilities
|
||||
|
||||
* <<spirvenv-capabilities-table-8bitstorage,code:StorageBuffer8BitAccess>>
|
||||
* <<spirvenv-capabilities-table-8bitstorage,code:UniformAndStorageBuffer8BitAccess>>
|
||||
* <<spirvenv-capabilities-table-8bitstorage,code:StoragePushConstant8>>
|
||||
|
||||
=== Issues
|
||||
|
||||
=== Version History
|
||||
|
||||
* Revision 1, 2018-02-05 (Alexander Galazin)
|
||||
- Initial draft
|
|
@ -0,0 +1,56 @@
|
|||
// Copyright (c) 2016-2017 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_create_renderpass2.txt[]
|
||||
|
||||
Last Modified Date::
|
||||
2018-02-07
|
||||
Contributors::
|
||||
- Tobias Hector
|
||||
- Jeff Bolz
|
||||
|
||||
This extension provides a new entry point to create render passes in a way
|
||||
that can be easily extended by other extensions through the substructures of
|
||||
render pass creation.
|
||||
The Vulkan 1.0 render pass creation sub-structures do not include
|
||||
ptext:sType/ptext:pNext members.
|
||||
Additionally, the renderpass begin/next/end commands have been augmented
|
||||
with new extensible structures for passing additional subpass information.
|
||||
|
||||
Parameters from the <<VK_KHR_multiview>> and <<VK_KHR_maintenance2>>
|
||||
extensions which previously extended slink:VkRenderPassCreateInfo are folded
|
||||
into the new structures in more appropriate locations.
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending elink:VkStructureType:
|
||||
** ename:VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR
|
||||
** ename:VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR
|
||||
** ename:VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR
|
||||
** ename:VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR
|
||||
** ename:VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR
|
||||
** ename:VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR
|
||||
** ename:VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR
|
||||
|
||||
=== New Structures
|
||||
|
||||
* slink:VkAttachmentDescription2KHR
|
||||
* slink:VkAttachmentReference2KHR
|
||||
* slink:VkSubpassDescription2KHR
|
||||
* slink:VkSubpassDependency2KHR
|
||||
* slink:VkRenderPassCreateInfo2KHR
|
||||
* slink:VkSubpassBeginInfoKHR
|
||||
* slink:VkSubpassEndInfoKHR
|
||||
|
||||
=== New Functions
|
||||
|
||||
* flink:vkCreateRenderPass2KHR
|
||||
* flink:vkCmdBeginRenderPass2KHR
|
||||
* flink:vkCmdNextSubpass2KHR
|
||||
* flink:vkCmdEndRenderPass2KHR
|
||||
|
||||
=== Version History
|
||||
|
||||
* Revision 1, 2018-02-07 (Tobias Hector)
|
||||
- Internal revisions
|
|
@ -44,10 +44,6 @@ Allocation Scope::
|
|||
as the parent object is freed or destroyed, or during the parent
|
||||
command.
|
||||
|
||||
API Order::
|
||||
A set of ordering rules that govern how primitives in draw commands
|
||||
affect the framebuffer.
|
||||
|
||||
Aspect (Image)::
|
||||
An image may: contain multiple kinds, or aspects, of data for each
|
||||
pixel, where each aspect is used in a particular way by the pipeline and
|
||||
|
|
|
@ -53,6 +53,9 @@ endif::VK_VERSION_1_1,VK_KHR_device_group[]
|
|||
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
|
||||
* [[spirvenv-capabilities-multiview]] code:MultiView
|
||||
endif::VK_VERSION_1_1,VK_KHR_multiview[]
|
||||
ifdef::VK_KHR_8bit_storage[]
|
||||
* code:StorageBuffer8BitAccess
|
||||
endif::VK_KHR_8bit_storage[]
|
||||
|
||||
If the implementation supports any of the optional: features described in
|
||||
the <<features-features,Features>> chapter, then the capability operand(s)
|
||||
|
@ -198,6 +201,12 @@ endif::VK_EXT_descriptor_indexing[]
|
|||
ifdef::VK_AMD_gpu_shader_half_float[]
|
||||
| code:Float16 | `<<VK_AMD_gpu_shader_half_float>>`
|
||||
endif::VK_AMD_gpu_shader_half_float[]
|
||||
ifdef::VK_KHR_8bit_storage[]
|
||||
[[spirvenv-capabilities-table-8bitstorage]]
|
||||
| code:StorageBuffer8BitAccess | <<features-features-storageBuffer8BitAccess,StorageBuffer8BitAccess>>
|
||||
| code:UniformAndStorageBuffer8BitAccess | <<features-features-uniformAndStorageBuffer8BitAccess,UniformAndStorageBuffer8BitAccess>>
|
||||
| code:StoragePushConstant8 | <<features-features-storagePushConstant8,StoragePushConstant8>>
|
||||
endif::VK_KHR_8bit_storage[]
|
||||
|====
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]
|
||||
|
@ -255,6 +264,11 @@ The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
|
|||
uses the `SPV_KHR_shader_draw_parameters` SPIR-V extension.
|
||||
endif::VK_VERSION_1_1,VK_KHR_shader_draw_parameters[]
|
||||
|
||||
ifdef::VK_KHR_8bit_storage[]
|
||||
The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
|
||||
uses the +SPV_KHR_8bit_storage+ SPIR-V extension.
|
||||
endif::VK_KHR_8bit_storage[]
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[]
|
||||
The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
|
||||
uses the
|
||||
|
|
|
@ -784,6 +784,48 @@ ename:VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT not set.
|
|||
After the implicit reset, pname:commandBuffer is moved to the
|
||||
<<commandbuffers-lifecycle, recording state>>.
|
||||
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
|
||||
[open,refpage='VkCommandBufferInheritanceConditionalRenderingInfoEXT',desc='Structure specifying command buffer inheritance info',type='structs']
|
||||
--
|
||||
|
||||
If the pname:pNext chain of slink:VkCommandBufferInheritanceInfo includes a
|
||||
sname:VkCommandBufferInheritanceConditionalRenderingInfoEXT structure, then
|
||||
that structure controls whether a command buffer can: be executed while
|
||||
conditional rendering is <<active-conditional-rendering,active>> in the
|
||||
primary command buffer.
|
||||
|
||||
The sname:VkCommandBufferInheritanceConditionalRenderingInfoEXT structure is
|
||||
defined as:
|
||||
|
||||
include::../api/structs/VkCommandBufferInheritanceConditionalRenderingInfoEXT.txt[]
|
||||
|
||||
* pname:sType is the type of this structure
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure
|
||||
* pname:conditionalRenderingEnable specifies whether the command buffer
|
||||
can: be executed while conditional rendering is active in the primary
|
||||
command buffer.
|
||||
If this is ename:VK_TRUE, then this command buffer can: be executed
|
||||
whether the primary command buffer has active conditional rendering or
|
||||
not.
|
||||
If this is ename:VK_FALSE, then the primary command buffer must: not
|
||||
have conditional rendering active.
|
||||
|
||||
If this structure is not present, the behavior is as if
|
||||
pname:conditionalRenderingEnable is ename:VK_FALSE.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977]]
|
||||
If the <<features-features-inheritedConditionalRendering, inherited
|
||||
conditional rendering>> feature is not enabled,
|
||||
pname:conditionalRenderingEnable must: be ename:VK_FALSE
|
||||
****
|
||||
|
||||
include::../validity/structs/VkCommandBufferInheritanceConditionalRenderingInfoEXT.txt[]
|
||||
--
|
||||
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
Once recording starts, an application records a sequence of commands
|
||||
(ftext:vkCmd*) to set state in the command buffer, draw, dispatch, and other
|
||||
commands.
|
||||
|
@ -821,6 +863,11 @@ executable state>>.
|
|||
* [[VUID-vkEndCommandBuffer-commandBuffer-00061]]
|
||||
All queries made <<queries-operation-active,active>> during the
|
||||
recording of pname:commandBuffer must: have been made inactive
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
* [[VUID-vkEndCommandBuffer-None-01978]]
|
||||
Conditional rendering must not be
|
||||
<<active-conditional-rendering,active>>
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
ifdef::VK_EXT_debug_utils[]
|
||||
* [[VUID-vkEndCommandBuffer-commandBuffer-01815]]
|
||||
If pname:commandBuffer is a secondary command buffer, there must: not be
|
||||
|
|
|
@ -3213,7 +3213,7 @@ in the sets being bound.
|
|||
The effective offset used for dynamic uniform and storage buffer bindings is
|
||||
the sum of the relative offset taken from pname:pDynamicOffsets, and the
|
||||
base address of the buffer plus base offset in the descriptor set.
|
||||
The length of the dynamic uniform and storage buffer bindings is the buffer
|
||||
The range of the dynamic uniform and storage buffer bindings is the buffer
|
||||
range as specified in the descriptor set.
|
||||
|
||||
Each of the pname:pDescriptorSets must: be compatible with the pipeline
|
||||
|
@ -3274,6 +3274,11 @@ descriptor set.
|
|||
binding with type ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must:
|
||||
be a multiple of
|
||||
sname:VkPhysicalDeviceLimits::pname:minStorageBufferOffsetAlignment
|
||||
* [[VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979]]
|
||||
For each dynamic uniform or storage buffer binding in
|
||||
pname:pDescriptorSets, the sum of the effective offset, as defined
|
||||
above, and the range of the binding must: be less than or equal to the
|
||||
size of the buffer
|
||||
****
|
||||
|
||||
include::../validity/protos/vkCmdBindDescriptorSets.txt[]
|
||||
|
|
|
@ -2339,3 +2339,154 @@ include::../validity/protos/vkCmdDrawIndexedIndirectCountAMD.txt[]
|
|||
|
||||
--
|
||||
endif::VK_AMD_draw_indirect_count[]
|
||||
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
|
||||
[[drawing-conditional-rendering]]
|
||||
== Conditional Rendering
|
||||
Certain rendering commands can: be executed conditionally based on a value
|
||||
in buffer memory.
|
||||
These rendering commands are limited to <<drawing,drawing commands>>,
|
||||
<<dispatch,dispatching commands>>, and clearing attachments with
|
||||
flink:vkCmdClearAttachments within a conditional rendering block which is
|
||||
defined by commands flink:vkCmdBeginConditionalRenderingEXT and
|
||||
flink:vkCmdEndConditionalRenderingEXT.
|
||||
Other rendering commands remain unaffected by conditional rendering.
|
||||
|
||||
[[active-conditional-rendering]]
|
||||
After beginning conditional rendering, it is considered _active_ within the
|
||||
command buffer it was called until it is ended with
|
||||
flink:vkCmdEndConditionalRenderingEXT.
|
||||
|
||||
Conditional rendering must: begin and end in the same command buffer.
|
||||
When conditional rendering is active, a primary command buffer can: execute
|
||||
secondary command buffers if the
|
||||
<<features-features-inheritedConditionalRendering, inherited conditional
|
||||
rendering>> feature is enabled.
|
||||
For a secondary command buffer to be executed while conditional rendering is
|
||||
active in the primary command buffer, it must: set the
|
||||
pname:conditionalRenderingEnable flag of
|
||||
slink:VkCommandBufferInheritanceConditionalRenderingInfoEXT, as described in
|
||||
the <<commandbuffers-recording, Command Buffer Recording>> section.
|
||||
|
||||
Conditional rendering must: also either begin and end inside the same
|
||||
subpass of a render pass instance, or must: both begin and end outside of a
|
||||
render pass instance (i.e. contain entire render pass instances).
|
||||
|
||||
[open,refpage='vkCmdBeginConditionalRenderingEXT',desc='Define the beginning of a conditional rendering block',type='protos']
|
||||
--
|
||||
|
||||
To begin conditional rendering, call:
|
||||
|
||||
include::../api/protos/vkCmdBeginConditionalRenderingEXT.txt[]
|
||||
|
||||
* pname:commandBuffer is the command buffer into which this command will
|
||||
be recorded.
|
||||
* pname:pConditionalRenderingBegin is a pointer to an instance of the
|
||||
slink:VkConditionalRenderingBeginInfoEXT structure specifying the
|
||||
parameters of conditional rendering.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-vkCmdBeginConditionalRenderingEXT-None-01980]]
|
||||
Conditional rendering must: not already be
|
||||
<<active-conditional-rendering,active>>
|
||||
****
|
||||
|
||||
include::../validity/protos/vkCmdBeginConditionalRenderingEXT.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkConditionalRenderingBeginInfoEXT',desc='Structure specifying conditional rendering begin info',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkConditionalRenderingBeginInfoEXT structure is defined as:
|
||||
|
||||
include::../api/structs/VkConditionalRenderingBeginInfoEXT.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:buffer is a buffer containing the predicate for conditional
|
||||
rendering.
|
||||
* pname:offset is the byte offset into pname:buffer where the predicate is
|
||||
located.
|
||||
* pname:flags is a bitmask of elink:VkConditionalRenderingFlagsEXT
|
||||
specifying the behavior of conditional rendering.
|
||||
|
||||
If the 32-bit value at pname:offset in pname:buffer memory is zero, then the
|
||||
rendering commands are discarded, otherwise they are executed as normal.
|
||||
If the value of the predicate in buffer memory changes while conditional
|
||||
rendering is active, the rendering commands may: be discarded in an
|
||||
implementation-dependent way.
|
||||
Some implementations may latch the value of the predicate upon beginning
|
||||
conditional rendering while others may read it before every rendering
|
||||
command.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981]]
|
||||
If pname:buffer is non-sparse then it must: be bound completely and
|
||||
contiguously to a single sname:VkDeviceMemory object
|
||||
* [[VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982]]
|
||||
pname:buffer must: have been created with the
|
||||
ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set
|
||||
* [[VUID-VkConditionalRenderingBeginInfoEXT-offset-01983]]
|
||||
pname:offset must: be less than the size of pname:buffer by at least 32
|
||||
bits.
|
||||
* [[VUID-VkConditionalRenderingBeginInfoEXT-offset-01984]]
|
||||
pname:offset must: be a multiple of 4
|
||||
****
|
||||
|
||||
[open,refpage='VkConditionalRenderingFlagBitsEXT',desc='Specify the behavior of conditional rendering',type='enums']
|
||||
--
|
||||
|
||||
Bits which can: be set in
|
||||
flink:vkCmdBeginConditionalRenderingEXT::pname:flags specifying the behavior
|
||||
of conditional rendering are:
|
||||
|
||||
include::../api/enums/VkConditionalRenderingFlagBitsEXT.txt[]
|
||||
|
||||
* ename:VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT specifies the condition
|
||||
used to determine whether to discard rendering commands or not.
|
||||
That is, if the 32-bit predicate read from pname:buffer memory at
|
||||
pname:offset is zero, the rendering commands are not discarded, and if
|
||||
non zero, then they are discarded.
|
||||
|
||||
--
|
||||
|
||||
[open,refpage='VkConditionalRenderingFlagsEXT',desc='Bitmask of VkConditionalRenderingFlagBitsEXT',type='enums']
|
||||
--
|
||||
include::../api/flags/VkConditionalRenderingFlagsEXT.txt[]
|
||||
|
||||
sname:VkConditionalRenderingFlagsEXT is a bitmask type for setting a mask of
|
||||
zero or more slink:VkConditionalRenderingFlagBitsEXT.
|
||||
|
||||
[open,refpage='vkCmdEndConditionalRenderingEXT',desc='Define the end of a conditional rendering block',type='protos']
|
||||
--
|
||||
|
||||
To end conditional rendering, call:
|
||||
|
||||
include::../api/protos/vkCmdEndConditionalRenderingEXT.txt[]
|
||||
|
||||
* pname:commandBuffer is the command buffer into which this command will
|
||||
be recorded.
|
||||
|
||||
Once ended, conditional rendering becomes inactive.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-vkCmdEndConditionalRenderingEXT-None-01985]]
|
||||
Conditional rendering must: be <<active-conditional-rendering,active>>
|
||||
* [[VUID-vkCmdEndConditionalRenderingEXT-None-01986]]
|
||||
If conditional rendering was made
|
||||
<<active-conditional-rendering,active>> outside of a render pass
|
||||
instance, it must not be ended inside a render pass instance
|
||||
* [[VUID-vkCmdEndConditionalRenderingEXT-None-01987]]
|
||||
If conditional rendering was made
|
||||
<<active-conditional-rendering,active>> within a subpass it must be
|
||||
ended in the same subpass
|
||||
****
|
||||
|
||||
include::../validity/protos/vkCmdEndConditionalRenderingEXT.txt[]
|
||||
--
|
||||
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
|
|
|
@ -871,6 +871,54 @@ include::../validity/structs/VkPhysicalDeviceMultiviewFeatures.txt[]
|
|||
|
||||
endif::VK_VERSION_1_1,VK_KHR_multiview[]
|
||||
|
||||
ifdef::VK_KHR_8bit_storage[]
|
||||
[open,refpage='VkPhysicalDevice8BitStorageFeaturesKHR',desc='Structure describing features supported by VK_KHR_8bit_storage',type='structs']
|
||||
--
|
||||
|
||||
To query 8-bit storage features additionally supported call
|
||||
flink:vkGetPhysicalDeviceFeatures2 with a
|
||||
sname:VkPhysicalDevice8BitStorageFeaturesKHR structure included in the
|
||||
pname:pNext chain of its pname:pFeatures parameter.
|
||||
The sname:VkPhysicalDevice8BitStorageFeaturesKHR structure can: also be in
|
||||
the pname:pNext chain of a slink:VkDeviceCreateInfo structure, in which case
|
||||
it controls which additional features are enabled in the device.
|
||||
|
||||
The slink:VkPhysicalDevice8BitStorageFeaturesKHR structure is defined as:
|
||||
|
||||
include::../api/structs/VkPhysicalDevice8BitStorageFeaturesKHR.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-features-storageBuffer8BitAccess]]
|
||||
pname:storageBuffer8BitAccess indicates whether objects in the
|
||||
code:StorageBuffer storage class with the code:Block decoration can:
|
||||
have 8-bit integer members.
|
||||
If this feature is not enabled, 8-bit integer members must: not be used
|
||||
in such objects.
|
||||
This also indicates whether shader modules can: declare the
|
||||
code:StorageBuffer8BitAccess capability.
|
||||
* [[features-features-uniformAndStorageBuffer8BitAccess]]
|
||||
pname:uniformAndStorageBuffer8BitAccess indicates whether objects in
|
||||
the code:Uniform storage class with the code:Block decoration and in
|
||||
the code:StorageBuffer storage class with the same decoration can: have
|
||||
8-bit integer members.
|
||||
If this feature is not enabled, 8-bit integer members must: not be used
|
||||
in such objects.
|
||||
This also indicates whether shader modules can: declare the
|
||||
code:UniformAndStorageBuffer8BitAccess capability.
|
||||
* [[features-features-storagePushConstant8]] pname:storagePushConstant8
|
||||
indicates whether objects in the code:PushConstant storage class can:
|
||||
have 8-bit integer members.
|
||||
If this feature is not enabled, 8-bit integer members must: not be used
|
||||
in such objects.
|
||||
This also indicates whether shader modules can: declare the
|
||||
code:StoragePushConstant8 capability.
|
||||
|
||||
include::../validity/structs/VkPhysicalDevice8BitStorageFeaturesKHR.txt[]
|
||||
|
||||
--
|
||||
endif::VK_KHR_8bit_storage[]
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[]
|
||||
[open,refpage='VkPhysicalDevice16BitStorageFeatures',desc='Structure describing features supported by VK_KHR_16bit_storage',type='structs']
|
||||
--
|
||||
|
@ -1021,6 +1069,36 @@ include::../validity/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.t
|
|||
|
||||
endif::VK_EXT_blend_operation_advanced[]
|
||||
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
|
||||
[open,refpage='VkPhysicalDeviceConditionalRenderingFeaturesEXT',desc='Structure describing if a secondary command buffer can be executed if conditional rendering is active in the primary command buffer',type='structs']
|
||||
--
|
||||
The sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT structure is
|
||||
defined as:
|
||||
|
||||
include::../api/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* [[features-features-conditionalRendering]] pname:conditionalRendering
|
||||
specifies whether conditional rendering is supported.
|
||||
* [[features-features-inheritedConditionalRendering]]
|
||||
pname:inheritedConditionalRendering specifies whether a secondary
|
||||
command buffer can: be executed while conditional rendering is active in
|
||||
the primary command buffer.
|
||||
|
||||
If the sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT structure is
|
||||
included in the pname:pNext chain of flink:VkPhysicalDeviceFeatures2, it is
|
||||
filled with values indicating the implementation-dependent behavior.
|
||||
sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT can: also be used in
|
||||
pname:pNext chain of slink:VkDeviceCreateInfo to enable the features.
|
||||
|
||||
include::../validity/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.txt[]
|
||||
|
||||
--
|
||||
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
|
||||
ifdef::VK_VERSION_1_1[]
|
||||
[open,refpage='VkPhysicalDeviceShaderDrawParameterFeatures',desc='Structure describing shader draw parameter features that can be supported by an implementation',type='structs']
|
||||
--
|
||||
|
@ -1253,6 +1331,11 @@ ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]
|
|||
pname:variablePointersStorageBuffer>>, if the
|
||||
`<<VK_KHR_variable_pointers>>` extension is supported.
|
||||
endif::VK_VERSION_1_1,VK_KHR_variable_pointers[]
|
||||
ifdef::VK_KHR_8bit_storage[]
|
||||
* <<features-features-StorageBuffer8BitAccess,
|
||||
pname:storageBuffer8BitAccess>>, if the `<<VK_KHR_8bit_storage>>`
|
||||
extension is supported.
|
||||
endif::VK_KHR_8bit_storage[]
|
||||
ifdef::VK_EXT_descriptor_indexing[]
|
||||
* If the `<<VK_EXT_descriptor_indexing>>` extension is supported:
|
||||
** <<features-features-shaderSampledImageArrayDynamicIndexing,
|
||||
|
@ -2610,7 +2693,6 @@ include::../validity/structs/VkPhysicalDeviceProtectedMemoryProperties.txt[]
|
|||
|
||||
endif::VK_VERSION_1_1[]
|
||||
|
||||
|
||||
ifdef::VK_VERSION_1_1,VK_KHR_maintenance3[]
|
||||
|
||||
[open,refpage='VkPhysicalDeviceMaintenance3Properties',desc='Structure describing descriptor set properties',type='structs']
|
||||
|
|
|
@ -1101,6 +1101,9 @@ layouts as follows:
|
|||
If pname:srcSubpass is equal to pname:dstSubpass, pname:srcStageMask and
|
||||
pname:dstStageMask must: only contain one of
|
||||
ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
|
||||
ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
|
||||
ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
|
||||
|
@ -1403,6 +1406,472 @@ ename:VK_IMAGE_LAYOUT_GENERAL layout.
|
|||
An attachment must: not be used as both a depth/stencil attachment and a
|
||||
color attachment.
|
||||
|
||||
ifdef::VK_KHR_create_renderpass2[]
|
||||
|
||||
A more extensible version of render pass creation is also defined below.
|
||||
|
||||
[open,refpage='vkCreateRenderPass2KHR',desc='Create a new render pass object',type='protos']
|
||||
--
|
||||
|
||||
To create a render pass, call:
|
||||
|
||||
include::../api/protos/vkCreateRenderPass2KHR.txt[]
|
||||
|
||||
* pname:device is the logical device that creates the render pass.
|
||||
* pname:pCreateInfo is a pointer to an instance of the
|
||||
slink:VkRenderPassCreateInfo2KHR structure that describes the parameters
|
||||
of the render pass.
|
||||
* pname:pAllocator controls host memory allocation as described in the
|
||||
<<memory-allocation, Memory Allocation>> chapter.
|
||||
* pname:pRenderPass points to a sname:VkRenderPass handle in which the
|
||||
resulting render pass object is returned.
|
||||
|
||||
This command is functionally identical to flink:vkCreateRenderPass, but
|
||||
includes extensible sub-structures that include pname:sType and pname:pNext
|
||||
parameters, allowing them to be more easily extended.
|
||||
|
||||
include::../validity/protos/vkCreateRenderPass2KHR.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkRenderPassCreateInfo2KHR',desc='Structure specifying parameters of a newly created render pass',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkRenderPassCreateInfo2KHR structure is defined as:
|
||||
|
||||
include::../api/structs/VkRenderPassCreateInfo2KHR.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:flags is reserved for future use.
|
||||
* pname:attachmentCount is the number of attachments used by this render
|
||||
pass.
|
||||
* pname:pAttachments points to an array of pname:attachmentCount
|
||||
slink:VkAttachmentDescription2KHR structures describing the attachments
|
||||
used by the render pass.
|
||||
* pname:subpassCount is the number of subpasses to create.
|
||||
* pname:pSubpasses points to an array of pname:subpassCount
|
||||
slink:VkSubpassDescription2KHR structures describing each subpass.
|
||||
* pname:dependencyCount is the number of dependencies between pairs of
|
||||
subpasses.
|
||||
* pname:pDependencies points to an array of pname:dependencyCount
|
||||
slink:VkSubpassDependency2KHR structures describing dependencies between
|
||||
pairs of subpasses.
|
||||
* pname:correlatedViewMaskCount is the number of correlation masks.
|
||||
* pname:pCorrelatedViewMasks is an array of view masks indicating sets of
|
||||
views that may: be more efficient to render concurrently.
|
||||
|
||||
Parameters defined by this structure with the same name as those in
|
||||
slink:VkRenderPassCreateInfo have the identical effect to those parameters;
|
||||
the child structures are variants of those used in
|
||||
slink:VkRenderPassCreateInfo which include pname:sType and pname:pNext
|
||||
parameters, allowing them to be extended.
|
||||
|
||||
If the slink:VkSubpassDescription2KHR::pname:viewMask member of any element
|
||||
of pname:pSubpasses is not zero, _multiview_ functionality is considered to
|
||||
be enabled for this render pass.
|
||||
|
||||
pname:correlatedViewMaskCount and pname:pCorrelatedViewMasks have the same
|
||||
effect as slink:VkRenderPassMultiviewCreateInfo::pname:correlationMaskCount
|
||||
and slink:VkRenderPassMultiviewCreateInfo::pname:pCorrelationMasks,
|
||||
respectively.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-None-03049]]
|
||||
If any two subpasses operate on attachments with overlapping ranges of
|
||||
the same sname:VkDeviceMemory object, and at least one subpass writes to
|
||||
that area of sname:VkDeviceMemory, a subpass dependency must: be
|
||||
included (either directly or via some intermediate subpasses) between
|
||||
them
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-attachment-03050]]
|
||||
If the pname:attachment member of any element of
|
||||
pname:pInputAttachments, pname:pColorAttachments,
|
||||
pname:pResolveAttachments or pname:pDepthStencilAttachment, or the
|
||||
attachment indexed by any element of pname:pPreserveAttachments in any
|
||||
given element of pname:pSubpasses is bound to a range of a
|
||||
sname:VkDeviceMemory object that overlaps with any other attachment in
|
||||
any subpass (including the same subpass), the
|
||||
sname:VkAttachmentDescription2KHR structures describing them must:
|
||||
include ename:VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in pname:flags
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-attachment-03051]]
|
||||
If the pname:attachment member of any element of
|
||||
pname:pInputAttachments, pname:pColorAttachments,
|
||||
pname:pResolveAttachments or pname:pDepthStencilAttachment, or any
|
||||
element of pname:pPreserveAttachments in any given element of
|
||||
pname:pSubpasses is not ename:VK_ATTACHMENT_UNUSED, it must: be less
|
||||
than pname:attachmentCount
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-pPreserveAttachments-03052]]
|
||||
The value of any element of the pname:pPreserveAttachments member in any
|
||||
given element of pname:pSubpasses must: not be
|
||||
ename:VK_ATTACHMENT_UNUSED
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-pAttachments-03053]]
|
||||
For any member of pname:pAttachments with a pname:loadOp equal to
|
||||
ename:VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment
|
||||
must: not specify a pname:layout equal to
|
||||
pname:VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or
|
||||
pname:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL.
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-pDependencies-03054]]
|
||||
For any element of pname:pDependencies, if the pname:srcSubpass is not
|
||||
ename:VK_SUBPASS_EXTERNAL, all stage flags included in the
|
||||
pname:srcStageMask member of that dependency must: be a pipeline stage
|
||||
supported by the <<synchronization-pipeline-stages-types, pipeline>>
|
||||
identified by the pname:pipelineBindPoint member of the source subpass.
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-pDependencies-03055]]
|
||||
For any element of pname:pDependencies, if the pname:dstSubpass is not
|
||||
ename:VK_SUBPASS_EXTERNAL, all stage flags included in the
|
||||
pname:dstStageMask member of that dependency must: be a pipeline stage
|
||||
supported by the <<synchronization-pipeline-stages-types, pipeline>>
|
||||
identified by the pname:pipelineBindPoint member of the source subpass.
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-pCorrelatedViewMasks-03056]]
|
||||
The set of bits included in any element of pname:pCorrelatedViewMasks
|
||||
must: not overlap with the set of bits included in any other element of
|
||||
pname:pCorrelatedViewMasks
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-viewMask-03057]]
|
||||
If the slink:VkSubpassDescription2KHR::pname:viewMask member of all
|
||||
elements of pname:pSubpasses is `0`, pname:correlatedViewMaskCount must:
|
||||
be `0`
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-viewMask-03058]]
|
||||
The slink:VkSubpassDescription2KHR::pname:viewMask member of all
|
||||
elements of pname:pSubpasses must: either all be `0`, or all not be `0`
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-viewMask-03059]]
|
||||
If the slink:VkSubpassDescription2KHR::pname:viewMask member of all
|
||||
elements of pname:pSubpasses is `0`, the pname:dependencyFlags member of
|
||||
any element of pname:pDependencies must: not include
|
||||
ename:VK_DEPENDENCY_VIEW_LOCAL_BIT
|
||||
* [[VUID-VkRenderPassCreateInfo2KHR-pDependencies-03060]]
|
||||
For any element of pname:pDependencies where its pname:srcSubpass member
|
||||
equals its pname:dstSubpass member, if the pname:viewMask member of the
|
||||
corresponding element of pname:pSubpasses includes more than one bit,
|
||||
its pname:dependencyFlags member must: include
|
||||
ename:VK_DEPENDENCY_VIEW_LOCAL_BIT
|
||||
****
|
||||
|
||||
include::../validity/structs/VkRenderPassCreateInfo2KHR.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkAttachmentDescription2KHR',desc='Structure specifying an attachment description',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkAttachmentDescription2KHR structure is defined as:
|
||||
|
||||
include::../api/structs/VkAttachmentDescription2KHR.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:flags is a bitmask of elink:VkAttachmentDescription2KHRFlagBits
|
||||
specifying additional properties of the attachment.
|
||||
* pname:format is a elink:VkFormat value specifying the format of the
|
||||
image that will be used for the attachment.
|
||||
* pname:samples is the number of samples of the image as defined in
|
||||
elink:VkSampleCountFlagBits.
|
||||
* pname:loadOp is a elink:VkAttachmentLoadOp value specifying how the
|
||||
contents of color and depth components of the attachment are treated at
|
||||
the beginning of the subpass where it is first used.
|
||||
* pname:storeOp is a elink:VkAttachmentStoreOp value specifying how the
|
||||
contents of color and depth components of the attachment are treated at
|
||||
the end of the subpass where it is last used.
|
||||
* pname:stencilLoadOp is a elink:VkAttachmentLoadOp value specifying how
|
||||
the contents of stencil components of the attachment are treated at the
|
||||
beginning of the subpass where it is first used.
|
||||
* pname:stencilStoreOp is a elink:VkAttachmentStoreOp value specifying how
|
||||
the contents of stencil components of the attachment are treated at the
|
||||
end of the last subpass where it is used.
|
||||
* pname:initialLayout is the layout the attachment image subresource will
|
||||
be in when a render pass instance begins.
|
||||
* pname:finalLayout is the layout the attachment image subresource will be
|
||||
transitioned to when a render pass instance ends.
|
||||
|
||||
Parameters defined by this structure with the same name as those in
|
||||
slink:VkAttachmentDescription have the identical effect to those parameters.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkAttachmentDescription2KHR-finalLayout-03061]]
|
||||
pname:finalLayout must: not be ename:VK_IMAGE_LAYOUT_UNDEFINED or
|
||||
ename:VK_IMAGE_LAYOUT_PREINITIALIZED
|
||||
****
|
||||
|
||||
include::../validity/structs/VkAttachmentDescription2KHR.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkSubpassDescription2KHR',desc='Structure specifying a subpass description',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkSubpassDescription2KHR structure is defined as:
|
||||
|
||||
include::../api/structs/VkSubpassDescription2KHR.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:flags is a bitmask of elink:VkSubpassDescriptionFlagBits
|
||||
specifying usage of the subpass.
|
||||
* pname:pipelineBindPoint is a elink:VkPipelineBindPoint value specifying
|
||||
the pipeline type supported for this subpass.
|
||||
* pname:viewMask is a bitfield of view indices describing which views
|
||||
rendering is broadcast to in this subpass, when multiview is enabled.
|
||||
* pname:inputAttachmentCount is the number of input attachments.
|
||||
* pname:pInputAttachments is an array of slink:VkAttachmentReference
|
||||
structures defining the input attachments for this subpass and their
|
||||
layouts.
|
||||
* pname:colorAttachmentCount is the number of color attachments.
|
||||
* pname:pColorAttachments is an array of slink:VkAttachmentReference
|
||||
structures defining the color attachments for this subpass and their
|
||||
layouts.
|
||||
* pname:pResolveAttachments is an optional array of
|
||||
pname:colorAttachmentCount slink:VkAttachmentReference structures
|
||||
defining the resolve attachments for this subpass and their layouts.
|
||||
* pname:pDepthStencilAttachment is a pointer to a
|
||||
slink:VkAttachmentReference specifying the depth/stencil attachment for
|
||||
this subpass and its layout.
|
||||
* pname:preserveAttachmentCount is the number of preserved attachments.
|
||||
* pname:pPreserveAttachments is an array of pname:preserveAttachmentCount
|
||||
render pass attachment indices identifying attachments that are not used
|
||||
by this subpass, but whose contents must: be preserved throughout the
|
||||
subpass.
|
||||
|
||||
Parameters defined by this structure with the same name as those in
|
||||
slink:VkSubpassDescription have the identical effect to those parameters.
|
||||
|
||||
pname:viewMask has the same effect for the described subpass as
|
||||
slink:VkRenderPassMultiviewCreateInfo::pname:pViewMasks has on each
|
||||
corresponding subpass.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkSubpassDescription2KHR-pipelineBindPoint-03062]]
|
||||
pname:pipelineBindPoint must: be ename:VK_PIPELINE_BIND_POINT_GRAPHICS
|
||||
* [[VUID-VkSubpassDescription2KHR-colorAttachmentCount-03063]]
|
||||
pname:colorAttachmentCount must: be less than or equal to
|
||||
sname:VkPhysicalDeviceLimits::pname:maxColorAttachments
|
||||
* [[VUID-VkSubpassDescription2KHR-loadOp-03064]]
|
||||
If the first use of an attachment in this render pass is as an input
|
||||
attachment, and the attachment is not also used as a color or
|
||||
depth/stencil attachment in the same subpass, then pname:loadOp must:
|
||||
not be ename:VK_ATTACHMENT_LOAD_OP_CLEAR
|
||||
* [[VUID-VkSubpassDescription2KHR-pResolveAttachments-03065]]
|
||||
If pname:pResolveAttachments is not `NULL`, for each resolve attachment
|
||||
that does not have the value ename:VK_ATTACHMENT_UNUSED, the
|
||||
corresponding color attachment must: not have the value
|
||||
ename:VK_ATTACHMENT_UNUSED
|
||||
* [[VUID-VkSubpassDescription2KHR-pResolveAttachments-03066]]
|
||||
If pname:pResolveAttachments is not `NULL`, the sample count of each
|
||||
element of pname:pColorAttachments must: be anything other than
|
||||
ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* [[VUID-VkSubpassDescription2KHR-pResolveAttachments-03067]]
|
||||
Any given element of pname:pResolveAttachments must: have a sample count
|
||||
of ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* [[VUID-VkSubpassDescription2KHR-pResolveAttachments-03068]]
|
||||
Any given element of pname:pResolveAttachments must: have the same
|
||||
elink:VkFormat as its corresponding color attachment
|
||||
* [[VUID-VkSubpassDescription2KHR-pColorAttachments-03069]]
|
||||
All attachments in pname:pColorAttachments that are not
|
||||
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
|
||||
ifdef::VK_AMD_mixed_attachment_samples[]
|
||||
* [[VUID-VkSubpassDescription2KHR-pColorAttachments-03070]]
|
||||
All attachments in pname:pColorAttachments that are not
|
||||
ename:VK_ATTACHMENT_UNUSED must: have a sample count that is smaller
|
||||
than or equal to the sample count of pname:pDepthStencilAttachment if it
|
||||
is not ename:VK_ATTACHMENT_UNUSED
|
||||
endif::VK_AMD_mixed_attachment_samples[]
|
||||
ifndef::VK_AMD_mixed_attachment_samples[]
|
||||
ifndef::VK_NV_framebuffer_mixed_samples[]
|
||||
* [[VUID-VkSubpassDescription2KHR-pDepthStencilAttachment-03071]]
|
||||
If pname:pDepthStencilAttachment is not ename:VK_ATTACHMENT_UNUSED and
|
||||
any attachments in pname:pColorAttachments are not
|
||||
ename:VK_ATTACHMENT_UNUSED, they must: have the same sample count
|
||||
endif::VK_NV_framebuffer_mixed_samples[]
|
||||
endif::VK_AMD_mixed_attachment_samples[]
|
||||
* [[VUID-VkSubpassDescription2KHR-None-03072]]
|
||||
If any input attachments are ename:VK_ATTACHMENT_UNUSED, then any
|
||||
pipelines bound during the subpass must: not access those input
|
||||
attachments from the fragment shader
|
||||
* [[VUID-VkSubpassDescription2KHR-attachment-03073]]
|
||||
The pname:attachment member of any element of pname:pPreserveAttachments
|
||||
must: not be ename:VK_ATTACHMENT_UNUSED
|
||||
* [[VUID-VkSubpassDescription2KHR-pPreserveAttachments-03074]]
|
||||
Any given element of pname:pPreserveAttachments must: not also be an
|
||||
element of any other member of the subpass description
|
||||
* [[VUID-VkSubpassDescription2KHR-layout-03075]]
|
||||
If any attachment is used as both an input attachment and a color or
|
||||
depth/stencil attachment, then each use must: use the same pname:layout
|
||||
ifdef::VK_NVX_multiview_per_view_attributes[]
|
||||
* [[VUID-VkSubpassDescription2KHR-flags-03076]]
|
||||
If pname:flags includes
|
||||
ename:VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must:
|
||||
also include ename:VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX.
|
||||
endif::VK_NVX_multiview_per_view_attributes[]
|
||||
* [[VUID-VkSubpassDescription2KHR-aspectMask-03175]]
|
||||
The pname:aspectMask member of any element of pname:pInputAttachments
|
||||
must: be a valid combination of elink:VkImageAspectFlagBits
|
||||
* [[VUID-VkSubpassDescription2KHR-aspectMask-03176]]
|
||||
The pname:aspectMask member of any element of pname:pInputAttachments
|
||||
must: not be `0`
|
||||
****
|
||||
|
||||
include::../validity/structs/VkSubpassDescription2KHR.txt[]
|
||||
--
|
||||
|
||||
|
||||
[open,refpage='VkAttachmentReference2KHR',desc='Structure specifying an attachment reference',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkAttachmentReference2KHR structure is defined as:
|
||||
|
||||
include::../api/structs/VkAttachmentReference2KHR.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:attachment is either an integer value identifying an attachment at
|
||||
the corresponding index in
|
||||
slink:VkRenderPassCreateInfo::pname:pAttachments, or
|
||||
ename:VK_ATTACHMENT_UNUSED to signify that this attachment is not used.
|
||||
* pname:layout is a elink:VkImageLayout value specifying the layout the
|
||||
attachment uses during the subpass.
|
||||
* pname:aspectMask is a mask of which aspect(s) can: be accessed within
|
||||
the specified subpass as an input attachment.
|
||||
|
||||
Parameters defined by this structure with the same name as those in
|
||||
slink:VkAttachmentReference have the identical effect to those parameters.
|
||||
|
||||
pname:aspectMask has the same effect for the described attachment as
|
||||
slink:VkInputAttachmentAspectReference::pname:aspectMask has on each
|
||||
corresponding attachment.
|
||||
It is ignored when this structure is used to describe anything other than an
|
||||
input attachment reference.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkAttachmentReference2KHR-layout-03077]]
|
||||
pname:layout must: not be ename:VK_IMAGE_LAYOUT_UNDEFINED or
|
||||
ename:VK_IMAGE_LAYOUT_PREINITIALIZED
|
||||
****
|
||||
|
||||
include::../validity/structs/VkAttachmentReference2KHR.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkSubpassDependency2KHR',desc='Structure specifying a subpass dependency',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkSubpassDependency2KHR structure is defined as:
|
||||
|
||||
include::../api/structs/VkSubpassDependency2KHR.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:srcSubpass is the subpass index of the first subpass in the
|
||||
dependency, or ename:VK_SUBPASS_EXTERNAL.
|
||||
* pname:dstSubpass is the subpass index of the second subpass in the
|
||||
dependency, or ename:VK_SUBPASS_EXTERNAL.
|
||||
* pname:srcStageMask is a bitmask of elink:VkPipelineStageFlagBits
|
||||
specifying the <<synchronization-pipeline-stages-masks, source stage
|
||||
mask>>.
|
||||
* pname:dstStageMask is a bitmask of elink:VkPipelineStageFlagBits
|
||||
specifying the <<synchronization-pipeline-stages-masks, destination
|
||||
stage mask>>
|
||||
* pname:srcAccessMask is a bitmask of elink:VkAccessFlagBits specifying a
|
||||
<<synchronization-access-masks, source access mask>>.
|
||||
* pname:dstAccessMask is a bitmask of elink:VkAccessFlagBits specifying a
|
||||
<<synchronization-access-masks, destination access mask>>.
|
||||
* pname:dependencyFlags is a bitmask of elink:VkDependencyFlagBits.
|
||||
* pname:viewOffset controls which views in the source subpass the views in
|
||||
the destination subpass depend on.
|
||||
|
||||
Parameters defined by this structure with the same name as those in
|
||||
slink:VkSubpassDependency have the identical effect to those parameters.
|
||||
|
||||
pname:viewOffset has the same effect for the described subpass dependency as
|
||||
slink:VkRenderPassMultiviewCreateInfo::pname:pViewOffsets has on each
|
||||
corresponding subpass dependency.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-VkSubpassDependency2KHR-srcSubpass-03078]]
|
||||
If pname:srcSubpass is not ename:VK_SUBPASS_EXTERNAL, pname:srcStageMask
|
||||
must: not include ename:VK_PIPELINE_STAGE_HOST_BIT
|
||||
* [[VUID-VkSubpassDependency2KHR-dstSubpass-03079]]
|
||||
If pname:dstSubpass is not ename:VK_SUBPASS_EXTERNAL, pname:dstStageMask
|
||||
must: not include ename:VK_PIPELINE_STAGE_HOST_BIT
|
||||
* [[VUID-VkSubpassDependency2KHR-srcStageMask-03080]]
|
||||
If the <<features-features-geometryShader,geometry shaders>> feature is
|
||||
not enabled, pname:srcStageMask must: not contain
|
||||
ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* [[VUID-VkSubpassDependency2KHR-dstStageMask-03081]]
|
||||
If the <<features-features-geometryShader,geometry shaders>> feature is
|
||||
not enabled, pname:dstStageMask must: not contain
|
||||
ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* [[VUID-VkSubpassDependency2KHR-srcStageMask-03082]]
|
||||
If the <<features-features-tessellationShader,tessellation shaders>>
|
||||
feature is not enabled, pname:srcStageMask must: not contain
|
||||
ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or
|
||||
ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* [[VUID-VkSubpassDependency2KHR-dstStageMask-03083]]
|
||||
If the <<features-features-tessellationShader,tessellation shaders>>
|
||||
feature is not enabled, pname:dstStageMask must: not contain
|
||||
ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or
|
||||
ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* [[VUID-VkSubpassDependency2KHR-srcSubpass-03084]]
|
||||
pname:srcSubpass must: be less than or equal to pname:dstSubpass, unless
|
||||
one of them is ename:VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies
|
||||
and ensure a valid execution order
|
||||
* [[VUID-VkSubpassDependency2KHR-srcSubpass-03085]]
|
||||
pname:srcSubpass and pname:dstSubpass must: not both be equal to
|
||||
ename:VK_SUBPASS_EXTERNAL
|
||||
* [[VUID-VkSubpassDependency2KHR-srcSubpass-03086]]
|
||||
If pname:srcSubpass is equal to pname:dstSubpass, pname:srcStageMask and
|
||||
pname:dstStageMask must: only contain one of
|
||||
ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||
ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
|
||||
ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
|
||||
ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
|
||||
ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
|
||||
ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
|
||||
ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
|
||||
ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
ename:VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
|
||||
ename:VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
|
||||
ename:VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
|
||||
ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, or
|
||||
ename:VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT
|
||||
* [[VUID-VkSubpassDependency2KHR-srcSubpass-03087]]
|
||||
If pname:srcSubpass is equal to pname:dstSubpass and not all of the
|
||||
stages in pname:srcStageMask and pname:dstStageMask are
|
||||
<<synchronization-framebuffer-regions,framebuffer-space stages>>, the
|
||||
<<synchronization-pipeline-stages-order, logically latest>> pipeline
|
||||
stage in pname:srcStageMask must: be
|
||||
<<synchronization-pipeline-stages-order, logically earlier>> than or
|
||||
equal to the <<synchronization-pipeline-stages-order, logically
|
||||
earliest>> pipeline stage in pname:dstStageMask
|
||||
* [[VUID-VkSubpassDependency2KHR-srcAccessMask-03088]]
|
||||
Any access flag included in pname:srcAccessMask must: be supported by
|
||||
one of the pipeline stages in pname:srcStageMask, as specified in the
|
||||
<<synchronization-access-types-supported, table of supported access
|
||||
types>>
|
||||
* [[VUID-VkSubpassDependency2KHR-dstAccessMask-03089]]
|
||||
Any access flag included in pname:dstAccessMask must: be supported by
|
||||
one of the pipeline stages in pname:dstStageMask, as specified in the
|
||||
<<synchronization-access-types-supported, table of supported access
|
||||
types>>
|
||||
* [[VUID-VkSubpassDependency2KHR-dependencyFlags-03090]]
|
||||
If pname:dependencyFlags includes ename:VK_DEPENDENCY_VIEW_LOCAL_BIT,
|
||||
pname:srcSubpass must: not be equal to ename:VK_SUBPASS_EXTERNAL
|
||||
* [[VUID-VkSubpassDependency2KHR-dependencyFlags-03091]]
|
||||
If pname:dependencyFlags includes ename:VK_DEPENDENCY_VIEW_LOCAL_BIT,
|
||||
pname:dstSubpass must: not be equal to ename:VK_SUBPASS_EXTERNAL
|
||||
* [[VUID-VkSubpassDependency2KHR-dependencyFlags-03092]]
|
||||
If pname:dependencyFlags does not include
|
||||
ename:VK_DEPENDENCY_VIEW_LOCAL_BIT, pname:viewOffset must: be `0`
|
||||
* [[VUID-VkSubpassDependency2KHR-viewOffset-03093]]
|
||||
If pname:viewOffset is not `0`, pname:srcSubpass must: not be equal to
|
||||
pname:dstSubpass.
|
||||
****
|
||||
|
||||
include::../validity/structs/VkSubpassDependency2KHR.txt[]
|
||||
--
|
||||
|
||||
|
||||
endif::VK_KHR_create_renderpass2[]
|
||||
|
||||
|
||||
[open,refpage='vkDestroyRenderPass',desc='Destroy a render pass object',type='protos']
|
||||
--
|
||||
|
||||
|
@ -1788,6 +2257,122 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance2[]
|
|||
include::../validity/protos/vkCmdBeginRenderPass.txt[]
|
||||
--
|
||||
|
||||
ifdef::VK_KHR_create_renderpass2[]
|
||||
[open,refpage='vkCmdBeginRenderPass2KHR',desc='Begin a new render pass',type='protos']
|
||||
--
|
||||
|
||||
Alternatively to begin a render pass, call:
|
||||
|
||||
include::../api/protos/vkCmdBeginRenderPass2KHR.txt[]
|
||||
|
||||
* pname:commandBuffer is the command buffer in which to record the
|
||||
command.
|
||||
* pname:pRenderPassBegin is a pointer to a slink:VkRenderPassBeginInfo
|
||||
structure (defined below) which indicates the render pass to begin an
|
||||
instance of, and the framebuffer the instance uses.
|
||||
* pname:pSubpassBeginInfo is a pointer to a slink:VkSubpassBeginInfoKHR
|
||||
structure which contains information about the subpass which is about to
|
||||
begin rendering.
|
||||
|
||||
After beginning a render pass instance, the command buffer is ready to
|
||||
record the commands for the first subpass of that render pass.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03094]]
|
||||
If any of the pname:initialLayout or pname:finalLayout member of the
|
||||
sname:VkAttachmentDescription structures or the pname:layout member of
|
||||
the sname:VkAttachmentReference structures specified when creating the
|
||||
render pass specified in the pname:renderPass member of
|
||||
pname:pRenderPassBegin is ename:VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
|
||||
then the corresponding attachment image subresource of the framebuffer
|
||||
specified in the pname:framebuffer member of pname:pRenderPassBegin
|
||||
must: have been created with ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
|
||||
set
|
||||
// The VU below comes in an alternate version when the extension is
|
||||
// enabled.
|
||||
ifndef::VK_KHR_maintenance2[]
|
||||
* [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03095]]
|
||||
If any of the pname:initialLayout or pname:finalLayout member of the
|
||||
sname:VkAttachmentDescription structures or the pname:layout member of
|
||||
the sname:VkAttachmentReference structures specified when creating the
|
||||
render pass specified in the pname:renderPass member of
|
||||
pname:pRenderPassBegin is
|
||||
ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or
|
||||
ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the
|
||||
corresponding attachment image subresource of the framebuffer specified
|
||||
in the pname:framebuffer member of pname:pRenderPassBegin must: have
|
||||
been created with ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set
|
||||
endif::VK_KHR_maintenance2[]
|
||||
// The nested ifdefs are there in anticipation of the hoped-for day when the
|
||||
// VU extractor and validation layers can handle VU with imbedded
|
||||
// conditionals.
|
||||
ifdef::VK_KHR_maintenance2[]
|
||||
* [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03096]]
|
||||
If any of the pname:initialLayout or pname:finalLayout member of the
|
||||
sname:VkAttachmentDescription structures or the pname:layout member of
|
||||
the sname:VkAttachmentReference structures specified when creating the
|
||||
render pass specified in the pname:renderPass member of
|
||||
pname:pRenderPassBegin is
|
||||
// ifdef::VK_KHR_maintenance2[]
|
||||
ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
|
||||
ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
|
||||
// endif::VK_KHR_maintenance2[]
|
||||
ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or
|
||||
ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the
|
||||
corresponding attachment image subresource of the framebuffer specified
|
||||
in the pname:framebuffer member of pname:pRenderPassBegin must: have
|
||||
been created with ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set
|
||||
endif::VK_KHR_maintenance2[]
|
||||
* [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03097]]
|
||||
If any of the pname:initialLayout or pname:finalLayout member of the
|
||||
sname:VkAttachmentDescription structures or the pname:layout member of
|
||||
the sname:VkAttachmentReference structures specified when creating the
|
||||
render pass specified in the pname:renderPass member of
|
||||
pname:pRenderPassBegin is ename:VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
|
||||
then the corresponding attachment image subresource of the framebuffer
|
||||
specified in the pname:framebuffer member of pname:pRenderPassBegin
|
||||
must: have been created with ename:VK_IMAGE_USAGE_SAMPLED_BIT or
|
||||
ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set
|
||||
* [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03098]]
|
||||
If any of the pname:initialLayout or pname:finalLayout member of the
|
||||
sname:VkAttachmentDescription structures or the pname:layout member of
|
||||
the sname:VkAttachmentReference structures specified when creating the
|
||||
render pass specified in the pname:renderPass member of
|
||||
pname:pRenderPassBegin is ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
|
||||
then the corresponding attachment image subresource of the framebuffer
|
||||
specified in the pname:framebuffer member of pname:pRenderPassBegin
|
||||
must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT set
|
||||
* [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03099]]
|
||||
If any of the pname:initialLayout or pname:finalLayout member of the
|
||||
sname:VkAttachmentDescription structures or the pname:layout member of
|
||||
the sname:VkAttachmentReference structures specified when creating the
|
||||
render pass specified in the pname:renderPass member of
|
||||
pname:pRenderPassBegin is ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
|
||||
then the corresponding attachment image subresource of the framebuffer
|
||||
specified in the pname:framebuffer member of pname:pRenderPassBegin
|
||||
must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT set
|
||||
* [[VUID-vkCmdBeginRenderPass2KHR-initialLayout-03100]]
|
||||
If any of the pname:initialLayout members of the
|
||||
sname:VkAttachmentDescription structures specified when creating the
|
||||
render pass specified in the pname:renderPass member of
|
||||
pname:pRenderPassBegin is not ename:VK_IMAGE_LAYOUT_UNDEFINED, then each
|
||||
such pname:initialLayout must: be equal to the current layout of the
|
||||
corresponding attachment image subresource of the framebuffer specified
|
||||
in the pname:framebuffer member of pname:pRenderPassBegin
|
||||
* [[VUID-vkCmdBeginRenderPass2KHR-srcStageMask-03101]]
|
||||
The pname:srcStageMask and pname:dstStageMask members of any element of
|
||||
the pname:pDependencies member of slink:VkRenderPassCreateInfo used to
|
||||
create pname:renderPass must: be supported by the capabilities of the
|
||||
queue family identified by the pname:queueFamilyIndex member of the
|
||||
slink:VkCommandPoolCreateInfo used to create the command pool which
|
||||
pname:commandBuffer was allocated from.
|
||||
****
|
||||
|
||||
include::../validity/protos/vkCmdBeginRenderPass2KHR.txt[]
|
||||
--
|
||||
endif::VK_KHR_create_renderpass2[]
|
||||
|
||||
[open,refpage='VkRenderPassBeginInfo',desc='Structure specifying render pass begin info',type='structs']
|
||||
--
|
||||
|
||||
|
@ -1982,6 +2567,23 @@ include::../validity/structs/VkSubpassSampleLocationsEXT.txt[]
|
|||
|
||||
endif::VK_EXT_sample_locations[]
|
||||
|
||||
ifdef::VK_KHR_create_renderpass2[]
|
||||
[open,refpage='VkSubpassBeginInfoKHR',desc='Structure specifying subpass begin info',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkSubpassBeginInfoKHR structure is defined as:
|
||||
|
||||
include::../api/structs/VkSubpassBeginInfoKHR.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
* pname:contents is a elink:VkSubpassContents value specifying how the
|
||||
commands in the next subpass will be provided.
|
||||
|
||||
include::../validity/structs/VkSubpassBeginInfoKHR.txt[]
|
||||
--
|
||||
endif::VK_KHR_create_renderpass2[]
|
||||
|
||||
[open,refpage='VkSubpassContents',desc='Specify how commands in the first subpass of a render pass are provided',type='enums']
|
||||
--
|
||||
|
||||
|
@ -2153,6 +2755,42 @@ commands for that subpass.
|
|||
include::../validity/protos/vkCmdNextSubpass.txt[]
|
||||
--
|
||||
|
||||
ifdef::VK_KHR_create_renderpass2[]
|
||||
|
||||
[open,refpage='vkCmdNextSubpass2KHR',desc='Transition to the next subpass of a render pass',type='protos']
|
||||
--
|
||||
|
||||
To transition to the next subpass in the render pass instance after
|
||||
recording the commands for a subpass, call:
|
||||
|
||||
include::../api/protos/vkCmdNextSubpass2KHR.txt[]
|
||||
|
||||
* pname:commandBuffer is the command buffer in which to record the
|
||||
command.
|
||||
* pname:pSubpassBeginInfo is a pointer to a slink:VkSubpassBeginInfoKHR
|
||||
structure which contains information about the subpass which is about to
|
||||
begin rendering.
|
||||
* pname:pSubpassEndInfo is a pointer to a slink:VkSubpassEndInfoKHR
|
||||
structure which contains information about how the previous subpass will
|
||||
be ended.
|
||||
|
||||
fname:vkCmdNextSubpass2KHR is semantically identical to
|
||||
flink:vkCmdNextSubpass, except that it is extensible, and that
|
||||
pname:contents is provided as part of an extensible structure instead of as
|
||||
a flat parameter.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-vkCmdNextSubpass2KHR-None-03102]]
|
||||
The current subpass index must: be less than the number of subpasses in
|
||||
the render pass minus one
|
||||
****
|
||||
|
||||
include::../validity/protos/vkCmdNextSubpass2KHR.txt[]
|
||||
--
|
||||
|
||||
endif::VK_KHR_create_renderpass2[]
|
||||
|
||||
[open,refpage='vkCmdEndRenderPass',desc='End the current render pass',type='protos']
|
||||
--
|
||||
|
||||
|
@ -2177,3 +2815,47 @@ the final subpass.
|
|||
include::../validity/protos/vkCmdEndRenderPass.txt[]
|
||||
--
|
||||
|
||||
|
||||
ifdef::VK_KHR_create_renderpass2[]
|
||||
[open,refpage='vkCmdEndRenderPass2KHR',desc='End the current render pass',type='protos']
|
||||
--
|
||||
|
||||
To record a command to end a render pass instance after recording the
|
||||
commands for the last subpass, call:
|
||||
|
||||
include::../api/protos/vkCmdEndRenderPass2KHR.txt[]
|
||||
|
||||
* pname:commandBuffer is the command buffer in which to end the current
|
||||
render pass instance.
|
||||
* pname:pSubpassEndInfo is a pointer to a slink:VkSubpassEndInfoKHR
|
||||
structure which contains information about how the previous subpass will
|
||||
be ended.
|
||||
|
||||
fname:vkCmdEndRenderPass2KHR is semantically identical to
|
||||
flink:vkCmdEndRenderPass, except that it is extensible.
|
||||
|
||||
.Valid Usage
|
||||
****
|
||||
* [[VUID-vkCmdEndRenderPass2KHR-None-03103]]
|
||||
The current subpass index must: be equal to the number of subpasses in
|
||||
the render pass minus one
|
||||
****
|
||||
|
||||
include::../validity/protos/vkCmdEndRenderPass2KHR.txt[]
|
||||
--
|
||||
|
||||
[open,refpage='VkSubpassEndInfoKHR',desc='Structure specifying subpass end info',type='structs']
|
||||
--
|
||||
|
||||
The sname:VkSubpassEndInfoKHR structure is defined as:
|
||||
|
||||
include::../api/structs/VkSubpassEndInfoKHR.txt[]
|
||||
|
||||
* pname:sType is the type of this structure.
|
||||
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
||||
|
||||
include::../validity/structs/VkSubpassEndInfoKHR.txt[]
|
||||
--
|
||||
|
||||
endif::VK_KHR_create_renderpass2[]
|
||||
|
||||
|
|
|
@ -298,6 +298,11 @@ ifdef::VK_NVX_device_generated_commands[]
|
|||
the pipeline where device-side generation of commands via
|
||||
flink:vkCmdProcessCommandsNVX is handled.
|
||||
endif::VK_NVX_device_generated_commands[]
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
* ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT specifies the
|
||||
stage of the pipeline where the predicate of conditional rendering is
|
||||
consumed.
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT specifies the stage of the
|
||||
pipeline where Draw/DispatchIndirect data structures are consumed.
|
||||
ifdef::VK_NVX_device_generated_commands[]
|
||||
|
@ -349,6 +354,9 @@ endif::VK_NVX_device_generated_commands[]
|
|||
* ename:VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT specifies the execution of all
|
||||
graphics pipeline stages, and is equivalent to the logical OR of:
|
||||
** ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
** ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
** ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
||||
** ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
|
||||
** ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
|
||||
|
@ -443,6 +451,9 @@ and <<devsandqueues-queues,Queues>>.
|
|||
|====
|
||||
|Pipeline stage flag | Required queue capability flag
|
||||
|ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT | None required
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
|ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT | ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
|ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT
|
||||
|ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
||||
|ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | ename:VK_QUEUE_GRAPHICS_BIT
|
||||
|
@ -537,6 +548,13 @@ guaranteed:
|
|||
|
||||
* ename:VK_PIPELINE_STAGE_HOST_BIT
|
||||
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
For conditional rendering operations, the pipeline stage where predicate
|
||||
read happens has no particular order relative to other stages.
|
||||
|
||||
* ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
|
||||
ifdef::VK_NVX_device_generated_commands[]
|
||||
For the command processing pipeline, the following stages occur in this
|
||||
order:
|
||||
|
@ -574,6 +592,10 @@ Access types that can: be set in an access mask include:
|
|||
|
||||
include::../api/enums/VkAccessFlagBits.txt[]
|
||||
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
* ename:VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT specifies read access
|
||||
to a predicate as part of conditional rendering.
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
* ename:VK_ACCESS_INDIRECT_COMMAND_READ_BIT specifies read access to an
|
||||
indirect command structure read as part of an indirect drawing or
|
||||
dispatch command.
|
||||
|
@ -673,6 +695,9 @@ perform that type of access.
|
|||
[cols="50,50",options="header"]
|
||||
|====
|
||||
|Access flag | Supported pipeline stages
|
||||
ifdef::VK_EXT_conditional_rendering[]
|
||||
|ename:VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT | ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
|
||||
endif::VK_EXT_conditional_rendering[]
|
||||
|ename:VK_ACCESS_INDIRECT_COMMAND_READ_BIT | ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
|
||||
|ename:VK_ACCESS_INDEX_READ_BIT | ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
|
||||
|ename:VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT | ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
|
||||
|
|
|
@ -191,7 +191,10 @@ class ValidUsageToJsonTreeprocessor < Extensions::Treeprocessor
|
|||
|
||||
# Print out a list of VUIDs that were not extracted
|
||||
if detected_vuid_list.length != 0
|
||||
puts 'The following VUIDs were not successfully extracted from the spec:'
|
||||
puts 'Some VUIDs were not successfully extracted from the specification.'
|
||||
puts 'This is usually down to them appearing outside of a refpage (open)'
|
||||
puts 'block; try checking where they are included.'
|
||||
puts 'The following VUIDs were not extracted:'
|
||||
detected_vuid_list.each do |vuid|
|
||||
puts "\t * " + vuid
|
||||
end
|
||||
|
|
|
@ -43,7 +43,7 @@ extern "C" {
|
|||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 79
|
||||
#define VK_HEADER_VERSION 80
|
||||
|
||||
|
||||
#define VK_NULL_HANDLE 0
|
||||
|
@ -320,6 +320,9 @@ typedef enum VkStructureType {
|
|||
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
|
||||
VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
|
||||
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
|
||||
VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
|
||||
VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
|
||||
VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
|
||||
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
|
||||
|
@ -341,6 +344,13 @@ typedef enum VkStructureType {
|
|||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
|
||||
VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
|
||||
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
|
||||
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
|
||||
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
|
||||
VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
|
||||
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
|
||||
VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
|
||||
VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
|
||||
VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
|
||||
VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
|
||||
VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
|
||||
|
@ -389,6 +399,7 @@ typedef enum VkStructureType {
|
|||
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
|
||||
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
|
||||
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
|
||||
VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
|
||||
VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
|
||||
|
@ -1367,6 +1378,7 @@ typedef enum VkPipelineStageFlagBits {
|
|||
VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
|
||||
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
|
||||
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
|
||||
VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
|
||||
VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
|
||||
VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkPipelineStageFlagBits;
|
||||
|
@ -1455,6 +1467,7 @@ typedef enum VkBufferUsageFlagBits {
|
|||
VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
|
||||
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
|
||||
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
|
||||
VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
|
||||
VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkBufferUsageFlagBits;
|
||||
typedef VkFlags VkBufferUsageFlags;
|
||||
|
@ -1566,6 +1579,7 @@ typedef enum VkAccessFlagBits {
|
|||
VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
|
||||
VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
|
||||
VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
|
||||
VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
|
||||
VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
|
||||
VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
|
||||
VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
|
||||
|
@ -5435,6 +5449,114 @@ VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
|
|||
const void* pData);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_create_renderpass2 1
|
||||
#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
|
||||
#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
|
||||
|
||||
typedef struct VkAttachmentDescription2KHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkAttachmentDescriptionFlags flags;
|
||||
VkFormat format;
|
||||
VkSampleCountFlagBits samples;
|
||||
VkAttachmentLoadOp loadOp;
|
||||
VkAttachmentStoreOp storeOp;
|
||||
VkAttachmentLoadOp stencilLoadOp;
|
||||
VkAttachmentStoreOp stencilStoreOp;
|
||||
VkImageLayout initialLayout;
|
||||
VkImageLayout finalLayout;
|
||||
} VkAttachmentDescription2KHR;
|
||||
|
||||
typedef struct VkAttachmentReference2KHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t attachment;
|
||||
VkImageLayout layout;
|
||||
VkImageAspectFlags aspectMask;
|
||||
} VkAttachmentReference2KHR;
|
||||
|
||||
typedef struct VkSubpassDescription2KHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkSubpassDescriptionFlags flags;
|
||||
VkPipelineBindPoint pipelineBindPoint;
|
||||
uint32_t viewMask;
|
||||
uint32_t inputAttachmentCount;
|
||||
const VkAttachmentReference2KHR* pInputAttachments;
|
||||
uint32_t colorAttachmentCount;
|
||||
const VkAttachmentReference2KHR* pColorAttachments;
|
||||
const VkAttachmentReference2KHR* pResolveAttachments;
|
||||
const VkAttachmentReference2KHR* pDepthStencilAttachment;
|
||||
uint32_t preserveAttachmentCount;
|
||||
const uint32_t* pPreserveAttachments;
|
||||
} VkSubpassDescription2KHR;
|
||||
|
||||
typedef struct VkSubpassDependency2KHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t srcSubpass;
|
||||
uint32_t dstSubpass;
|
||||
VkPipelineStageFlags srcStageMask;
|
||||
VkPipelineStageFlags dstStageMask;
|
||||
VkAccessFlags srcAccessMask;
|
||||
VkAccessFlags dstAccessMask;
|
||||
VkDependencyFlags dependencyFlags;
|
||||
int32_t viewOffset;
|
||||
} VkSubpassDependency2KHR;
|
||||
|
||||
typedef struct VkRenderPassCreateInfo2KHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkRenderPassCreateFlags flags;
|
||||
uint32_t attachmentCount;
|
||||
const VkAttachmentDescription2KHR* pAttachments;
|
||||
uint32_t subpassCount;
|
||||
const VkSubpassDescription2KHR* pSubpasses;
|
||||
uint32_t dependencyCount;
|
||||
const VkSubpassDependency2KHR* pDependencies;
|
||||
uint32_t correlatedViewMaskCount;
|
||||
const uint32_t* pCorrelatedViewMasks;
|
||||
} VkRenderPassCreateInfo2KHR;
|
||||
|
||||
typedef struct VkSubpassBeginInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkSubpassContents contents;
|
||||
} VkSubpassBeginInfoKHR;
|
||||
|
||||
typedef struct VkSubpassEndInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
} VkSubpassEndInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
|
||||
VkDevice device,
|
||||
const VkRenderPassCreateInfo2KHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkRenderPass* pRenderPass);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkRenderPassBeginInfo* pRenderPassBegin,
|
||||
const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
|
||||
const VkSubpassEndInfoKHR* pSubpassEndInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkSubpassEndInfoKHR* pSubpassEndInfo);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_shared_presentable_image 1
|
||||
#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
|
||||
#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
|
||||
|
@ -5843,6 +5965,20 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
|
|||
uint32_t stride);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_8bit_storage 1
|
||||
#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
|
||||
#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
|
||||
|
||||
typedef struct VkPhysicalDevice8BitStorageFeaturesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 storageBuffer8BitAccess;
|
||||
VkBool32 uniformAndStorageBuffer8BitAccess;
|
||||
VkBool32 storagePushConstant8;
|
||||
} VkPhysicalDevice8BitStorageFeaturesKHR;
|
||||
|
||||
|
||||
|
||||
#define VK_EXT_debug_report 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
||||
|
||||
|
@ -6293,6 +6429,51 @@ typedef struct VkValidationFlagsEXT {
|
|||
#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
|
||||
|
||||
|
||||
#define VK_EXT_conditional_rendering 1
|
||||
#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
|
||||
#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
|
||||
|
||||
|
||||
typedef enum VkConditionalRenderingFlagBitsEXT {
|
||||
VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
|
||||
VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||
} VkConditionalRenderingFlagBitsEXT;
|
||||
typedef VkFlags VkConditionalRenderingFlagsEXT;
|
||||
|
||||
typedef struct VkConditionalRenderingBeginInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkBuffer buffer;
|
||||
VkDeviceSize offset;
|
||||
VkConditionalRenderingFlagsEXT flags;
|
||||
} VkConditionalRenderingBeginInfoEXT;
|
||||
|
||||
typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 conditionalRendering;
|
||||
VkBool32 inheritedConditionalRendering;
|
||||
} VkPhysicalDeviceConditionalRenderingFeaturesEXT;
|
||||
|
||||
typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkBool32 conditionalRenderingEnable;
|
||||
} VkCommandBufferInheritanceConditionalRenderingInfoEXT;
|
||||
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
|
||||
VkCommandBuffer commandBuffer);
|
||||
#endif
|
||||
|
||||
#define VK_NVX_device_generated_commands 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# The value to start tagging VU statements at, unless overridden by -nextvu
|
||||
startVUID = 1977
|
||||
startVUID = 1988
|
||||
|
|
190
xml/vk.xml
190
xml/vk.xml
|
@ -146,7 +146,7 @@ server.
|
|||
<type category="define">// Vulkan 1.1 version number
|
||||
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
|
||||
<type category="define">// Version of this file
|
||||
#define <name>VK_HEADER_VERSION</name> 79</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 80</type>
|
||||
|
||||
<type category="define">
|
||||
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
|
||||
|
@ -305,6 +305,7 @@ server.
|
|||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessengerCallbackDataFlagsEXT</name>;</type>
|
||||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationConservativeStateCreateFlagsEXT</name>;</type>
|
||||
<type requires="VkDescriptorBindingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorBindingFlagsEXT</name>;</type>
|
||||
<type requires="VkConditionalRenderingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkConditionalRenderingFlagsEXT</name>;</type>
|
||||
|
||||
<comment>Types which can be void pointers or class pointers, selected at compile time</comment>
|
||||
<type category="handle"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type>
|
||||
|
@ -437,6 +438,7 @@ server.
|
|||
<type name="VkDependencyFlagBits" category="enum"/>
|
||||
<type name="VkObjectType" category="enum"/>
|
||||
<type name="VkDescriptorBindingFlagBitsEXT" category="enum"/>
|
||||
<type name="VkConditionalRenderingFlagBitsEXT" category="enum"/>
|
||||
|
||||
<comment>Extensions</comment>
|
||||
<type name="VkIndirectCommandsLayoutUsageFlagBitsNVX" category="enum"/>
|
||||
|
@ -2698,6 +2700,13 @@ server.
|
|||
<member><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>supportsTextureGatherLODBiasAMD</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkConditionalRenderingBeginInfoEXT">
|
||||
<member values="VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBuffer</type> <name>buffer</name></member>
|
||||
<member><type>VkDeviceSize</type> <name>offset</name></member>
|
||||
<member optional="true"><type>VkConditionalRenderingFlagsEXT</type> <name>flags</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkProtectedSubmitInfo" structextends="VkSubmitInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
|
@ -3049,6 +3058,75 @@ server.
|
|||
<member><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint32_t</type> <name>maxVariableDescriptorCount</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkAttachmentDescription2KHR">
|
||||
<member values="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkAttachmentDescriptionFlags</type> <name>flags</name></member>
|
||||
<member><type>VkFormat</type> <name>format</name></member>
|
||||
<member><type>VkSampleCountFlagBits</type> <name>samples</name></member>
|
||||
<member><type>VkAttachmentLoadOp</type> <name>loadOp</name><comment>Load operation for color or depth data</comment></member>
|
||||
<member><type>VkAttachmentStoreOp</type> <name>storeOp</name><comment>Store operation for color or depth data</comment></member>
|
||||
<member><type>VkAttachmentLoadOp</type> <name>stencilLoadOp</name><comment>Load operation for stencil data</comment></member>
|
||||
<member><type>VkAttachmentStoreOp</type> <name>stencilStoreOp</name><comment>Store operation for stencil data</comment></member>
|
||||
<member><type>VkImageLayout</type> <name>initialLayout</name></member>
|
||||
<member><type>VkImageLayout</type> <name>finalLayout</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkAttachmentReference2KHR">
|
||||
<member values="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint32_t</type> <name>attachment</name></member>
|
||||
<member><type>VkImageLayout</type> <name>layout</name></member>
|
||||
<member noautovalidity="true"><type>VkImageAspectFlags</type> <name>aspectMask</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkSubpassDescription2KHR">
|
||||
<member values="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkSubpassDescriptionFlags</type> <name>flags</name></member>
|
||||
<member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member>
|
||||
<member><type>uint32_t</type> <name>viewMask</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>inputAttachmentCount</name></member>
|
||||
<member len="inputAttachmentCount">const <type>VkAttachmentReference2KHR</type>* <name>pInputAttachments</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
|
||||
<member len="colorAttachmentCount">const <type>VkAttachmentReference2KHR</type>* <name>pColorAttachments</name></member>
|
||||
<member optional="true" len="colorAttachmentCount">const <type>VkAttachmentReference2KHR</type>* <name>pResolveAttachments</name></member>
|
||||
<member optional="true">const <type>VkAttachmentReference2KHR</type>* <name>pDepthStencilAttachment</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>preserveAttachmentCount</name></member>
|
||||
<member len="preserveAttachmentCount">const <type>uint32_t</type>* <name>pPreserveAttachments</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkSubpassDependency2KHR">
|
||||
<member values="VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint32_t</type> <name>srcSubpass</name></member>
|
||||
<member><type>uint32_t</type> <name>dstSubpass</name></member>
|
||||
<member><type>VkPipelineStageFlags</type> <name>srcStageMask</name></member>
|
||||
<member><type>VkPipelineStageFlags</type> <name>dstStageMask</name></member>
|
||||
<member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member>
|
||||
<member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member>
|
||||
<member optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></member>
|
||||
<member optional="true"><type>int32_t</type> <name>viewOffset</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkRenderPassCreateInfo2KHR">
|
||||
<member values="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkRenderPassCreateFlags</type> <name>flags</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
|
||||
<member len="attachmentCount">const <type>VkAttachmentDescription2KHR</type>* <name>pAttachments</name></member>
|
||||
<member><type>uint32_t</type> <name>subpassCount</name></member>
|
||||
<member len="subpassCount">const <type>VkSubpassDescription2KHR</type>* <name>pSubpasses</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>dependencyCount</name></member>
|
||||
<member len="dependencyCount">const <type>VkSubpassDependency2KHR</type>* <name>pDependencies</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>correlatedViewMaskCount</name></member>
|
||||
<member len="correlatedViewMaskCount">const <type>uint32_t</type>* <name>pCorrelatedViewMasks</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkSubpassBeginInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkSubpassContents</type> <name>contents</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkSubpassEndInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkVertexInputBindingDivisorDescriptionEXT">
|
||||
<member><type>uint32_t</type> <name>binding</name></member>
|
||||
<member><type>uint32_t</type> <name>divisor</name></member>
|
||||
|
@ -3097,11 +3175,29 @@ server.
|
|||
<member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
|
||||
<member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkCommandBufferInheritanceConditionalRenderingInfoEXT" structextends="VkCommandBufferInheritanceInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member>const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>conditionalRenderingEnable</name><comment>Whether this secondary command buffer may be executed during an active conditional rendering</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="VkExternalFormatANDROID" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint64_t</type> <name>externalFormat</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDevice8BitStorageFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member noautovalidity="true"><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>storageBuffer8BitAccess</name><comment>8-bit integer variables supported in StorageBuffer</comment></member>
|
||||
<member><type>VkBool32</type> <name>uniformAndStorageBuffer8BitAccess</name><comment>8-bit integer variables supported in StorageBuffer and Uniform</comment></member>
|
||||
<member><type>VkBool32</type> <name>storagePushConstant8</name><comment>8-bit integer variables supported in PushConstant</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceConditionalRenderingFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member noautovalidity="true"><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>conditionalRendering</name></member>
|
||||
<member><type>VkBool32</type> <name>inheritedConditionalRendering</name></member>
|
||||
</type>
|
||||
</types>
|
||||
|
||||
<comment>Vulkan enumerant (token) definitions</comment>
|
||||
|
@ -4184,6 +4280,9 @@ server.
|
|||
<enum value="0x10003" name="VK_VENDOR_ID_KAZAN" comment="Kazan Software Renderer"/>
|
||||
<unused start="0x10004" comment="This is the next unused available Khronos vendor ID"/>
|
||||
</enums>
|
||||
<enums name="VkConditionalRenderingFlagBitsEXT" type="bitmask">
|
||||
<enum bitpos="0" name="VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"/>
|
||||
</enums>
|
||||
|
||||
<commands comment="Vulkan command definitions">
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
|
||||
|
@ -5081,6 +5180,15 @@ server.
|
|||
<param><type>VkQueryPool</type> <name>queryPool</name></param>
|
||||
<param><type>uint32_t</type> <name>query</name></param>
|
||||
</command>
|
||||
<command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdBeginConditionalRenderingEXT</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param>const <type>VkConditionalRenderingBeginInfoEXT</type>* <name>pConditionalRenderingBegin</name></param>
|
||||
</command>
|
||||
<command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdEndConditionalRenderingEXT</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
</command>
|
||||
<command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdResetQueryPool</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
|
@ -6075,6 +6183,30 @@ server.
|
|||
<param><type>VkDeviceSize</type> <name>dstOffset</name></param>
|
||||
<param><type>uint32_t</type> <name>marker</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkCreateRenderPass2KHR</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
<param>const <type>VkRenderPassCreateInfo2KHR</type>* <name>pCreateInfo</name></param>
|
||||
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
|
||||
<param><type>VkRenderPass</type>* <name>pRenderPass</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="outside" cmdbufferlevel="primary" pipeline="graphics">
|
||||
<proto><type>void</type> <name>vkCmdBeginRenderPass2KHR</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param>const <type>VkRenderPassBeginInfo</type>* <name>pRenderPassBegin</name></param>
|
||||
<param>const <type>VkSubpassBeginInfoKHR</type>* <name>pSubpassBeginInfo</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="inside" cmdbufferlevel="primary" pipeline="graphics">
|
||||
<proto><type>void</type> <name>vkCmdNextSubpass2KHR</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param>const <type>VkSubpassBeginInfoKHR</type>* <name>pSubpassBeginInfo</name></param>
|
||||
<param>const <type>VkSubpassEndInfoKHR</type>* <name>pSubpassEndInfo</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="inside" cmdbufferlevel="primary" pipeline="graphics">
|
||||
<proto><type>void</type> <name>vkCmdEndRenderPass2KHR</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param>const <type>VkSubpassEndInfoKHR</type>* <name>pSubpassEndInfo</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR">
|
||||
<proto><type>VkResult</type> <name>vkGetAndroidHardwareBufferPropertiesANDROID</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
|
@ -7535,10 +7667,23 @@ server.
|
|||
<enum value="1" extends="VkDescriptorUpdateTemplateType" name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR" comment="Create descriptor update template for pushed descriptor updates"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_82" number="82" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled">
|
||||
<extension name="VK_EXT_conditional_rendering" number="82" type="device" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_EXT_EXTENSION_82_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_extension_82"" name="VK_EXT_EXTENSION_82_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_conditional_rendering"" name="VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"/>
|
||||
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"/>
|
||||
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"/>
|
||||
<type name="VkConditionalRenderingFlagsEXT"/>
|
||||
<type name="VkConditionalRenderingFlagBitsEXT"/>
|
||||
<enum bitpos="20" extends="VkAccessFlagBits" name="VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT" comment="read access flag for reading conditional rendering predicate"/>
|
||||
<enum bitpos="9" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT" comment="Specifies the buffer can be used as predicate in conditional rendering"/>
|
||||
<enum bitpos="18" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" comment="A pipeline stage for conditional rendering predicate fetch"/>
|
||||
<command name="vkCmdBeginConditionalRenderingEXT"/>
|
||||
<command name="vkCmdEndConditionalRenderingEXT"/>
|
||||
<type name="VkConditionalRenderingBeginInfoEXT"/>
|
||||
<type name="VkPhysicalDeviceConditionalRenderingFeaturesEXT"/>
|
||||
<type name="VkCommandBufferInheritanceConditionalRenderingInfoEXT"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_KHR_extension_83" number="83" author="KHR" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
|
||||
|
@ -7847,10 +7992,21 @@ server.
|
|||
<enum value=""VK_IMG_extension_109"" name="VK_IMG_EXTENSION_109_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_IMG_extension_110" number="110" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled">
|
||||
<extension name="VK_KHR_create_renderpass2" requires="VK_KHR_multiview,VK_KHR_maintenance2" number="110" contact="Tobias Hector @tobias" type="device" supported="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_IMG_EXTENSION_110_SPEC_VERSION"/>
|
||||
<enum value=""VK_IMG_extension_110"" name="VK_IMG_EXTENSION_110_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_create_renderpass2"" name="VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR"/>
|
||||
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR"/>
|
||||
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR"/>
|
||||
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR"/>
|
||||
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR"/>
|
||||
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR"/>
|
||||
<enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR"/>
|
||||
<command name="vkCreateRenderPass2KHR"/>
|
||||
<command name="vkCmdBeginRenderPass2KHR"/>
|
||||
<command name="vkCmdNextSubpass2KHR"/>
|
||||
<command name="vkCmdEndRenderPass2KHR"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_IMG_extension_111" number="111" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled">
|
||||
|
@ -8608,10 +8764,12 @@ server.
|
|||
<enum value=""VK_KHR_extension_177"" name="VK_KHR_EXTENSION_177_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_178" number="178" author="EXT" contact="Alexander Galazin @alegal-arm" supported="disabled">
|
||||
<extension name="VK_KHR_8bit_storage" number="178" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_storage_buffer_storage_class" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_KHR_EXTENSION_178_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_extension_178"" name="VK_KHR_EXTENSION_178_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_KHR_8BIT_STORAGE_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_8bit_storage"" name="VK_KHR_8BIT_STORAGE_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR"/>
|
||||
<type name="VkPhysicalDevice8BitStorageFeaturesKHR"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_external_memory_host" number="179" type="device" author="EXT" requires="VK_KHR_external_memory" contact="Daniel Rakos @drakos-amd" supported="vulkan">
|
||||
|
@ -8838,5 +8996,17 @@ server.
|
|||
<enum value=""VK_KHR_extension_212"" name="VK_KHR_EXTENSION_212_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_AMD_extension_213" number="213" author="AMD" contact="Neil Henning @sheredom" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_KHR_EXTENSION_213_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_extension_213"" name="VK_KHR_EXTENSION_213_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_AMD_extension_214" number="214" author="AMD" contact="Neil Henning @sheredom" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_KHR_EXTENSION_214_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_extension_214"" name="VK_KHR_EXTENSION_214_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
</registry>
|
||||
|
|
Loading…
Reference in New Issue