Skip to content

StandardMaterial with proximity fade breaks screen reading shader in Compatibility #112288

@nepo-dev

Description

@nepo-dev

Tested versions

  • Reproducible in v4.5.1.stable (f62fdbd)

System information

Godot v4.5.stable unknown - Manjaro Linux #1 SMP PREEMPT_DYNAMIC Fri, 19 Sep 2025 16:09:36 +0000 on X11 - X11 display driver, Multi-window, 2 monitors - OpenGL 3 (Compatibility) - Mesa Intel(R) UHD Graphics 620 (KBL GT2) - Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (8 threads) - 15.33 GiB memory

Issue description

I have a screen reading shader in a ColorRect that I use to apply screen effects. When I loaded a scene, the screen became completely black. After investigating, I realized that the scene had a Mesh with a Material that had "Proximity Fade" enabled. Disabling it makes the shader work

compatibility.mp4

Also, this seems to be happening exclusively in the Compatibility render pipeline. It works when using Forward+ and Mobile

forward.mp4

Steps to reproduce

I already prepared the setup in the MRP. To make it fail, just run it

Things that "fix" the problem:

  • Hide the object with Proximity Fade enabled and run the scene again
  • Change the render pipeline to Forward+ and run the scene again

Additionally, I found this issue in a bigger project, where the issue is fixed when the scene is loaded from a menu. It still happens when trying to run the scene directly, but loading it from the level selector avoids the problem for some reason I don't understand (the node tree looks identical). I've tried to replicate that behavior in the MRP and failed :(

Minimal reproduction project (MRP)

screen-reading-shader-issue.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions