On Fri, 2006-06-16 at 22:03 +0200, Martijn van Oosterhout wrote: > > r128UpdateHwState: (0x113) context, alpha, depth, cull, > r128EmitHwStateLocked: (0x287) context, setup, tex0, masks, cliprects, > r128UpdateHwState: (0x100) context, > r128EmitHwStateLocked: (0x1) context, > > Now, I don't understand much about DRI, but it seems to me that the > Update message can only change things which have previously been > locked?
No, it's kind of the other way around. Basically, r128UpdateHwState updates the driver's internal copy of the hardware state, and r128EmitHwStateLocked uploads the dirty values to the hardware. The 'Locked' suffix indicates that the function must always be called with the DRI hardware lock held. I suggest tracking this down from the other direction. r128_cce_depth corresponds to the DRM_R128_DEPTH ioctl, which is used by the r128{Read,Write}Depth{Pixels,Span}Locked functions in Mesa. Apparently, one of those functions can be called when the hardware lock isn't held under some circumstances. Hope this helps, -- Earthling Michel Dänzer | http://tungstengraphics.com Libre software enthusiast | Debian, X and DRI developer