• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1include::meta/VK_EXT_conservative_rasterization.txt[]
2
3*Last Modified Data*::
4    2017-08-28
5*Contributors*::
6  - Daniel Koch, NVIDIA
7  - Daniel Rakos, AMD
8  - Jeff Bolz, NVIDIA
9  - Slawomir Grajewski, Intel
10  - Stu Smith, Imagination Technologies
11
12This extension adds a new rasterization mode called conservative
13rasterization.
14There are two modes of conservative rasterization; overestimation and
15underestimation.
16
17When overestimation is enabled, if any part of the primitive, including its
18edges, covers any part of the rectangular pixel area, including its sides,
19then a fragment is generated with all coverage samples turned on.
20This extension allows for some variation in implementations by accounting
21for differences in overestimation, where the generating primitive size is
22increased at each of its edges by some sub-pixel amount to further increase
23conservative pixel coverage.
24Implementations can allow the application to specify an extra overestimation
25beyond the base overestimation the implementation already does.
26It also allows implementations to either cull degenerate primitives or
27rasterize them.
28
29When underestimation is enabled, fragments are only generated if the
30rectangular pixel area is fully covered by the generating primitive.
31If supported by the implementation, when a pixel rectangle is fully covered
32the fragment shader input variable builtin called FullyCoveredEXT is set to
33true.
34The shader variable works in either overestimation or underestimation mode.
35
36Implementations can process degenerate triangles and lines by either
37discarding them or generating conservative fragments for them.
38Degenerate triangles are those that end up with zero area after the
39rasterizer quantizes them to the fixed-point pixel grid.
40Degenerate lines are those with zero length after quantization.
41
42=== New Object Types
43
44None.
45
46=== New Enum Constants
47
48  * Extending elink:VkStructureType:
49
50  ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
51  ** ename:VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
52
53=== New Enums
54
55  * elink:VkPipelineRasterizationConservativeStateCreateFlagsEXT
56  * elink:VkConservativeRasterizationModeEXT
57
58=== New Structures
59
60  * slink:VkPhysicalDeviceConservativeRasterizationPropertiesEXT
61  * slink:VkPipelineRasterizationConservativeStateCreateInfoEXT
62
63=== New Functions
64
65None.
66
67=== Issues
68
69None.
70
71=== Version History
72
73  * Revision 1, 2017-08-28 (Piers Daniell)
74    - Internal revisions
75