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

Bug#414031: google-earth doesn't work with current version of xserver-xorg-video-i810



On Sun, 2007-03-11 at 15:05 +0100, Hermann Kraus wrote:
> On Fri, 09 Mar 2007 15:40:23 +0100, Michel Dänzer <daenzer@debian.org>  
> wrote:
> > Alternatively, does it work with libgl1-mesa-dri from experimental?
> 
> ------
> The following packages will be upgraded:
>    libdrm2 libgl1-mesa-dri libgl1-mesa-glx
> ------
> 
> This problem is gone. However the version from experimental seems to be  
> really experimental and doesn't work well. As soon as you zoom in to much  
> the screen gets blue.

That's a bug related to fog which has been fixed upstream in git in the
meantime.


> I'm not sure if this bugreport should be closed or kept open.

We should keep it open for now as it might be a genuine bug in
xserver-xorg-video-i810. Can you try rebuilding it with the attached
patch to see if that helps with the new kernel? Please try both versions
of libgl1-mesa-dri, as I suspect this might fix the old version but
regress the new one, requiring another fix for the latter.


-- 
Earthling Michel Dänzer           |          http://tungstengraphics.com
Libre software enthusiast         |          Debian, X and DRI developer
diff --git a/src/i830_dri.c b/src/i830_dri.c
index 524c4de..d1716bc 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -1513,13 +1513,20 @@ I830DRISetVBlankInterrupt (ScrnInfoPtr pScrn, Bool on)
 
     if (pI830->directRenderingEnabled && pI830->drmMinor >= 5) {
 	if (on) {
-	    if (pI830->planeEnabled[1]) {
-		if (pI830->drmMinor >= 6)
-		    pipe.pipe = DRM_I830_VBLANK_PIPE_A | DRM_I830_VBLANK_PIPE_B;
-		else
+	    if (pI830->drmMinor >= 6) {
+		pipe.pipe = 0;
+
+		if (pI830->planeEnabled[0])
+		    pipe.pipe |= DRM_I830_VBLANK_PIPE_A;
+
+		if (pI830->planeEnabled[1])
+		    pipe.pipe |= DRM_I830_VBLANK_PIPE_B;
+	    } else {
+		if (pI830->planeEnabled[1])
 		    pipe.pipe = DRM_I830_VBLANK_PIPE_B;
-	    } else
-		pipe.pipe = DRM_I830_VBLANK_PIPE_A;
+		else
+		    pipe.pipe = DRM_I830_VBLANK_PIPE_A;
+	    }
 	} else {
 	    pipe.pipe = 0;
 	}

Reply to: