From owner-freebsd-x11@FreeBSD.ORG Mon Nov 6 08:53:13 2006 Return-Path: X-Original-To: freebsd-x11@freebsd.org Delivered-To: freebsd-x11@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EDBA516A407 for ; Mon, 6 Nov 2006 08:53:13 +0000 (UTC) (envelope-from vehemens@verizon.net) Received: from vms042pub.verizon.net (vms042pub.verizon.net [206.46.252.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id B3C6443D5A for ; Mon, 6 Nov 2006 08:53:13 +0000 (GMT) (envelope-from vehemens@verizon.net) Received: from susy.dsl-verizon.net ([71.106.238.174]) by vms042.mailsrvcs.net (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) with ESMTPA id <0J8A00E96WNYZ4R4@vms042.mailsrvcs.net> for freebsd-x11@freebsd.org; Mon, 06 Nov 2006 02:52:47 -0600 (CST) Date: Mon, 06 Nov 2006 00:46:42 -0800 From: vehemens To: freebsd-x11@freebsd.org Message-id: <200611060046.42838.vehemens@verizon.net> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit Content-disposition: inline User-Agent: KMail/1.9.4 Subject: GLX broken? X-BeenThere: freebsd-x11@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: X11 on FreeBSD -- maintaining and support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Nov 2006 08:53:14 -0000 Try 2. Got to love mailers --- hw/xfree86/dri/dri.c.orig Fri Oct 13 15:52:55 2006 +++ hw/xfree86/dri/dri.c Mon Oct 30 22:06:48 2006 @@ -1577,8 +1577,12 @@ /* unwrap */ pScreen->WindowExposures = pDRIPriv->wrap.WindowExposures; + DRILock(pScreen, 0); + /* call lower layers */ (*pScreen->WindowExposures)(pWin, prgn, bsreg); + + DRIUnlock(pScreen); /* rewrap */ pDRIPriv->wrap.WindowExposures = pScreen->WindowExposures; --- /usr/cvsup/xorg_current/mesa/drm/shared-core/radeon_cp.c Sat Sep 16 00:01:49 2006 +++ /usr/cvsup/drm-mine/shared-core/radeon_cp.c Sun Oct 22 03:54:49 2006 @@ -1937,7 +1937,7 @@ drm_radeon_private_t *dev_priv = dev->dev_private; DRM_DEBUG("\n"); - LOCK_TEST_WITH_RETURN(dev, filp); +// LOCK_TEST_WITH_RETURN(dev, filp); return radeon_do_cp_idle(dev_priv); } @@ -1956,7 +1956,7 @@ DRM_DEVICE; DRM_DEBUG("\n"); - LOCK_TEST_WITH_RETURN(dev, filp); +// LOCK_TEST_WITH_RETURN(dev, filp); return radeon_do_engine_reset(dev); } @@ -2150,7 +2150,7 @@ drm_dma_t __user *argp = (void __user *)data; drm_dma_t d; - LOCK_TEST_WITH_RETURN(dev, filp); +// LOCK_TEST_WITH_RETURN(dev, filp); DRM_COPY_FROM_USER_IOCTL(d, argp, sizeof(d)); --- /usr/cvsup/xorg_current/mesa/drm/shared-core/radeon_state.c Mon Oct 9 21:05:51 2006 +++ /usr/cvsup/drm-mine/shared-core/radeon_state.c Mon Oct 23 16:28:43 2006 @@ -1358,10 +1358,9 @@ /* Wait for the 3D stream to idle before dispatching the bitblt. * This will prevent data corruption between the two streams. */ - BEGIN_RING(2); - - RADEON_WAIT_UNTIL_3D_IDLE(); + BEGIN_RING(2); + RADEON_WAIT_UNTIL_IDLE(); ADVANCE_RING(); for (i = 0; i < nbox; i++) { @@ -2485,7 +2484,7 @@ drm_radeon_indirect_t indirect; RING_LOCALS; - LOCK_TEST_WITH_RETURN(dev, filp); +// LOCK_TEST_WITH_RETURN(dev, filp); if (!dev_priv) { DRM_ERROR("%s called with no initialization\n", __FUNCTION__); @@ -2911,6 +2910,7 @@ drm_radeon_cmd_header_t header; int orig_nbox, orig_bufsz; char *kbuf = NULL; + RING_LOCALS; LOCK_TEST_WITH_RETURN(dev, filp); @@ -2950,6 +2950,14 @@ } orig_nbox = cmdbuf.nbox; + + /* Wait for the engine to idle before the indirect buffer + * is processed. + */ + + BEGIN_RING(2); + RADEON_WAIT_UNTIL_IDLE(); + ADVANCE_RING(); if (dev_priv->microcode_version == UCODE_R300) { int temp;