Closed stuartcarnie closed 8 months ago
Do be aware that the FidelityFX SPD shader (assuming that's what this code is) cannot work correctly on Metal since Metal does not support the concept of "coherent" storage images or buffers.
I'll still have a look to see what is going wrong here. You can also try enabling Metal 3.1, which uses proper image atomics and not this broken workaround.
Do be aware that the FidelityFX SPD shader (assuming that's what this code is) cannot work correctly on Metal since Metal does not support the concept of "coherent" storage images or buffers.
You are correct. Interestingly, visually things look ok, as I'm implementing a Metal renderer for Godot, which can enable FSR 2.
I'll still have a look to see what is going wrong here. You can also try enabling Metal 3.1, which uses proper image atomics and not this broken workaround.
I did try that, but ran into a separate issue. I can try again and report as an issue.
Issue
The following GLSL code:
when transpiled to MSL (version < 3.1), and using argument buffers, drops the
volatile
attribute for the argument to theComputeAutoExposure
function, which fails to compile:Error:
The following commands were used.
Compiled to SPIR-V:
Convert to MSL: