Vulkan-Docs/appendices/VK_EXT_conditional_rendering.txt
Jon Leech 22a5a1459f Change log for October 6, 2019 Vulkan 1.1.124 spec update:
* Update release number to 124.

Github Issues:

  * Fix Makefile SPECREMARK macro to work when not building in a git tree
    (public issue 992).
  * Ignore pname:aspectMask for unused attachments in
    slink:VkSubpassDescription2KHR valid usage statements (public pull
    request 1028).
  * Minor markup / spelling fixes (public pull requests 1035, 1045).

Internal Issues:

  * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer
    (internal issue 1823).
  * Add a new <<synchronization-signal-operation-order, _signal operation
    order_>> section to the synchronization chapter which describes in
    detail the ordering guarantees provided by the API between fence and
    semaphore signal operations (internal merge request 3368).
  * Move generated `appendix/meta/` files into the Makefile GENERATED
    directory (internal merge request 3381).

New Extensions

  * `<<VK_KHR_shader_clock>>`
  * `<<VK_KHR_timeline_semaphore>>`
2019-10-06 12:42:12 -07:00

85 lines
2.6 KiB
Plaintext

include::{generated}/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: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.