diff options
-rw-r--r-- | src/graphicsmanager.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp index 59f7d6fd9..611b0eb5b 100644 --- a/src/graphicsmanager.cpp +++ b/src/graphicsmanager.cpp @@ -909,8 +909,17 @@ void GraphicsManager::initOpenGLFunctions() return; } - if (findI(mGlVendor, "NVIDIA") == std::string::npos && - mGlVersionString.find("Mesa 10.6.") == std::string::npos) + if (findI(mGlVendor, "NVIDIA") != std::string::npos || + mGlVersionString.find("Mesa 10.6.") != std::string::npos || + (findI(mGlVendor, "AMD Radeon HD") != std::string::npos && + mGlVersionString.find("Compatibility Profile Context 14.10") != + std::string::npos)) + { + logger->log1("Not checked for DSA because on " + "NVIDIA or AMD or in Mesa it broken"); + emulateFunction(glTextureSubImage2D); + } + else { // not for NVIDIA. in NVIDIA atleast in windows drivers DSA is broken // Mesa 10.6.3 show support for DSA, but it broken. Works in 10.7 dev if (is45) @@ -936,12 +945,6 @@ void GraphicsManager::initOpenGLFunctions() emulateFunction(glTextureSubImage2D); } } - else - { - logger->log1("Not checked for DSA because on " - "NVIDIA or in Mesa it broken"); - emulateFunction(glTextureSubImage2D); - } if (is12 && (is42 || supportExtension("GL_ARB_texture_storage"))) { |