VK_EXT_discard_rectangles

Other Extension Metadata

Last Modified Date

2023-01-18

Interactions and External Dependencies
Contributors
  • Daniel Koch, NVIDIA
  • Jeff Bolz, NVIDIA

Description

This extension provides additional orthogonally aligned discard rectangles specified in framebuffer-space coordinates that restrict rasterization of all points, lines and triangles.

From zero to an implementation-dependent limit (specified by maxDiscardRectangles) number of discard rectangles can be operational at once. When one or more discard rectangles are active, rasterized fragments can either survive if the fragment is within any of the operational discard rectangles (VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT mode) or be rejected if the fragment is within any of the operational discard rectangles (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT mode).

These discard rectangles operate orthogonally to the existing scissor test functionality. The discard rectangles can be different for each physical device in a device group by specifying the device mask and setting discard rectangle dynamic state.

Version 2 of this extension introduces new dynamic states VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT and VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT, and the corresponding functions vkCmdSetDiscardRectangleEnableEXT and vkCmdSetDiscardRectangleModeEXT. Applications that use these dynamic states must ensure the implementation advertises at least specVersion 2 of this extension.

New Commands

New Structures

New Enums

New Bitmasks

New Enum Constants

  • VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME
  • VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION
  • Extending VkDynamicState:
    • VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT
    • VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT
    • VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT
  • Extending VkStructureType:
    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
    • VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT

Version History

  • Revision 2, 2023-01-18 (Piers Daniell)
    • Add dynamic states for discard rectangle enable/disable and mode.
  • Revision 1, 2016-12-22 (Piers Daniell)
    • Internal revisions