From 067ca6323986dbcf76ad4f50709e56f4c31aa3a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Sun, 1 May 2011 11:49:26 +0200 Subject: [PATCH] Enable direct rendering for all Mesa drivers As KWin requires at least Mesa 7.10 for OpenGL we can be sure that all Mesa drivers support DRI2 and can enable direct rendering for it. Parsing the version string to identify if it is a mesa driver. This can cause breakage again in future versions of Mesa. Unfortunately version, vendor and renderer are the only information queryable just with OpenGL API. BUG: 270942 FIXED-IN: 4.7.0 --- opengltest/opengltest.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/opengltest/opengltest.cpp b/opengltest/opengltest.cpp index d2d8f70b9b..eda7b51ec1 100644 --- a/opengltest/opengltest.cpp +++ b/opengltest/opengltest.cpp @@ -81,16 +81,9 @@ int main(int argc, char *argv[]) if ((major == 1 && minor < 3) && !strstr(glxExtensions, "GLX_EXT_texture_from_pixmap")) return 1; - // Assume that direct rendering works with DRI2 drivers - const GLubyte *renderer = glGetString(GL_RENDERER); - if (strstr((const char *)renderer, "DRI2")) - return 0; - - // The Intel driver doesn't have DRI2 in the renderer string - if (strstr((const char *)renderer, "GEM")) - return 0; - - if (strstr((const char *)renderer, "Gallium")) + // Assume that all Mesa drivers support direct rendering + const GLubyte *version = glGetString(GL_VERSION); + if (strstr((const char *)version, "Mesa")) return 0; // Direct contexts also work with the NVidia driver