Are sampler inputs on glsl TOPS ... unlimited? ( 2021.38090 )

Toying around in the newest experimental, and noticed that I do not get any warning on GLSL tops that samplers beyond #32 will be ignored… Does this mean what I think it means??

Holy crap I think I just answered my own question. Below input 256 is orange, and I can sample from it :smiley:

Are there any limitations to this? Drawbacks? Performance considerations?
Thanks!

2 Likes

It’s GPU dependent, on macOS its still limited to 16/32. Most Windows GPUs have a high limit though.
This is the relevant Vulkan property:

You can see how many GPUs support each different amount, and click on the numbers to see the GPU list.

Oh super neat, will there be a way in TD to query this value? Would be very useful for dynamically tuning systems that leverage many samplers. Check at startup, and limit number of shader inputs, etc.

Amazing how vast the differences are between hardware… Any insights you could provide as to why macOS is limited to such a low number relative to some of these others for windows/nvidia?

For example, apparently a gtx 1070 on windows 10 can ingest a max of 1,048,576 samplers, obv way more than anyone would/could use but what’s so different from that to the osx side?

image

I guess intel HD graphics 520 and 540 are amongst the 16 sampler limited ones too, so that’s interesting as well.

I’m not sure offhand, it’s possibly just a API limitation of Metal so far.

hey people,
im currently writing some GLSL code that should ingest more than 16 input samplers. i’m not super into these things but apparently there is a feature in Metal called Argument Buffers which is also accessible in MoltenVK which drastically increases the max sampler count. (useMetalArgumentBuffers)

also discussed here:

and here:

could this be of help for us TD mac users ?