diff options
| author | Tofu Buzzard <no-email> | 2011-03-10 09:48:50 -0800 | 
|---|---|---|
| committer | Tofu Buzzard <no-email> | 2011-03-10 09:48:50 -0800 | 
| commit | ce4fe510b7345eac536f5bc68d8e113f7eb9e26d (patch) | |
| tree | 23705ca3e1425ec59db39cfcc9b3446bff035c6c | |
| parent | 3dfd3292bfcc39e5545c562b2454e07a939c0322 (diff) | |
| parent | 1aa6b7c770ed8bdbcd0c854cd8008f2f9538acae (diff) | |
merge
| -rw-r--r-- | indra/llrender/llgl.cpp | 8 | ||||
| -rw-r--r-- | indra/llrender/llgl.h | 1 | ||||
| -rw-r--r-- | indra/llrender/llglheaders.h | 10 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 7 | 
4 files changed, 26 insertions, 0 deletions
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index d1eb4c8be0..d5f0b81830 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -314,6 +314,7 @@ LLGLManager::LLGLManager() :  	mHasMultitexture(FALSE),  	mHasATIMemInfo(FALSE), +	mHasNVXMemInfo(FALSE),  	mNumTextureUnits(1),  	mHasMipMapGeneration(FALSE),  	mHasCompressedTextures(FALSE), @@ -505,6 +506,12 @@ bool LLGLManager::initGL()  		mVRAM = meminfo[0]/1024;  	} +	else if (mHasNVXMemInfo) +	{ +		S32 dedicated_memory; +		glGetIntegerv(GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX, &dedicated_memory); +		mVRAM = dedicated_memory/1024; +	}  	if (mHasMultitexture)  	{ @@ -669,6 +676,7 @@ void LLGLManager::initExtensions()  #else // LL_MESA_HEADLESS  	mHasMultitexture = glh_init_extensions("GL_ARB_multitexture");  	mHasATIMemInfo = ExtensionExists("GL_ATI_meminfo", gGLHExts.mSysExts); +	mHasNVXMemInfo = ExtensionExists("GL_NVX_gpu_memory_info", gGLHExts.mSysExts);  	mHasMipMapGeneration = glh_init_extensions("GL_SGIS_generate_mipmap");  	mHasSeparateSpecularColor = glh_init_extensions("GL_EXT_separate_specular_color");  	mHasAnisotropic = glh_init_extensions("GL_EXT_texture_filter_anisotropic"); diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h index f4be067f2e..0d7ba15b12 100644 --- a/indra/llrender/llgl.h +++ b/indra/llrender/llgl.h @@ -77,6 +77,7 @@ public:  	// Extensions used by everyone  	BOOL mHasMultitexture;  	BOOL mHasATIMemInfo; +	BOOL mHasNVXMemInfo;  	S32	 mNumTextureUnits;  	BOOL mHasMipMapGeneration;  	BOOL mHasCompressedTextures; diff --git a/indra/llrender/llglheaders.h b/indra/llrender/llglheaders.h index 46bc282436..6e5f7110af 100644 --- a/indra/llrender/llglheaders.h +++ b/indra/llrender/llglheaders.h @@ -837,4 +837,14 @@ extern void glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);  #define GL_DEPTH_CLAMP 0x864F  #endif +//GL_NVX_gpu_memory_info constants +#ifndef GL_NVX_gpu_memory_info +#define GL_NVX_gpu_memory_info +#define	GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX          0x9047
 +#define	GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX    0x9048
 +#define	GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX  0x9049
 +#define	GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX            0x904A
 +#define	GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX            0x904B +#endif +  #endif // LL_LLGLHEADERS_H diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 093e94add0..f665f39e9c 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -481,6 +481,13 @@ public:  					ypos += y_inc;  				}  			} +			else if (gGLManager.mHasNVXMemInfo) +			{ +				S32 free_memory; +				glGetIntegerv(GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, &free_memory); +				addText(xpos, ypos, llformat("%.2f MB Video Memory Free", free_memory/1024.f)); +				ypos += y_inc; +			}  			addText(xpos, ypos, llformat("%d MB Vertex Data", LLVertexBuffer::sAllocatedBytes/(1024*1024)));  			ypos += y_inc;  | 
