Add VK_MESA_fragment_coverage_mask#2724
Conversation
d82d90b to
f727185
Compare
|
Aside from my VUID comment, is this ready to publish from your perspective? |
Publish VK_MESA_fragment_coverage_mask, exposing the SPV_MESA_fragment_coverage_mask SPIR-V extension to Vulkan. The new FragmentCoverageMaskMESA 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 VkPhysicalDeviceFragmentCoverageMaskFeaturesMESA to query and enable the feature, registers the SPV_MESA_fragment_coverage_mask SPIR-V extension and FragmentCoverageMESA capability, and adds the proposal, appendix, and built-in variable description.
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 |
Publish VK_MESA_fragment_coverage_mask, exposing the SPV_MESA_fragment_coverage_mask SPIR-V extension to Vulkan. The new FragmentCoverageMaskMESA 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 VkPhysicalDeviceFragmentCoverageMaskFeaturesMESA to query and enable the feature, registers the SPV_MESA_fragment_coverage_mask SPIR-V extension and FragmentCoverageMESA capability, and adds the proposal, appendix, and built-in variable description.