Because of FSR and DLSS used to have ghosting issue with translucent reflex sight material that have animated UV offset base on view angle and gun position, so we changed the translucency pass to “After Motion Blur” where it does not get upscaled nor getting any issue with frame gen techs if applied. But we recently find that when using TSR, Bloom/glow with the reticle does not work properly. But None, FXAA, FSR, DLSS all works fine. We are wondering what’s the reasoning and is there a cvar or control can restore blooming for this? With DumpGPU I can still see the ComposeTranslucencyToNewSceneColor is still working and before BloomSetup when TSR is enabled, but the buffer is just not used?
Steps to Reproduce
Create a translucent material, with emissive, set to After DOF and another set to After Motion Blur.
With TSR the “After Motion Blur” material gets no bloom, and can be verified with DumpGPU where the BloomSetup sourcing TSR result and not from the PostProcessing.SceneColor result.
[Image Removed]
Please find the tracking link available at Unreal Engine Issues and Bug Tracker (UE\-322045\).
Further updates should be reflected there.
Best regards,
Chris
Hello there,
It appears the issue is that the HalfRes TSR output texture is not invalidated. There is a path for invalidation of the half-, quarter-, and one-eighth-res textures, but it isn’t triggering when TSR is enabled.
I’ll submit a bug report for the issue and reply when a tracking link is live.
As a work around, I invalidated the textures after the ComposeToNewSceneColor when TSR is active. I would generally advise waiting for an upstream fix that will be maintained, but in the interim, the following should work:
SceneColorSlice = FScreenPassTextureSlice::CreateFromScreenPassTexture(GraphBuilder, TranslucencyComposition.AddPass(
GraphBuilder, View, PostMotionBlurTranslucencyResources));
// Invalidate half, quarter, and eighth res when TSR is active.
if (TAAConfig == EMainTAAPassConfig::TSR)
{
HalfResSceneColor = FScreenPassTextureSlice();
QuarterResSceneColor = FScreenPassTextureSlice();
EighthResSceneColor = FScreenPassTextureSlice();
}
I hope that helps.
Best regards,
Chris