Our renderer currently has one pass for ellipsoid splatting, another for thickness. We should be able to eliminate the other pass by using a RWTexture2D to manually accumulate thickness pixels. In addition, it'd also fix the current desync between isotropic and anisotropic rendering models used in Gelly. Finally, it would also respect the variance filter. There is a lot to win from this ticket--although performance of this needs to be evaluated.
We don't splat anything else than depth in the ellipsoid pass, so we're probably okay if we attach another texture--especially given we wont use it in MRT mode.
Scope
Instead of rendering to thickness, bind it as a unordered access view and render to it within the ellipsoid pass.
Bind to it at the pixel shader stage so that we automatically skip variance-filtered pixels
Remove the legacy thickness pass
SPECIAL: Take a timing sample before and after and comment the differences. (setup a d3d11on12 pix rig)
Context
Our renderer currently has one pass for ellipsoid splatting, another for thickness. We should be able to eliminate the other pass by using a
RWTexture2D
to manually accumulate thickness pixels. In addition, it'd also fix the current desync between isotropic and anisotropic rendering models used in Gelly. Finally, it would also respect the variance filter. There is a lot to win from this ticket--although performance of this needs to be evaluated.We don't splat anything else than depth in the ellipsoid pass, so we're probably okay if we attach another texture--especially given we wont use it in MRT mode.
Scope
Acceptance Criteria
Other