VK_KHR_line_rasterization
Other Extension Metadata
Last Modified Date
2023-06-08
IP Status
No known IP claims.
Contributors
- Jeff Bolz, NVIDIA
- Allen Jensen, NVIDIA
- Faith Ekstrand, Intel
Description
This extension adds some line rasterization features that are commonly used in CAD applications and supported in other APIs like OpenGL. Bresenham-style line rasterization is supported, smooth rectangular lines (coverage to alpha) are supported, and stippled lines are supported for all three line rasterization modes.
New Commands
New Structures
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- Extending VkPhysicalDeviceProperties2:
- Extending VkPipelineRasterizationStateCreateInfo:
New Enums
New Enum Constants
VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME
VK_KHR_LINE_RASTERIZATION_SPEC_VERSION
- Extending VkDynamicState:
VK_DYNAMIC_STATE_LINE_STIPPLE_KHR
- Extending VkLineRasterizationMode:
VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR
VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR
Promotion to Vulkan 1.4
Functionality in this extension is included in core Vulkan 1.4 with the KHR suffix omitted. The original type, enum and command names are still available as aliases of the core functionality.
When Version 1.4 is supported, the
bresenhamLines
feature must be supported.
Issues
1) Do we need to support Bresenham-style and smooth lines with more than one rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than one sample?
RESOLVED: Yes. For simplicity, Bresenham line rasterization carries forward a few restrictions from OpenGL, such as not supporting per-sample shading, alpha to coverage, or alpha to one.
Version History
- Revision 1, 2019-05-09 (Jeff Bolz)
- Initial draft