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