TBO, Sampler1D, SSBO performance

Hey to all. I have a simple question. Which of these is gonna be the fastest/slowest??
Fetching texels from texture buffer object, sampling default 1D texture or reading memory from SSBO?

Under what conditions? In which usage patterns? From which shader stages, and how do those stages use the values? How much data is being read and in which ways? On which hardware are we discussing this?

Your question as asked is not meaningfully answerable.

Thanks for reply!
Shader stage — fragment shader.
How much data — about 1-10MB.
Which ways — consistently, not random (one by one)
Hardware — GPU of course

You didn’t quite understand my point. What you want to know is unknowable. It will vary based on the specifics of your workload, which statements like “consistently, not random” and “fragment shader” are decidedly insufficient to get a grasp on. The performance of these things will likely vary based on the specific hardware you’re running it on, so “GPU of course” is basically meaningless.

The most reasonable way to find out the answer to your question is to make versions of your program that closely resembles what you’re looking for and profile them on the various graphics cards you’re interested in using. There is no simplistic, a priori, “do this” answer.

Alternatively, use the one that’s easiest to use, then see if there’s a performance problem. Then optimize your application only when such a problem manifests and only in the directions that actual profiling data suggests.

Thanks for reply. Will try on different GPUs