
More compute shaders - tempodox
https://anteru.net/blog/2018/more-compute-shaders/index.html
======
laythea
I'm not an expert, and in my opinion, I'm hoping the industry focuses more on
the software tooling to utilize hardware accelerated compute power better. In
my limited experience, the "tool chain" is overly complicated.

------
Athas
Nice post! Is there a way to directly use uniform variables in e.g. OpenCL, or
is it up to the kernel compiler to determine that some variable is wavefront-
or group-invariant?

~~~
MaxBarraclough
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/xhtml/local.html)

~~~
tomtomlapomme
__local is meant to describe memory shared across the whole workgroup meaning
each operation is visible to all SIMD lanes. Uniform are variables that have
are only visible to one lane but can be proven to have the same value for all
SIMD lanes.

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...](https://developer.apple.com/metal/Metal-Shading-Language-
Specification.pdf)

