gfx-rs / gfx

[maintenance mode] A low-overhead Vulkan-like GPU API for Rust.
http://gfx-rs.github.io/
Apache License 2.0
5.35k stars 548 forks source link

[vk] Implement conservative rasterization #3637

Closed tangmi closed 3 years ago

tangmi commented 3 years ago

This issue is meant to track the Vulkan implementation of conservative rasterization. Conservative rasterization is currently supported in the DX12 backend.

Vulkan has support via an extension: VK_EXT_conservative_rasterization (GL does as well, as does a higher feature level of DX11)

Since support for the feature is not required by all (or any) backend, it may be worth adding it to either feature flags or the device capabilities. A single "supports conservative rasterization" flag would work, but the feature can also be broken up into "supports overestimation", "supports underestimation", "supports the FullyCoveredEXT shader builtin", etc. DX12 signals the presence of conservative rasterization support via D3D12_CONSERVATIVE_RASTERIZATION_TIER/D3D12_FEATURE_DATA_D3D12_OPTIONS.