/ appendices / VK_EXT_conditional_rendering.txt
VK_EXT_conditional_rendering.txt
 1  include::meta/VK_EXT_conditional_rendering.txt[]
 2  
 3  *Last Modified Date*::
 4      2018-05-21
 5  *IP Status*::
 6      No known IP claims.
 7  *Contributors*::
 8    - Vikram Kushwaha, NVIDIA
 9    - Daniel Rakos, AMD
10    - Jesse Hall, Google
11    - Jeff Bolz, NVIDIA
12    - Piers Daniell, NVIDIA
13    - Stuart Smith, Imagination Technologies
14  
15  This extension allows the execution of one or more rendering commands to be
16  conditional on a value in buffer memory.
17  This may help an application reduce the latency by conditionally discarding
18  rendering commands without application intervention.
19  The conditional rendering commands are limited to draws, compute dispatches
20  and clearing attachments within a conditional rendering block.
21  
22  === New Object Types
23  
24  None.
25  
26  === New Enum Constants
27  
28    * Extending elink:VkStructureType:
29    ** ename:VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
30    ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
31    ** ename:VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
32    * Extending elink:VkAccessFlagBits:
33    ** ename:VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT
34    * Extending elink:VkBufferUsageFlagBits:
35    ** ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
36    * Extending elink:VkPipelineStageFlagBits:
37    ** ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
38  
39  === New Enums
40  
41    * elink:VkConditionalRenderingFlagBitsEXT
42  
43  === New Structures
44  
45    * slink:VkConditionalRenderingBeginInfoEXT
46    * Extending slink:VkCommandBufferInheritanceInfo:
47    ** slink:VkCommandBufferInheritanceConditionalRenderingInfoEXT
48    * Extending slink:VkPhysicalDeviceFeatures2:
49    ** slink:VkPhysicalDeviceConditionalRenderingFeaturesEXT
50  
51  None.
52  
53  === New Functions
54  
55    * flink:vkCmdBeginConditionalRenderingEXT
56    * flink:vkCmdEndConditionalRenderingEXT
57  
58  === Issues
59  
60  1) Should conditional rendering affect copy and blit commands?
61  
62  RESOLVED: Conditional rendering should not affect copies and blits.
63  
64  2) Should secondary command buffers be allowed to execute while conditional
65  rendering is active in the primary command buffer?
66  
67  RESOLVED: The rendering commands in secondary command buffer will be
68  affected by an active conditional rendering in primary command buffer if the
69  pname:conditionalRenderingEnable is set to ename:VK_TRUE.
70  Conditional rendering must: not be active in the primary command buffer if
71  pname:conditionalRenderingEnable is ename:VK_FALSE.
72  
73  === Examples
74  
75  None.
76  
77  === Version History
78  
79    * Revision 1, 2018-04-19 (Vikram Kushwaha)
80      - First Version
81  
82    * Revision 2, 2018-05-21 (Vikram Kushwaha)
83      - Add new pipeline stage, access flags and limit conditional rendering
84      to a subpass or entire renderpass.