KhronosGroup / KhronosGroup/SPIRV-Cross

[MSL] Support SPV_EXT_fragment_invocation_density in MSL 2.2

Open
#1,015 5 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.