Search Issue Tracker
By Design
By Design in 2023.1.X
Votes
0
Found in
2020.3.36f1
2021.3.5f1
2022.1.8f1
2022.2.0a18
2023.1.0a2
Issue ID
UUM-8737
Regression
No
URP Custom Render Pass renders black in build when using OpenGLCore Graphics API
How to reproduce:
1. Open project "1423625_opengl-2021.3 (2).zip"
2. Press Edit -> Project Settings -> Player -> Other Settings
3. Disable "Auto Graphics API for Windows"
4. Choose OpenGlCore as Graphics API
5. Press File -> Build And Run
Expected result: the screen is rendered red
Actual result: the screen is rendered black
Reproducible with: 2020.3.36f1, 2021.3.5f1, 2022.1.8f1, 2022.2.0a18, 2023.1.0a2
Reproducible on: Windows 10 Pro
Note: issue doesn't appear when using Direct3D11 Graphics API
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- "Shader warning in 'Hidden/Light2D': implicit truncation of vector type" is thrown when building Universal 2D template
- AI Assistant breaks compilation of packages using System.Runtime.CompilerServices.Unsafe via auto-referencing
- Unity Hub checks the "Documentation" module by default on the 6.4 and 6.5 streams despite that it was unchecked with the previous installs
- Shortcut that toggles between Dopesheet and Curves Views in the Animation Window's Timeline is mislabed
- Property List Items Overlap onto the Property List's top edge when scrolling through a long Property List
Resolution Note:
In the custom render pass a Temporary RT is used and never cleared: https://docs.unity3d.com/ScriptReference/RenderTexture.GetTemporary.html
As the documentation says you can't rely on the previous contents of the RT. And because a custom shader is used for the blit (that has depth testing enabled) it does not pass the depth test only on OpenGL. https://docs.unity3d.com/Manual/SL-PlatformDifferences.html
I would recommend disabling depth testing in the custom shader or clearing the temporary RT.
Resolution Note (2023.1.X):
In the custom render pass a Temporary RT is used and never cleared: https://docs.unity3d.com/ScriptReference/RenderTexture.GetTemporary.html
As the documentation says you can't rely on the previous contents of the RT. And because a custom shader is used for the blit (that has depth testing enabled) it does not pass the depth test only on OpenGL. https://docs.unity3d.com/Manual/SL-PlatformDifferences.html
I would recommend disabling depth testing in the custom shader or clearing the temporary RT.