KhronosGroup / KhronosGroup/SPIRV-Cross
[MSL] Support SPV_EXT_fragment_invocation_density in MSL 2.2
- Dominant language
- GLSL
- Stars
- 2.5k
- Forks
- 713
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 16
Description
MSL 2.2 adds a new rasterization rate map type which maps between logical and screen coordinates. Using this new type with the `FragCoord` builtin should enable us to support the `FragSizeEXT` builtin from `SPV_EXT_fragment_invocation_density`. The `FragInvocationCountEXT` builtin, meanwhile, can be implemented in terms of the number of samples in the render target, assuming sample-rate shading is active. Since Metal doesn't actually support `minSampleShading`, we'd thus always return the number of samples as the invocation count.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files or tests are named. Start by locating the MSL 2.2 handling for rasterization rate maps and FragCoord, then trace how SPV_EXT_fragment_invocation_density builtins are represented. Done means supporting FragSizeEXT and FragInvocationCountEXT with the semantics described in the issue, including render-target sample counts.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers, computer-graphics
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100