VK_EXT_conditional_rendering(3)

# VK_EXT_conditional_rendering(3) Manual Page

## Name

VK_EXT_conditional_rendering - device extension

Loading… please wait.

## Registered Extension Number

82

## Revision

2

## Extension and Version Dependencies

- Requires Vulkan 1.0

### Other Extension Metadata

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

### Description

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 Commands

- vkCmdBeginConditionalRenderingEXT

- vkCmdEndConditionalRenderingEXT

### New Structures

- VkConditionalRenderingBeginInfoEXT

- Extending VkCommandBufferInheritanceInfo:

  - VkCommandBufferInheritanceConditionalRenderingInfoEXT

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceConditionalRenderingFeaturesEXT

### New Enums

- VkConditionalRenderingFlagBitsEXT

### New Bitmasks

- VkConditionalRenderingFlagsEXT

### New Enum Constants

- `VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME`

- `VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION`

- Extending VkAccessFlagBits:

  - `VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT`

- Extending VkBufferUsageFlagBits:

  - `VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT`

- Extending VkPipelineStageFlagBits:

  - `VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT`

  - `VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT`

### 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 `conditionalRenderingEnable` is set to `VK_TRUE`. Conditional rendering must not be active in the primary command buffer if `conditionalRenderingEnable` is `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.

## See Also

VkCommandBufferInheritanceConditionalRenderingInfoEXT, VkConditionalRenderingBeginInfoEXT, VkConditionalRenderingFlagBitsEXT, VkConditionalRenderingFlagsEXT, VkPhysicalDeviceConditionalRenderingFeaturesEXT, vkCmdBeginConditionalRenderingEXT, vkCmdEndConditionalRenderingEXT

## Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright (c) 2014-2020 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0