I'm only skim-reading but it tastes like OpenCL's '__local' address-space qualifier
https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xht...
https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xht...
In general it is up to the compiler to decide what variables are uniform as it is pretty easy for user to get it wrong. Metal shader language as a uniform marker: uniform<int> i = …;
Metal spec: https://developer.apple.com/metal/Metal-Shading-Language-Spe...