// Copyright 2019-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_line_rasterization.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2019-05-09
*IP Status*::
    No known IP claims.
*Contributors*::
  - Jeff Bolz, NVIDIA
  - Allen Jensen, NVIDIA
  - Jason 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.

include::{generated}/interfaces/VK_EXT_line_rasterization.txt[]

=== 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
