"Disco Mode" Issue

I’m having a discrepancy between game view and player, which I’ve been having forever. It occurs 95% of the times, but I haven’t been able to detect a pattern so far.

In the player:


In the game view:

The log showing shader issues (they occur whether it’s correct or not – unsure if it shows the exact same log entries):
Player.log

Unloading 6 Unused Serialized files (Serialized files now loaded: 0)
WARNING: Shader Unsupported: ‘Hidden/Nature/Terrain/Utilities’ - All passes removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
ERROR: Shader Hidden/Nature/Terrain/Utilities shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
WARNING: Shader Unsupported: ‘Universal Render Pipeline/Simple Lit’ - All passes removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
WARNING: Shader Unsupported: ‘Universal Render Pipeline/Lit’ - All passes removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
Compiled shader: Universal Render Pipeline/Lit, pass: ShadowCaster, stage: vertex, keywords INSTANCING_ON
Compiled shader: Universal Render Pipeline/Lit, pass: ShadowCaster, stage: fragment, keywords INSTANCING_ON
Compiled shader: Universal Render Pipeline/Lit, pass: ShadowCaster, stage: vertex, keywords INSTANCING_ON _ALPHATEST_ON
Compiled shader: Universal Render Pipeline/Lit, pass: ShadowCaster, stage: fragment, keywords INSTANCING_ON _ALPHATEST_ON
Compiled shader: Universal Render Pipeline/Lit, pass: ShadowCaster, stage: vertex, keywords
Compiled shader: Universal Render Pipeline/Lit, pass: ShadowCaster, stage: fragment, keywords
Compiled shader: Universal Render Pipeline/Terrain/Lit, pass: ShadowCaster, stage: vertex, keywords
Compiled shader: Universal Render Pipeline/Terrain/Lit, pass: ShadowCaster, stage: fragment, keywords
Compiled shader: Universal Render Pipeline/Simple Lit, pass: ShadowCaster, stage: vertex, keywords INSTANCING_ON
Compiled shader: Universal Render Pipeline/Simple Lit, pass: ShadowCaster, stage: fragment, keywords INSTANCING_ON
UnloadTime: 6.658403 ms
LoadSceneAsync completed: Scenario
#0 GetStacktrace(int)
#1 DebugStringToFile(DebugStringToFileData const&)
#2 DebugLogHandler_CUSTOM_Internal_Log(LogType, LogOption, ScriptingBackendNativeStringPtrOpaque*, ScriptingBackendNativeObjectPtrOpaque*)
#3 (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,UnityEngine.LogOption,string,UnityEngine.Object)
#4 mono_jit_runtime_invoke
#5 do_runtime_invoke
#6 mono_runtime_invoke
#7 scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
#8 ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
#9 AsyncOperation::InvokeCoroutine()
#10 PreloadManager::UpdatePreloadingSingleStep(PreloadManager::UpdatePreloadingFlags, int)
#11 PreloadManager::UpdatePreloading()
#12 InitPlayerLoopCallbacks()::EarlyUpdateUpdatePreloadingRegistrator::Forward()
#13 ExecutePlayerLoop(NativePlayerLoopSystem*)
#14 ExecutePlayerLoop(NativePlayerLoopSystem*)
#15 PlayerLoop()
#16 -[PlayerAppDelegate UpdatePlayer]
#17 __NSFireTimer
#18 CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION
#19 __CFRunLoopDoTimer
#20 __CFRunLoopDoTimers
#21 __CFRunLoopRun
#22 CFRunLoopRunSpecific
#23 RunCurrentEventLoopInMode
#24 ReceiveNextEventCommon
#25 _BlockUntilNextEventMatchingListInModeWithFilter
#26 _DPSNextEvent
#27 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
#28 -[NSApplication run]
#29 NSApplicationMain
#30 PlayerMain(int, char const**)
#31 start

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

Compiled shader: Universal Render Pipeline/Lit, pass: ShadowCaster, stage: vertex, keywords _ALPHATEST_ON
Compiled shader: Universal Render Pipeline/Lit, pass: ShadowCaster, stage: fragment, keywords _ALPHATEST_ON
Compiled shader: Universal Render Pipeline/Lit, pass: ForwardLit, stage: vertex, keywords _ADDITIONAL_LIGHTS _ENVIRONMENTREFLECTIONS_OFF _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _SHADOWS_SOFT _SPECULARHIGHLIGHTS_OFF _SPECULAR_SETUP
Compiled shader: Universal Render Pipeline/Lit, pass: ForwardLit, stage: fragment, keywords _ADDITIONAL_LIGHTS _ENVIRONMENTREFLECTIONS_OFF _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _SHADOWS_SOFT _SPECULARHIGHLIGHTS_OFF _SPECULAR_SETUP
Compiled shader: Universal Render Pipeline/Lit, pass: ForwardLit, stage: vertex, keywords _ADDITIONAL_LIGHTS _ALPHATEST_ON _ENVIRONMENTREFLECTIONS_OFF _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _SHADOWS_SOFT _SPECULARHIGHLIGHTS_OFF _SPECULAR_SETUP
Compiled shader: Universal Render Pipeline/Lit, pass: ForwardLit, stage: fragment, keywords _ADDITIONAL_LIGHTS _ALPHATEST_ON _ENVIRONMENTREFLECTIONS_OFF _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _SHADOWS_SOFT _SPECULARHIGHLIGHTS_OFF _SPECULAR_SETUP
System memory in use before: 189.0 MB.
System memory in use after: 189.2 MB.

