diff options
| -rw-r--r-- | indra/llrender/llshadermgr.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llfeaturemanager.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llgltfmateriallist.cpp | 9 | 
3 files changed, 14 insertions, 10 deletions
| diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index 43d59f7b43..96e83e6fbe 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -592,7 +592,7 @@ void LLShaderMgr::dumpShaderSource(U32 shader_code_count, GLchar** shader_code_t      LL_CONT << LL_ENDL;  } -void LLShaderMgr::dumpObjectLog(GLuint ret, BOOL warns, const std::string& filename)  +void LLShaderMgr::dumpObjectLog(GLuint ret, BOOL warns, const std::string& filename)  {  	std::string log = get_object_log(ret);      std::string fname = filename; @@ -985,11 +985,6 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev  	fclose(file); -    error = glGetError(); -    if (error != GL_NO_ERROR) -    { -        LL_WARNS("HRS") << "WTF? Should be no error here: " << error << LL_ENDL; -    }  	//create shader object      GLuint ret = glCreateShader(type); @@ -1069,7 +1064,7 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev  	return ret;  } -BOOL LLShaderMgr::linkProgramObject(GLuint obj, BOOL suppress_errors)  +BOOL LLShaderMgr::linkProgramObject(GLuint obj, BOOL suppress_errors)  {  	//check for errors  	glLinkProgram(obj); @@ -1079,6 +1074,8 @@ BOOL LLShaderMgr::linkProgramObject(GLuint obj, BOOL suppress_errors)  	{  		//an error occured, print log  		LL_SHADER_LOADING_WARNS() << "GLSL Linker Error:" << LL_ENDL; +        dumpObjectLog(obj, TRUE, "linker"); +        return success;  	}  	std::string log = get_object_log(obj); @@ -1178,7 +1175,7 @@ void LLShaderMgr::initAttribsAndUniforms()      mReservedUniforms.push_back("emissiveColor");      mReservedUniforms.push_back("metallicFactor");      mReservedUniforms.push_back("roughnessFactor"); -     +  	mReservedUniforms.push_back("diffuseMap");      mReservedUniforms.push_back("altDiffuseMap");  	mReservedUniforms.push_back("specularMap"); diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index e934041e2e..826d4892ef 100644 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -607,7 +607,7 @@ void LLFeatureManager::applyFeatures(bool skipFeatures)  void LLFeatureManager::setGraphicsLevel(U32 level, bool skipFeatures)  {      LLViewerShaderMgr::sSkipReload = true; - +    flush_glerror(); // Whatever may have already happened (e.g., to cause us to change), don't let confuse it with new initializations.      applyBaseMasks();      // if we're passed an invalid level, default to "Low" diff --git a/indra/newview/llgltfmateriallist.cpp b/indra/newview/llgltfmateriallist.cpp index af00cdd05f..b2d223a3e8 100644 --- a/indra/newview/llgltfmateriallist.cpp +++ b/indra/newview/llgltfmateriallist.cpp @@ -56,9 +56,16 @@ LLGLTFMaterial* LLGLTFMaterialList::getMaterial(const LLUUID& id)                  }                  LLFileSystem file(id, asset_type, LLFileSystem::READ); +                auto size = file.getSize(); +                if (!size) +                { +                    LL_DEBUGS() << "Zero size material." << LL_ENDL; +                    mat->unref(); +                    return; +                }                  std::vector<char> buffer; -                buffer.resize(file.getSize()); +                buffer.resize(size);                  file.read((U8*)&buffer[0], buffer.size());                  LLSD asset; | 
