-
Notifications
You must be signed in to change notification settings - Fork 283
Open
Description
I was looking over the SSSR code and the C++ side clamps the number of mips in the depth hierarchy to 7, while the shader side goes with a texture array with 13 entries. This is in ffx_sssr_callbacks_glsl.h:
#if defined SSSR_BIND_UAV_DEPTH_HIERARCHY
layout (set = 0, binding = SSSR_BIND_UAV_DEPTH_HIERARCHY, r32f) uniform image2D rw_depth_hierarchy[13];
#endifThe C++ side uses mip 0 to pad out rw_depth_hierarchy and then ffx_sssr_depth_downsample.h just dispatches SPD with all of this.
Since the number of mips is clamped on the C++ side, wouldn't it make sense to also clamp the return value of GetMipsCount()? This would reduce the amount of processing SPD has to do and also get rid of the need for atomics since SPD can do 6 mips atomic free. It's possible I'm missing something though and this is very much intended behaviour (and I need to update my implementation of SSSR).
Metadata
Metadata
Assignees
Labels
No labels