Ronny V. Vindenes wrote:
0x0000002a9579b885 in DoBindContext (dpy=0x5045a0, draw=52428802, read=52428802, ctx=0x511070, modes=0x50c4d0, psp=0x50ed40) at dri_util.c:480 480 DRM_SPINLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
OK, it looks like there might be some x86_64 magic missing to get spinlocks working...
Please try this diff - it will complain if no DRM_CAS is defined, which is one way to cause the infinite loop in DRM_SPINLOCK.
Keith
Index: src/mesa/drivers/dri/dri_client/imports/xf86drm.h
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/dri_client/imports/xf86drm.h,v
retrieving revision 1.1
diff -u -r1.1 xf86drm.h
--- a/src/mesa/drivers/dri/dri_client/imports/xf86drm.h 14 Apr 2004 12:39:58 -0000
1.1
+++ b/src/mesa/drivers/dri/dri_client/imports/xf86drm.h 29 Apr 2004 14:44:23 -0000
@@ -413,6 +413,7 @@
#endif /* __GNUC__ >= 2 */
#ifndef DRM_CAS
+#error No fast lock defined -- DRI will fail.
#define DRM_CAS(lock,old,new,ret) do { ret=1; } while (0) /* FAST LOCK FAILS */
#endif
