Experimental Compute Post Process Pipeline in 4.16

A while ago I saw on Github that @Chris.Bunner added a Compute Post Process Pipeline, so almost all PP things (TAA, bloom, tonemapping etc) can be run in compute shaders now.

Since certain things can be done faster in compute shaders due to how pixel shaders and compute shaders work, I was quite happy to see such a change. PP takes while a while, so any improvement would be really nice to see. I hoped I might see something like a 20% improvement by this change.

You can enable it with calling the console command “r.PostProcessing.PreferCompute 1”.

So, let’s look at the results:

Pixel Shader PP:

Compute Shader PP:

The results I see are not that good I would say. Every single PP thing seems to be faster with pixel shaders. Now I guess this might be quite GPU dependent, maybe the compute pipeline is faster on some GPUs while the pixel shader pipeline is faster on others? I am using a AMD R9 390, so a relatively “old” GPU. Maybe newer GPUs are better with compute shaders?

The compute shader PP also does not really work visually for me.

This is how it looks like with Pixel Shader PP:

And this is the Compute Shader PP:

So the view seems to be cropped incorrectly. Only on the top a bit of the view is visible. It’s not stretched in any way, it renders correctly, the colors are off a bit though, looks too green.

Would be interesting to see how it looks like on other GPUs, maybe someone with a 1080 can try it and post the results here?

@Chris.Bunner I know this is currently experimental, so I know it’s not supposed to work for everyone. Are the results I see what you would expect, or did your testing show different results and should the compute pipeline be faster than the pixel shader one?

This is absolutely expected to be slower and in many cases non functional. You’ll notice this won’t appear in the release notes when 4.16 ships as an advertised feature, just some experimentation is all. Sorry to disappoint! :slight_smile:

Good to see you experimenting with this stuff anyway, hope it leads somewhere fruitful one day :slight_smile:

Well, I know it’s experimental :slight_smile:

There was probably some reason why you added it though, do you plan to improve it in the future, so do you think it will be faster than the pixel shader version at some time? Or was it just an experiment that “failed”?

You wouldn’t have added it if there wouldn’t be some benefit from it, and I would love to hear about that, even if its not currently visible :slight_smile: