diff options
| -rw-r--r-- | indra/llrender/llgl.cpp | 7 | ||||
| -rw-r--r-- | indra/llrender/llgl.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewerstats.cpp | 18 | 
3 files changed, 25 insertions, 3 deletions
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index 013b86f32c..639d967853 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -558,7 +558,8 @@ bool LLGLManager::initGL()  	parse_gl_version( &mDriverVersionMajor,   		&mDriverVersionMinor,   		&mDriverVersionRelease,  -		&mDriverVersionVendorString ); +		&mDriverVersionVendorString, +		&mGLVersionString);  	mGLVersion = mDriverVersionMajor + mDriverVersionMinor * .1f; @@ -2053,7 +2054,7 @@ void LLGLManager::initGLStates()  //////////////////////////////////////////////////////////////////////////////// -void parse_gl_version( S32* major, S32* minor, S32* release, std::string* vendor_specific ) +void parse_gl_version( S32* major, S32* minor, S32* release, std::string* vendor_specific, std::string* version_string )  {  	// GL_VERSION returns a null-terminated string with the format:   	// <major>.<minor>[.<release>] [<vendor specific>] @@ -2069,6 +2070,8 @@ void parse_gl_version( S32* major, S32* minor, S32* release, std::string* vendor  		return;  	} +	version_string->assign(version); +  	std::string ver_copy( version );  	S32 len = (S32)strlen( version );	/* Flawfinder: ignore */  	S32 i = 0; diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h index 5a33c98708..9c3a47bd50 100644 --- a/indra/llrender/llgl.h +++ b/indra/llrender/llgl.h @@ -141,6 +141,7 @@ public:  	S32 mGLSLVersionMajor;  	S32 mGLSLVersionMinor;  	std::string mDriverVersionVendorString; +	std::string mGLVersionString;  	S32 mVRAM; // VRAM in MB  	S32 mGLMaxVertexRange; @@ -423,7 +424,7 @@ extern LLMatrix4 gGLObliqueProjectionInverse;  void init_glstates(); -void parse_gl_version( S32* major, S32* minor, S32* release, std::string* vendor_specific ); +void parse_gl_version( S32* major, S32* minor, S32* release, std::string* vendor_specific, std::string* version_string );  extern BOOL gClothRipple;  extern BOOL gHeadlessClient; diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index c88122f22c..28dea8aa04 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -789,6 +789,24 @@ void send_stats()  	system["gpu_class"] = (S32)LLFeatureManager::getInstance()->getGPUClass();  	system["gpu_vendor"] = gGLManager.mGLVendorShort;  	system["gpu_version"] = gGLManager.mDriverVersionVendorString; +	system["opengl_version"] = gGLManager.mGLVersionString; + +	S32 shader_level = 0; +	if (LLPipeline::sRenderDeferred) +	{ +		shader_level = 3; +	} +	else if (gPipeline.canUseWindLightShadersOnObjects()) +	{ +		shader_level = 2; +	} +	else if (gPipeline.canUseVertexShaders()) +	{ +		shader_level = 1; +	} + + +	system["shader_level"] = shader_level;  	LLSD &download = body["downloads"];  | 
