URP SceneView overdraw view

Now that’s been bugging me for a long time. For a long while there was no Rendering Debugger shipped with URP. To this day I am stuck on a URP version that does not have Rendering Debugger.

Why in the world did you guys disable Overdraw debug view from the SceneView? :eyes: This is the single best debug view in the engine and is mandatory to quickly debug GPU perf issues. :face_with_spiral_eyes:

I went ahead and re-enabled it in SceneViewDrawMode.cs, and it works just fine with about everything except VFXGraph shaders!

I’d like to add onto this by saying that I had to replace the overdraw shader in the built-in renderer, because the built-in one doesn’t take early z-rejection into account. Overdraw of opaque objects is usually not nearly as bad as the built-in overdraw view leads you to believe, because it ignores the front-to-back sorting Unity prefers to use.

It would be nice if URP’s overdraw view handled this.

1 Like

There you answered your own question :). It works except for “feature X, Y and Z”.
That means it doesn’t really work and given the fact we were working on a better system, then we disabled it as we have no intention to make it work with all SRP features. Also, like @peturdarri mentioned, the built-in overdraw mode was incorrect. In the Rendering Debugger this is correct. It also work on playmode and standalone and this is important to account for platforms differences. In mobile f.ex, a lot of those GPUs have Hidden Surface Removal, so the overdraw you see in the editor is not really a problem in the phone.

One great flexibility of SRP is that it’s open source, like you pointed out, if you can’t upgrade to the version that supports Rendering Debugger, enabling that mode is a single line source code change.

2 Likes

Is there any way of disabled textures in the Rendering Debugger?
Enabling overdraw doesn’t give me a pure representation of the number of repeat pixel writes, it’s showing colours from the asset texture which are wildly misleading, like all the white here: