In:
void SunAlphaPS_Mobile(
float2 InUVs[8] : TEXCOORD0,
in FStereoPSInput StereoInput,
out HALF_TYPE OutColor : SV_Target0
)
{ OutColor = SunUnBias(SunShaftAndDofTexture.Sample(SunShaftAndDofSampler, InUVs[0]).r) * 0.125 + SunUnBias(SunShaftAndDofTexture.Sample(SunShaftAndDofSampler, InUVs[1]).r) * 0.125 + SunUnBias(SunShaftAndDofTexture.Sample(SunShaftAndDofSampler, InUVs[2]).r) * 0.125 + SunUnBias(SunShaftAndDofTexture.Sample(SunShaftAndDofSampler, InUVs[3]).r) * 0.125 + SunUnBias(SunShaftAndDofTexture.Sample(SunShaftAndDofSampler, InUVs[4]).r) * 0.125 + SunUnBias(SunShaftAndDofTexture.Sample(SunShaftAndDofSampler, InUVs[5]).r) * 0.125 + SunUnBias(SunShaftAndDofTexture.Sample(SunShaftAndDofSampler, InUVs[6]).r) * 0.125 + SunUnBias(SunShaftAndDofTexture.Sample(SunShaftAndDofSampler, InUVs[7]).r) * 0.125; OutColor = HighlightCompression(OutColor); }SunShaftAndDofTexture is accessed without using UV Clampling and sometimes garbage is read (see SunShaftAndDofContent.jpg image). This happens in very specific resolutions. In my case I have to change my display resolution to reproduce consistently.
The easiest solution is to just change in PostProcessMobile.cpp:
SunMaskOutput = FScreenPassRenderTarget(GraphBuilder.CreateTexture(OutputDesc, TEXT("SunMask")), Inputs.SceneColor.ViewRect, ERenderTargetLoadAction::ENoAction);
to:
SunMaskOutput = FScreenPassRenderTarget(GraphBuilder.CreateTexture(OutputDesc, TEXT("SunMask")), Inputs.SceneColor.ViewRect, ERenderTargetLoadAction::EClear);
A clear is actually performed in all other sun related passes (see ClearsInSunBlurAndSunMerge.jpg image) so this solution is also consistent.
This issue appear to occur when the render target ends up with odd width, when run on an RTX 4090 with latest Nvidia drivers.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-353717 in the post.
| 0 |
| Component | UE - Platform - Mobile |
|---|---|
| Affects Versions | 5.6 |
| Created | Nov 13, 2025 |
|---|---|
| Updated | Nov 13, 2025 |