KhronosGroup / KhronosGroup/Vulkan-Portability

Metal does not support sizing arrays in shaders with Spec Constants

Open
#10 6 comments 0 reactions 0 assignees View on GitHub
Metal
Dominant language
No language data
Stars
45
Forks
7
PR merge metrics
No merged PRs in 30d

Description

In MSL, it is not possible to specify an array size using a variable in the `constant` address space. Because Metal function constants are variables in this space, this means that the size of an array cannot be a function constant. This is particularly surprising, given that several other things, including binding numbers of resources, can be function constants, which one would not expect given that arrays cannot be sized with function constants.

This means that, on Portability implementations over Metal, we won't be able to support shaders that use Specialization Constants to size arrays.

Contributor guide

No contributing guide indexed for this repository

Research direction

No repository files or tests are named. Begin by locating the Metal portability implementation and its specialization-constant handling, then determine whether the reported array-sizing limitation can be represented or worked around. Done would require a decided approach that supports shaders using specialization constants for array sizes.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.