SL-17584 Make setShaders crashes more informative
parent
0ab6dfa12e
commit
664ba53e4c
|
|
@ -673,7 +673,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade
|
|||
|
||||
if (file == NULL)
|
||||
{
|
||||
LL_SHADER_LOADING_WARNS() << "GLSL Shader file not found: " << open_file_name << LL_ENDL;
|
||||
LL_WARNS("ShaderLoading") << "GLSL Shader file not found: " << open_file_name << LL_ENDL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -569,15 +569,14 @@ void LLViewerShaderMgr::setShaders()
|
|||
mShaderLevel[SHADER_DEFERRED] = deferred_class;
|
||||
mShaderLevel[SHADER_TRANSFORM] = transform_class;
|
||||
|
||||
BOOL loaded = loadBasicShaders();
|
||||
if (loaded)
|
||||
std::string shader_name = loadBasicShaders();
|
||||
if (shader_name.empty())
|
||||
{
|
||||
LL_INFOS() << "Loaded basic shaders." << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_ERRS() << "Unable to load basic shaders, verify graphics driver installed and current." << LL_ENDL;
|
||||
llassert(loaded);
|
||||
LL_ERRS() << "Unable to load basic shader " << shader_name << ", verify graphics driver installed and current." << LL_ENDL;
|
||||
reentrance = false; // For hygiene only, re-try probably helps nothing
|
||||
return;
|
||||
}
|
||||
|
|
@ -585,7 +584,7 @@ void LLViewerShaderMgr::setShaders()
|
|||
gPipeline.mShadersLoaded = true;
|
||||
|
||||
// Load all shaders to set max levels
|
||||
loaded = loadShadersEnvironment();
|
||||
BOOL loaded = loadShadersEnvironment();
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
|
|
@ -831,7 +830,7 @@ void LLViewerShaderMgr::unloadShaders()
|
|||
gPipeline.mShadersLoaded = false;
|
||||
}
|
||||
|
||||
BOOL LLViewerShaderMgr::loadBasicShaders()
|
||||
std::string LLViewerShaderMgr::loadBasicShaders()
|
||||
{
|
||||
// Load basic dependency shaders first
|
||||
// All of these have to load for any shaders to function
|
||||
|
|
@ -917,8 +916,8 @@ BOOL LLViewerShaderMgr::loadBasicShaders()
|
|||
// Note usage of GL_VERTEX_SHADER_ARB
|
||||
if (loadShaderFile(shaders[i].first, shaders[i].second, GL_VERTEX_SHADER_ARB, &attribs) == 0)
|
||||
{
|
||||
LL_SHADER_LOADING_WARNS() << "Failed to load vertex shader " << shaders[i].first << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS("Shader") << "Failed to load vertex shader " << shaders[i].first << LL_ENDL;
|
||||
return shaders[i].first;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -978,12 +977,12 @@ BOOL LLViewerShaderMgr::loadBasicShaders()
|
|||
// Note usage of GL_FRAGMENT_SHADER_ARB
|
||||
if (loadShaderFile(shaders[i].first, shaders[i].second, GL_FRAGMENT_SHADER_ARB, &attribs, index_channels[i]) == 0)
|
||||
{
|
||||
LL_SHADER_LOADING_WARNS() << "Failed to load fragment shader " << shaders[i].first << LL_ENDL;
|
||||
return FALSE;
|
||||
LL_WARNS("Shader") << "Failed to load fragment shader " << shaders[i].first << LL_ENDL;
|
||||
return shaders[i].first;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return std::string();
|
||||
}
|
||||
|
||||
BOOL LLViewerShaderMgr::loadShadersEnvironment()
|
||||
|
|
|
|||
|
|
@ -49,7 +49,11 @@ public:
|
|||
void setShaders();
|
||||
void unloadShaders();
|
||||
S32 getShaderLevel(S32 type);
|
||||
BOOL loadBasicShaders();
|
||||
|
||||
// loadBasicShaders in case of a failure returns
|
||||
// name of a file error happened at, otherwise
|
||||
// returns an empty string
|
||||
std::string loadBasicShaders();
|
||||
BOOL loadShadersEffects();
|
||||
BOOL loadShadersDeferred();
|
||||
BOOL loadShadersObject();
|
||||
|
|
|
|||
Loading…
Reference in New Issue