#3997 Crash in a gltf asset enabled region

master
Andrey Kleshchev 2025-04-29 17:09:19 +03:00 committed by Beq
parent 3f314f17f6
commit be5e3e20fa
2 changed files with 9 additions and 3 deletions

View File

@ -1076,8 +1076,8 @@ void LLGLSLShader::bind()
void LLGLSLShader::bind(U8 variant)
{
llassert(mGLTFVariants.size() == LLGLSLShader::NUM_GLTF_VARIANTS);
llassert(variant < LLGLSLShader::NUM_GLTF_VARIANTS);
llassert_always(mGLTFVariants.size() == LLGLSLShader::NUM_GLTF_VARIANTS);
llassert_always(variant < LLGLSLShader::NUM_GLTF_VARIANTS);
mGLTFVariants[variant].bind();
}
@ -1085,7 +1085,7 @@ void LLGLSLShader::bind(bool rigged)
{
if (rigged)
{
llassert(mRiggedVariant);
llassert_always(mRiggedVariant);
mRiggedVariant->bind();
}
else

View File

@ -643,6 +643,12 @@ void GLTFSceneManager::render(Asset& asset, U8 variant)
return;
}
if (gGLTFPBRMetallicRoughnessProgram.mGLTFVariants.size() <= variant)
{
llassert(false); // mGLTFVariants should have been initialized
return;
}
for (U32 ds = 0; ds < 2; ++ds)
{
RenderData& rd = asset.mRenderData[ds];