diff options
| -rw-r--r-- | indra/llrender/llshadermgr.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llviewershadermgr.cpp | 21 | ||||
| -rw-r--r-- | indra/newview/llviewershadermgr.h | 6 | 
3 files changed, 16 insertions, 13 deletions
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index c100c182dd..c64f46f38a 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -665,7 +665,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;  	} diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index e926c5c3ba..1c9360a843 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -556,15 +556,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;      } @@ -572,7 +571,7 @@ void LLViewerShaderMgr::setShaders()      gPipeline.mShadersLoaded = true;      // Load all shaders to set max levels -    loaded = loadShadersEnvironment(); +    BOOL loaded = loadShadersEnvironment();      if (loaded)      { @@ -859,7 +858,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 @@ -945,8 +944,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;  		}  	} @@ -1005,12 +1004,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() diff --git a/indra/newview/llviewershadermgr.h b/indra/newview/llviewershadermgr.h index 93bb29a355..f8a261805b 100644 --- a/indra/newview/llviewershadermgr.h +++ b/indra/newview/llviewershadermgr.h @@ -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();  | 
