-
Notifications
You must be signed in to change notification settings - Fork 246
Closed
Labels
c: spirv-stdIssues specific to the spirv-std crateIssues specific to the spirv-std cratemcp: acceptedA major change to the compiler that has been accepted.A major change to the compiler that has been accepted.t: good first issueGood for newcomersGood for newcomers
Description
Some of these are only available in specific shader stages and should error out in other stages (for example, calculating screenspace derivatives might be unavailable outside pixel shaders). Also some of these may need to add additional capablities (such as SubgropuBallotKHR).
Generic math functions
- Already documented in Intercept calls to (rust) libm and emit a builtin instead of the soft impl #81
- Possibly: OpDot & OpOuterProduct
Bit instructions
- OpBitFieldInsert
- OpBitFieldSExtract / OpBitFieldUExtract
- OpBitReverse
- OpBitCount
Fragment shader functions
- OpDPdx (done)
- OpDPdy (done)
- OpFwidth (done)
- OpDPdxFine (done)
- OpDPdyFine (done)
- OpFwidthFine (done)
- OpDPdxCoarse (done)
- OpDPdyCoarse (done)
- OpFwidthCoarse (done)
- OpKill (we may also want to take a look at OpDemoteToHelperInvocationEXT instead which is probably a nicer alternative depending on platform support; https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_demote_to_helper_invocation.asciidoc and [spirv] PR #2773 prevents usage of discard without SPV_EXT_demote_to_helper_invocation microsoft/DirectXShaderCompiler#2823)
Compute
- OpControlBarrier
- OpMemoryBarrier (see also Add barrier proposal #216)
Subgroup instructions
- Probably all of "3.37.21. Group and Subgroup Instructions" and "3.37.24. Non-Uniform Instructions", but if we want to start with a more limited set the following three are probably fine.
- OpSubgroupBallotKHR
- OpSubgroupFirstInvocationKHR
- OpSubgroupReadInvocationKHR
repi and fu5ha
Metadata
Metadata
Assignees
Labels
c: spirv-stdIssues specific to the spirv-std crateIssues specific to the spirv-std cratemcp: acceptedA major change to the compiler that has been accepted.A major change to the compiler that has been accepted.t: good first issueGood for newcomersGood for newcomers