mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-01-11 14:34:08 +00:00
b557dd2167
* Update release number to 96. Public Issues: * Fix typo in `vk.xml` for `structextends` attribute of slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870). * Fix links in optimized PDF output (public PR 879). Internal Issues: * Add a link to GitHub contributors in the <<credits, Other Credits>> section (internal issue 808). * Clarify the behavior of command aliases described in the <<versions,Core Revisions>> and <<initialization-functionpointers, Command Function Pointers>> sections and the registry schema document with respect to whether they are or are not the same entry point, and what the behaviour of the ftext:vkGet*ProcAddr commands is for each alias (internal issue 1462). * Update slink:VkPipelineShaderStageCreateInfo valid usage statements for writing to code:Layer and code:viewportIndex to apply to any vertex processing stage (internal issue 1475). * Make sparse image creation optional for Y'C~B~C~R~ formats in the <<features-required-format-support, Required Format Support>> section and the <<features-formats-requiring-sampler-ycbcr-conversion, Formats requiring sampler Y'C~B~C~R~ conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue 1476). * Modify the valid usage statement for flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the pname:maxTransformFeedbackBufferDataStride limit rather than the pname:maxVertexInputBindingStride limit, which is a better match for transform feedback related operations (internal issue 1487). * Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to have the `uint32_t` type. This is an imcompatible change to an EXT that's very recently released; although this is against usual Vulkan WG policy, we discussed and consider this an acceptable risk, but have polled the mesa-dev list in case there are use cases we missed (internal issue 1492). * Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and `VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948). * Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395` (internal MR 2950). * Add `check_spec_links.py` script, use it in Gitlab CI, and fix many minor markup issues discovered by the script (internal MR 2955). * Update `BUILD.md` to the current Ruby version (2.5.3), and make some corresponding updates to per-platform build instructions (internal MR 2956). * Fix binding numbers and other details in flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks (internal MR 2960). * Remove some nautovalidity="true" in `vk.xml` for NV extensions where it's clearly wrong (internal MR 2970).
75 lines
2.4 KiB
Plaintext
75 lines
2.4 KiB
Plaintext
include::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
|