[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#635060: marked as done (libgl1-mesa-glx: libGL does not fallback to indirect rendering automatically (w/ patch))



Your message dated Sun, 4 Nov 2012 14:35:35 +0100
with message-id <20121104133535.GR17465@radis.cristau.org>
and subject line Re: Bug#635060: libgl1-mesa-glx: libGL does not fallback to indirect rendering automatically (w/ patch)
has caused the Debian Bug report #635060,
regarding libgl1-mesa-glx: libGL does not fallback to indirect rendering automatically (w/ patch)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
635060: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=635060
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: libgl1-mesa-glx
Version: 7.7.1-4
Severity: normal
Tags: upstream patch

libGL does not fallback to indirect rendering automatically when necessary,
setting LIBGL_ALWAYS_INDIRECT environment variable is usually required 
(application fails with "Error: couldn't find RGB GLX visual or fbconfig"
or similar error otherwise).

The patch fixes handling of incompatible visuals and fbconfigs between
local DRI driver and remote GLX display, fallback driver is used instead 
of useless empty configuration.

-- System Information:
Debian Release: 6.0.1
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/16 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libgl1-mesa-glx depends on:
ii  libc6                  2.11.2-10         Embedded GNU C Library: Shared lib
ii  libdrm2                2.4.21-1~squeeze3 Userspace interface to kernel DRM 
ii  libx11-6               2:1.3.3-4         X11 client-side library
ii  libxdamage1            1:1.1.3-1         X11 damaged region extension libra
ii  libxext6               2:1.1.2-1         X11 miscellaneous extension librar
ii  libxfixes3             1:4.0.5-1         X11 miscellaneous 'fixes' extensio
ii  libxxf86vm1            1:1.1.0-2         X11 XFree86 video mode extension l

Versions of packages libgl1-mesa-glx recommends:
ii  libgl1-mesa-dri               7.7.1-4    A free implementation of the OpenG

libgl1-mesa-glx suggests no packages.

-- no debconf information
--- mesa.orig/src/glx/x11/drisw_glx.c	2011-07-21 19:35:46.819907934 +0200
+++ mesa/src/glx/x11/drisw_glx.c	2011-07-21 22:35:05.767907534 +0200
@@ -349,6 +349,7 @@
    psc->__driScreen = NULL;
    if (psc->driver)
       dlclose(psc->driver);
+   psc->driver = NULL;
 }
 
 static __GLXDRIscreen *
@@ -359,6 +360,7 @@
    const __DRIconfig **driver_configs;
    const __DRIextension **extensions;
    const char *driverName = "swrast";
+   __GLcontextModes *visuals, *configs;
    int i;
 
    psp = Xcalloc(1, sizeof *psp);
@@ -398,10 +400,19 @@
       goto handle_error;
    }
 
+   configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
+   visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);
+
+   if (configs == NULL || visuals == NULL) {
+	driDestroyScreen(psc);
+	ErrorMessageF("driver supports no visual or config\n");
+        goto handle_error;
+   }
+
    driBindExtensions(psc, 0);
 
-   psc->configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
-   psc->visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);
+   psc->configs = configs;
+   psc->visuals = visuals;
 
    psc->driver_configs = driver_configs;
 
--- mesa.orig/src/glx/x11/dri_common.c	2011-07-21 23:03:42.471907705 +0200
+++ mesa/src/glx/x11/dri_common.c	2011-07-22 09:51:46.207906621 +0200
@@ -331,7 +331,7 @@
       tail = tail->next;
    }
 
-   _gl_context_modes_destroy(modes);
+   /* _gl_context_modes_destroy(modes); */
 
    return head.next;
 }
--- mesa.orig/src/glx/x11/dri_glx.c	2011-07-21 23:08:01.888032664 +0200
+++ mesa/src/glx/x11/dri_glx.c	2011-07-21 23:17:43.692033344 +0200
@@ -316,6 +316,7 @@
    int junk;
    const __DRIconfig **driver_configs;
    __GLcontextModes *visual;
+   __GLcontextModes *visuals, *configs;
 
    /* DRI protocol version. */
    dri_version.major = driDpy->driMajor;
@@ -424,8 +425,20 @@
       goto handle_error;
    }
 
-   psc->configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
-   psc->visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);
+   configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
+   visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);
+
+   if (configs == NULL || visuals == NULL) {
+      if (configs != NULL) _gl_context_modes_destroy(configs);
+      if (visuals != NULL) _gl_context_modes_destroy(visuals);
+      ErrorMessageF("driver supports no visual or config\n");
+      goto handle_error;
+   }
+
+   _gl_context_modes_destroy(psc->configs);
+   _gl_context_modes_destroy(psc->visuals);
+   psc->configs = configs;
+   psc->visuals = visuals;
 
    psc->driver_configs = driver_configs;
 
--- mesa.orig/src/glx/x11/dri2_glx.c	2011-07-21 23:23:34.147907316 +0200
+++ mesa/src/glx/x11/dri2_glx.c	2011-07-21 23:27:07.319907259 +0200
@@ -308,6 +308,10 @@
    (*psc->core->destroyScreen) (psc->__driScreen);
    close(psc->fd);
    psc->__driScreen = NULL;
+   if (psc->driver)
+      dlclose(psc->driver);
+   psc->driver = NULL;
+
 }
 
 /**
@@ -425,6 +429,7 @@
    const __GLXDRIdisplayPrivate *const pdp = (__GLXDRIdisplayPrivate *)
       priv->dri2Display;
    __GLXDRIscreen *psp;
+   __GLcontextModes *visuals, *configs;
    char *driverName, *deviceName;
    drm_magic_t magic;
    int i;
@@ -496,10 +501,22 @@
       goto handle_error;
    }
 
-   driBindExtensions(psc, 1);
+   configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
+   visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);
 
-   psc->configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
-   psc->visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);
+   if (configs == NULL || visuals == NULL) {
+      if (configs != NULL) _gl_context_modes_destroy(configs);
+      if (visuals != NULL) _gl_context_modes_destroy(visuals);
+      ErrorMessageF("driver supports no visual or config\n");
+      goto handle_error;
+   }
+
+   _gl_context_modes_destroy(psc->configs);
+   _gl_context_modes_destroy(psc->visuals);
+   psc->configs = configs;
+   psc->visuals = visuals;
+
+   driBindExtensions(psc, 1);
 
    psc->driver_configs = driver_configs;
 

--- End Message ---
--- Begin Message ---
On Sun, Dec  4, 2011 at 16:44:53 +0100, Julien Cristau wrote:

> On Fri, Jul 22, 2011 at 18:30:22 +0200, Julien Cristau wrote:
> 
> > On Fri, Jul 22, 2011 at 11:52:50 +0200, Zdenek Salvet wrote:
> > 
> > > Package: libgl1-mesa-glx
> > > Version: 7.7.1-4
> > > Severity: normal
> > > Tags: upstream patch
> > > 
> > > libGL does not fallback to indirect rendering automatically when necessary,
> > > setting LIBGL_ALWAYS_INDIRECT environment variable is usually required 
> > > (application fails with "Error: couldn't find RGB GLX visual or fbconfig"
> > > or similar error otherwise).
> > > 
> > > The patch fixes handling of incompatible visuals and fbconfigs between
> > > local DRI driver and remote GLX display, fallback driver is used instead 
> > > of useless empty configuration.
> > > 
> > Is that change included upstream?  If not, please update it for the
> > current tree and send to mesa-dev@lists.freedesktop.org.  If yes, what's
> > the relevant git commit?
> > 
> Ping?
> 
No reply, closing.

Cheers,
Julien

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: