I've been trying to track down a bug in the r128 driver causing lots
of the following messages in the kernel logs:

r128_cce_depth called without lock held

The problem appears (to me anyway) to be in
Mesa-6.4.2/src/mesa/drivers/dri/r128/r128_span.c. There are a few
macro definitions there that disable locking, yet the code clearly
calls r128WriteDepthSpanLocked() which requires locking. It would seem
the fix is to undef HW_LOCK and HW_UNLOCK before the depth buffer
stuff so the locking occurs as normal.

Attached is a patch which I can confirm fixes the issue on my machine.

For a full history, see the Debian bug report at:

http://bugs.debian.org/373949

Thanks in advance,
--
Martijn van Oosterhout <[EMAIL PROTECTED]> http://svana.org/kleptog/
diff -ur Mesa-6.4.2/src/mesa/drivers/dri/r128/r128_span.c mesa-6.4.2/src/mesa/drivers/dri/r128/r128_span.c
--- Mesa-6.4.2/src/mesa/drivers/dri/r128/r128_span.c	2005-07-01 02:08:52.000000000 +0200
+++ mesa-6.4.2/src/mesa/drivers/dri/r128/r128_span.c	2006-06-19 15:18:38.000000000 +0200
@@ -111,6 +111,12 @@
  * Depth buffer
  */
 
+/* These functions require locking */
+#undef HW_LOCK
+#undef HW_UNLOCK
+#define HW_LOCK()    LOCK_HARDWARE(R128_CONTEXT(ctx));
+#define HW_UNLOCK()  UNLOCK_HARDWARE(R128_CONTEXT(ctx));
+
 /* 16-bit depth buffer functions
  */
 
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to