Unloading 219 unused Assets to reduce memory usage. Loaded Objects now: 2247.
Total: 1.831234 ms (FindLiveObjects: 0.212838 ms CreateObjectMapping: 0.089758 ms MarkObjects: 1.414210 ms DeleteObjects: 0.112180 ms)

Compiled shader: Universal Render Pipeline/Lit, pass: ForwardLit, stage: vertex, keywords INSTANCING_ON _ADDITIONAL_LIGHTS _ENVIRONMENTREFLECTIONS_OFF _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _SHADOWS_SOFT _SPECULARHIGHLIGHTS_OFF _SPECULAR_SETUP
Compiled shader: Universal Render Pipeline/Lit, pass: ForwardLit, stage: fragment, keywords INSTANCING_ON _ADDITIONAL_LIGHTS _ENVIRONMENTREFLECTIONS_OFF _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _SHADOWS_SOFT _SPECULARHIGHLIGHTS_OFF _SPECULAR_SETUP
Compiled shader: Universal Render Pipeline/Lit, pass: ForwardLit, stage: vertex, keywords INSTANCING_ON _ADDITIONAL_LIGHTS _ALPHATEST_ON _ENVIRONMENTREFLECTIONS_OFF _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _SHADOWS_SOFT _SPECULARHIGHLIGHTS_OFF _SPECULAR_SETUP
Compiled shader: Universal Render Pipeline/Lit, pass: ForwardLit, stage: fragment, keywords INSTANCING_ON _ADDITIONAL_LIGHTS _ALPHATEST_ON _ENVIRONMENTREFLECTIONS_OFF _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _SHADOWS_SOFT _SPECULARHIGHLIGHTS_OFF _SPECULAR_SETUP

Running URP 9.0.0 preview 14, macOS Catalina 10.15.4, using an 8GB AMD Radeon Pro 5500M. I’ve also had this issue on my previous machine, also a mac, with AMD graphics card.

What info can I provide to solve this issue?

Hi!
On which Unity version does this happen?
Does turning SRP Batcher off fix this?

1 Like

Hi there! :slight_smile: 2020.1.0b7 – will check the SRP Batcher.

Turning it off fixes it, thanks! Now that I think of it, I’m pretty sure I had it switched off pre 9.0.0 – is it possible it was switched on when I upgraded to 9.0.0?
Do you know why it does not work or are you looking for infos – if so, what can I provide?

Can be, but if this happened, it should’ve been communicated in the change log.

This happens when the material uses a built-in feature that SRP batcher doesn’t support. On older APIs uninitialized data is not read and yields some default (usually 0,0,0,1) value, but that’s not true for Metal, VK and DX12.

Are you using instancing for these disco draw calls?

1 Like

Thanks for the explanation! The issue only appears to occur for materials using GPU instancing.

Can you turn instancing off or are you really rendering a lot of identical objects?

I can turn it off – I have it switched on for when I expect 10+ objects and the only one where I expect to have 20-100 instances is a bullet trail quad. Ok, I’ll switch instancing off and re-enable the SRP batcher.

From your questions and infos I can assume this is not do-/fixable even in the future…?

I’m not sure, tbh
I’ll ask the team that’s handling SRP batcher :slight_smile:

I was just trying to give you a quick workaround for now.

1 Like

Thank you, it helped! :slight_smile: (I was mainly trying to figure out if I should just leave SRP and instancing be for a year or so)

So, it looks like it doesn’t support SH and local lighting with instancing.
As far as I understand, there is no plan to fix this in pre-2020. So you either have to disable the SRP batcher or instancing on those materials. Just pick whatever hurts the performance less :wink:

1 Like

Ok, then I’ll assume there is a plan to fix it in a 2020+ :slight_smile: (I use 2020: "Disco Mode" Issue - #3 by florianhanke )

Well, that’s the information I found, so I can’t promise anything :slight_smile:
It might be that it’ll get fixed for some use cases only, for example for DOTS instancing.

1 Like