[Mesa-dev] [PATCH 2/2] Make envvars set to zero actually be false
Matt Turner
mattst88 at gmail.com
Thu Oct 11 13:56:35 PDT 2012
Previously, LIBGL_ALWAYS_SOFTWARE=0 glxgears would still run swrast.
This is not what people expect.
---
Please check my logic. The Apple code checks the opposite (whether we
want software/indirect) whereas the other code checks if we have acceleration.
src/egl/drivers/dri2/platform_x11.c | 4 ++--
src/glx/apple/apple_visual.c | 5 +++--
src/glx/glxext.c | 7 +++++--
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index 936e380..38b001b 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -1205,8 +1205,8 @@ EGLBoolean
dri2_initialize_x11(_EGLDriver *drv, _EGLDisplay *disp)
{
EGLBoolean initialized = EGL_TRUE;
-
- int x11_dri2_accel = (getenv("LIBGL_ALWAYS_SOFTWARE") == NULL);
+ char *env = getenv("LIBGL_ALWAYS_SOFTWARE");
+ int x11_dri2_accel = (!env || strcmp(env, "1"));
if (x11_dri2_accel) {
if (!dri2_initialize_x11_dri2(drv, disp)) {
diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c
index 282934f..bef50ca 100644
--- a/src/glx/apple/apple_visual.c
+++ b/src/glx/apple/apple_visual.c
@@ -72,6 +72,7 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m
int numattr = 0;
GLint vsref = 0;
CGLError error = 0;
+ char *env;
/* Request an OpenGL 3.2 profile if one is available */
if(apple_cgl.version_major > 1 || (apple_cgl.version_major == 1 && apple_cgl.version_minor >= 3)) {
@@ -87,13 +88,13 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m
attr[numattr++] = kCGLPFAColorSize;
attr[numattr++] = 32;
}
- else if (getenv("LIBGL_ALWAYS_SOFTWARE") != NULL) {
+ else if ((env = getenv("LIBGL_ALWAYS_SOFTWARE")) && strcmp(env, "0")) {
apple_glx_diagnostic
("Software rendering requested. Using kCGLRendererGenericFloatID.\n");
attr[numattr++] = kCGLPFARendererID;
attr[numattr++] = kCGLRendererGenericFloatID;
}
- else if (getenv("LIBGL_ALLOW_SOFTWARE") != NULL) {
+ else if ((env = getenv("LIBGL_ALLOW_SOFTWARE")) && strcmp(env, "0")) {
apple_glx_diagnostic
("Software rendering is not being excluded. Not using kCGLPFAAccelerated.\n");
}
diff --git a/src/glx/glxext.c b/src/glx/glxext.c
index 4d59a06..a33c85f 100644
--- a/src/glx/glxext.c
+++ b/src/glx/glxext.c
@@ -776,6 +776,7 @@ __glXInitialize(Display * dpy)
struct glx_display *dpyPriv, *d;
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
Bool glx_direct, glx_accel;
+ char *glx_direct_env, *glx_accel_env;
#endif
int i;
@@ -829,8 +830,10 @@ __glXInitialize(Display * dpy)
dpyPriv->glXDrawHash = __glxHashCreate();
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
- glx_direct = (getenv("LIBGL_ALWAYS_INDIRECT") == NULL);
- glx_accel = (getenv("LIBGL_ALWAYS_SOFTWARE") == NULL);
+ glx_direct_env = getenv("LIBGL_ALWAYS_INDIRECT");
+ glx_accel_env = getenv("LIBGL_ALWAYS_SOFTWARE");
+ glx_direct = (!glx_direct_env || strcmp(glx_direct_env, "1"));
+ glx_accel = (!glx_accel_env || strcmp(glx_accel_env, "1"));
dpyPriv->drawHash = __glxHashCreate();
--
1.7.8.6
More information about the mesa-dev
mailing list