Vulkan-Docs/appendices/VK_EXT_conditional_renderin...

85 lines
2.6 KiB
Plaintext
Raw Normal View History

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
* 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.