Add VK_EXT_fragment_coverage_mask#2724
Conversation
d82d90b to
f727185
Compare
|
Aside from my VUID comment, is this ready to publish from your perspective? |
f727185 to
5b51ddc
Compare
Yes. |
|
Can you provide a little more context around this? It's using the MESA prefix but I'm not seeing a merge request for it against any driver nor have I seen any discussion about this. Also, it's all braodcom people on the authors list so is this really a MESA extension or a BROADCOM extension? |
Target implementation is lavapipe, Mesa's software Vulkan driver, which is why the prefix is MESA rather than BRCM. MESA tracks the implementation home, not contributor affiliation. The Mesa MR isn't public yet; I'll start it now and link it here once it's drafted. |
|
This definitely should be an Also, this is likely going to have interactions with But at least it's possible that an equivalent of the Though Vulkan has the I'm not sure though how the previous paragraph should work in a situation where the implementation implicitly enables some sample shading even when the application did not explicitly ask it to (like with fixed-function blending implemented as programmable in shaders on some hardware, or like what the By the way, I think the name "fragment coverage" isn't descriptive enough, because that's basically what
If ultimately introducing a new variable turns out to be too complex or intrusive, I think it may actually be possible to add an execution mode that alters the meaning of |
|
Draft implementation in lavapipe: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41423 |
|
Heads-up: we have made a formatting change to vk.xml to crunch out whitespace in XML attribute lists, which will probably affect you the next time you sync this branch with current main branch. When you do this, try following the process in https://github.com/KhronosGroup/Vulkan-Docs/wiki/Merge-XML-Whitespace, which should prevent the need for any tedious conflict resolution consequent to the whitespace change. |
Publish VK_EXT_fragment_coverage_mask, exposing the SPV_EXT_fragment_coverage_mask SPIR-V extension to Vulkan. The new FragmentCoverageMaskEXT fragment shader input built-in contains the complete set of samples covered by the fragment regardless of the fragment shader's execution mode, addressing the limitation that SampleMask is masked to the sample(s) processed by the current invocation under per-sample shading. Adds VkPhysicalDeviceFragmentCoverageMaskFeaturesEXT to query and enable the feature, registers the SPV_EXT_fragment_coverage_mask SPIR-V extension and FragmentCoverageEXT capability, and adds the proposal, appendix, and built-in variable description.
5b51ddc to
546e932
Compare
Publish VK_EXT_fragment_coverage_mask, exposing the
SPV_EXT_fragment_coverage_mask SPIR-V extension to Vulkan. The new
FragmentCoverageMaskEXT fragment shader input built-in contains the
complete set of samples covered by the fragment regardless of the
fragment shader's execution mode, addressing the limitation that
SampleMask is masked to the sample(s) processed by the current
invocation under per-sample shading.
Adds VkPhysicalDeviceFragmentCoverageMaskFeaturesEXT to query and
enable the feature, registers the SPV_EXT_fragment_coverage_mask
SPIR-V extension and FragmentCoverageEXT capability, and adds the
proposal, appendix, and built-in variable description.