mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-26 04:55:12 +00:00
* Update release number to 124. Github Issues: * Fix Makefile SPECREMARK macro to work when not building in a git tree (public issue 992). * Ignore pname:aspectMask for unused attachments in slink:VkSubpassDescription2KHR valid usage statements (public pull request 1028). * Minor markup / spelling fixes (public pull requests 1035, 1045). Internal Issues: * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer (internal issue 1823). * Add a new <<synchronization-signal-operation-order, _signal operation order_>> section to the synchronization chapter which describes in detail the ordering guarantees provided by the API between fence and semaphore signal operations (internal merge request 3368). * Move generated `appendix/meta/` files into the Makefile GENERATED directory (internal merge request 3381). New Extensions * `<<VK_KHR_shader_clock>>` * `<<VK_KHR_timeline_semaphore>>`
75 lines
2.4 KiB
Plaintext
75 lines
2.4 KiB
Plaintext
include::{generated}/meta/VK_EXT_conservative_rasterization.txt[]
|
|
|
|
*Last Modified Data*::
|
|
2017-08-28
|
|
*Contributors*::
|
|
- Daniel Koch, NVIDIA
|
|
- Daniel Rakos, AMD
|
|
- Jeff Bolz, NVIDIA
|
|
- Slawomir Grajewski, Intel
|
|
- Stu Smith, Imagination Technologies
|
|
|
|
This extension adds a new rasterization mode called conservative
|
|
rasterization.
|
|
There are two modes of conservative rasterization; overestimation and
|
|
underestimation.
|
|
|
|
When overestimation is enabled, if any part of the primitive, including its
|
|
edges, covers any part of the rectangular pixel area, including its sides,
|
|
then a fragment is generated with all coverage samples turned on.
|
|
This extension allows for some variation in implementations by accounting
|
|
for differences in overestimation, where the generating primitive size is
|
|
increased at each of its edges by some sub-pixel amount to further increase
|
|
conservative pixel coverage.
|
|
Implementations can allow the application to specify an extra overestimation
|
|
beyond the base overestimation the implementation already does.
|
|
It also allows implementations to either cull degenerate primitives or
|
|
rasterize them.
|
|
|
|
When underestimation is enabled, fragments are only generated if the
|
|
rectangular pixel area is fully covered by the generating primitive.
|
|
If supported by the implementation, when a pixel rectangle is fully covered
|
|
the fragment shader input variable builtin called FullyCoveredEXT is set to
|
|
true.
|
|
The shader variable works in either overestimation or underestimation mode.
|
|
|
|
Implementations can process degenerate triangles and lines by either
|
|
discarding them or generating conservative fragments for them.
|
|
Degenerate triangles are those that end up with zero area after the
|
|
rasterizer quantizes them to the fixed-point pixel grid.
|
|
Degenerate lines are those with zero length after quantization.
|
|
|
|
=== New Object Types
|
|
|
|
None.
|
|
|
|
=== New Enum Constants
|
|
|
|
* Extending elink:VkStructureType:
|
|
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
|
|
** ename:VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
|
|
|
|
=== New Enums
|
|
|
|
* tlink:VkPipelineRasterizationConservativeStateCreateFlagsEXT
|
|
* elink:VkConservativeRasterizationModeEXT
|
|
|
|
=== New Structures
|
|
|
|
* slink:VkPhysicalDeviceConservativeRasterizationPropertiesEXT
|
|
* slink:VkPipelineRasterizationConservativeStateCreateInfoEXT
|
|
|
|
=== New Functions
|
|
|
|
None.
|
|
|
|
=== Issues
|
|
|
|
None.
|
|
|
|
=== Version History
|
|
|
|
* Revision 1, 2017-08-28 (Piers Daniell)
|
|
- Internal revisions
|