Search Issue Tracker

Duplicate

Votes

5

Found in

2021.2

2022.1

2022.2

Issue ID

1412776

Regression

Yes

Shader remapping crashes the engine if no mapping is found

Shader System

-

Callstack:

UnityPlayer.dll!keywords::KeywordRemap::Remap(const keywords::LocalKeywordState & src, keywords::LocalKeywordState & dst)
UnityPlayer.dll!ShaderLab::Program::GetMatchingSubProgram(const Shader * fromShader, const ShaderLab::Pass * fromPass, const keywords::LocalKeywordState & kwords, unsigned int programMask, keywords::LocalKeywordState * outUsedKeywordsIfNotSupported, ShaderSnippetResult & outResult, AsyncShaderCompilationMode asyncMode, bool onlyFromCache, int subShaderIndex, int passIndex)
UnityPlayer.dll!ShaderLab::ShaderState::FindSubProgramsToUse(const Shader * fromShader, const ShaderLab::Pass * fromPass, ShaderLab::SubPrograms & subPrograms, const ShaderPassContext & passContext, const keywords::LocalKeywordState & kwords, bool onlyFromCache, int subShaderIndex, int passIndex)
UnityPlayer.dll!ShaderLab::ShaderState::ApplyShaderState(unsigned int stateKey, const ShaderPropertySheet * props, const ShaderPassContext & passContext, const keywords::LocalKeywordState & kwords, Shader * fromShader, ShaderLab::Pass * fromPass, bool * shaderMayChange, ShaderLab::SubPrograms * outSubProgramsToUse, const DeviceRenderStateBlock * statesOverride, int subShaderIndex, int passIndex)
UnityPlayer.dll!ShaderLab::Pass::ApplyPass(unsigned int stateKey, const ShaderPropertySheet * props, ShaderPassContext & passContext, const keywords::LocalKeywordState & keywords, Shader * fromShader, int subshaderIndex, int passIndex, bool * shaderMayChange, const ShaderLab::GrabPasses * grabPasses, ShaderLab::SubPrograms * outSubProgramsToUse, const DeviceRenderStateBlock * statesOverride)
UnityPlayer.dll!DrawVBOChunkWithPass(Shader * shader, int subshaderIndex, ShaderLab::Pass * pass, ShaderPassContext & passContext, const keywords::LocalKeywordState & variant, const WarmupPassSetup & setup, DynamicVBO * vbo)
UnityPlayer.dll!ShaderVariantCollection::WarmupOneShaderImpl(Shader * shader, const vector_set<ShaderVariantCollection::VariantInfo,std::less<ShaderVariantCollection::VariantInfo>,std::allocator<ShaderVariantCollection::VariantInfo>> & variants, const WarmupPassSetup & setup, DynamicVBO * vbo, void(*)(Shader *, int, int, ShaderLab::Pass *, const keywords::LocalKeywordState &, const WarmupPassSetup &, DynamicVBO *, void *, ShaderPassContext &) warmupFunction, void * userData)
UnityPlayer.dll!ShaderVariantCollection::WarmupShadersImpl(void(*)(Shader *, int, int, ShaderLab::Pass *, const keywords::LocalKeywordState &, const WarmupPassSetup &, DynamicVBO *, void *, ShaderPassContext &))
UnityPlayer.dll!ShaderVariantCollection::WarmupShaders(bool force)
UnityPlayer.dll!GraphicsSettings::WarmupPreloadedShaders()
UnityPlayer.dll!CallbackInfoBase<void (__cdecl*)(void),void (__cdecl*)(void const *)>::Invoke()
UnityPlayer.dll!CallbackArray::Invoke()
UnityPlayer.dll!PlayerLoadFirstScene(bool async)

Add comment

Log in to post comment