mirror of
https://github.com/overte-org/overte.git
synced 2025-06-07 01:21:17 +02:00
Merge pull request #887 from daleglass/fix-ati-auto-vram
Fix getting the free VRAM on ATI cards
This commit is contained in:
commit
0157d5f804
1 changed files with 8 additions and 6 deletions
|
@ -219,19 +219,21 @@ void GLBackend::init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t GLBackend::getAvailableMemory() {
|
size_t GLBackend::getAvailableMemory() {
|
||||||
GLint mem;
|
// GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX returns 1 value
|
||||||
|
// GL_TEXTURE_FREE_MEMORY_ATI returns 4 values, we only need the first
|
||||||
|
GLint mem[4] = {0,0,0,0};
|
||||||
|
|
||||||
switch( _videoCard ) {
|
switch( _videoCard ) {
|
||||||
case NVIDIA:
|
case NVIDIA:
|
||||||
#if !defined(Q_OS_ANDROID)
|
#if !defined(Q_OS_ANDROID)
|
||||||
glGetIntegerv(GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, &mem);
|
glGetIntegerv(GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, &mem[0]);
|
||||||
#endif
|
#endif
|
||||||
return mem * BYTES_PER_KIB;
|
return mem[0] * BYTES_PER_KIB;
|
||||||
case ATI:
|
case ATI:
|
||||||
#if !defined(Q_OS_ANDROID)
|
#if !defined(Q_OS_ANDROID)
|
||||||
glGetIntegerv(GL_TEXTURE_FREE_MEMORY_ATI, &mem);
|
glGetIntegerv(GL_TEXTURE_FREE_MEMORY_ATI, &mem[0]);
|
||||||
#endif
|
#endif
|
||||||
return mem * BYTES_PER_KIB;
|
return mem[0] * BYTES_PER_KIB;
|
||||||
case MESA:
|
case MESA:
|
||||||
return 0; // Don't know the current value
|
return 0; // Don't know the current value
|
||||||
case Unknown:
|
case Unknown:
|
||||||
|
@ -1002,4 +1004,4 @@ void GLBackend::setCameraCorrection(const Mat4& correction, const Mat4& prevRend
|
||||||
|
|
||||||
void GLBackend::syncProgram(const gpu::ShaderPointer& program) {
|
void GLBackend::syncProgram(const gpu::ShaderPointer& program) {
|
||||||
gpu::gl::GLShader::sync(*this, *program);
|
gpu::gl::GLShader::sync(*this, *program);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue