2018-07-07 09:21:56 +00:00
|
|
|
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
|
|
|
|
|
Change log for November 4, 2018 Vulkan 1.1.91 spec update:
* Update release number to 91.
Public Issues:
* Update Ubuntu subsystem build instructions in `BUILD.adoc` (public pull
request 624).
* Delete the `VK_KHR_mir_surface` extension from the Specification and
XML, due to EOL of the only driver known to have supported it, and
near-EOL of Mir itself (public issue 814).
* Fix options for some figures that were using old ones (public pull
request 841).
* Fix various accidentally repeated words (public pull request 843).
* Use `time.process_time()`, introduced in Python 3.3, in the scripts
instead of `time.clock()`, which will be removed in Python 3.8 (public
pull request 844).
Internal Issues:
* Update valid usage statements for
`VK_ANDROID_external_memory_android_hardware_buffer` in
slink:VkMemoryAllocateInfo,
slink:VkImportAndroidHardwareBufferInfoANDROID, and
flink:vkGetAndroidHardwareBufferPropertiesANDROID to actually be
verifiable (internal issue 1419).
* Update valid usage statements for
`VK_ANDROID_external_memory_android_hardware_buffer` in
slink:VkMemoryAllocateInfo, slink:VkImageCreateInfo, and
slink:VkImageViewCreateInfo to move valid usage statements in
doubly-nested bullet points up one level, accomodating limitations of
the valid usage extraction script that creates `validusage.json`
(internal issue 1434).
* Fix typo etext:VK_ACCESS_SHADING_RATE_IMAGE_BIT_NV to the correct
ename:VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV.
* Add missing etext:VK_STRUCTURE_TYPE_* tokens to appendices for
extensions missing them.
New Extensions:
* `VK_AMD_memory_overallocation_behavior`
* `VK_NV_ray_tracing`, replacing `VK_NVX_raytracing`
2018-11-04 06:50:13 +00:00
|
|
|
* Extending elink:VkStructureType:
|
|
|
|
** ename:VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
|
|
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
|
|
|
|
** ename:VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
|
2018-07-07 09:21:56 +00:00
|
|
|
* 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.
|