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