1include::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 15This extension allows the execution of one or more rendering commands to be 16conditional on a value in buffer memory. 17This may help an application reduce the latency by conditionally discarding 18rendering commands without application intervention. 19The conditional rendering commands are limited to draws, compute dispatches 20and clearing attachments within a conditional rendering block. 21 22=== New Object Types 23 24None. 25 26=== New Enum Constants 27 28 * Extending elink:VkAccessFlagBits: 29 ** ename:VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT 30 * Extending elink:VkBufferUsageFlagBits: 31 ** ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT 32 * Extending elink:VkPipelineStageFlagBits: 33 ** ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT 34 35=== New Enums 36 37 * elink:VkConditionalRenderingFlagBitsEXT 38 39=== New Structures 40 41 * slink:VkConditionalRenderingBeginInfoEXT 42 * Extending slink:VkCommandBufferInheritanceInfo: 43 ** slink:VkCommandBufferInheritanceConditionalRenderingInfoEXT 44 * Extending slink:VkPhysicalDeviceFeatures2: 45 ** slink:VkPhysicalDeviceConditionalRenderingFeaturesEXT 46 47None. 48 49=== New Functions 50 51 * flink:vkCmdBeginConditionalRenderingEXT 52 * flink:vkCmdEndConditionalRenderingEXT 53 54=== Issues 55 561) Should conditional rendering affect copy and blit commands? 57 58RESOLVED: Conditional rendering should not affect copies and blits. 59 602) Should secondary command buffers be allowed to execute while conditional 61rendering is active in the primary command buffer? 62 63RESOLVED: The rendering commands in secondary command buffer will be 64affected by an active conditional rendering in primary command buffer if the 65pname:conditionalRenderingEnable is set to ename:VK_TRUE. 66Conditional rendering must: not be active in the primary command buffer if 67pname:conditionalRenderingEnable is ename:VK_FALSE. 68 69=== Examples 70 71None. 72 73=== Version History 74 75 * Revision 1, 2018-04-19 (Vikram Kushwaha) 76 - First Version 77 78 * Revision 2, 2018-05-21 (Vikram Kushwaha) 79 - Add new pipeline stage, access flags and limit conditional rendering 80 to a subpass or entire renderpass. 81