Hi.
Brian Paul wrote:
Thomas
Hellström wrote:
Thomas Hellström wrote:
Hi!
The Mesa update of November the 27th breaks the Unichrome driver.
The screen hangs while playing Tuxracer or Chromium while for example
glxgears and glplanet screensaver still work.
The computer is still, alive though, so it might be a HW lock that is
taken and
never released?
An earlier unichrome_dri.so works fine with a post-update libGL.so.
/Thomas
I can't test this, but try the attached patch. If that doesn't work,
someone else will have to track down the problem. Sorry for the
breakage.
Also, I was looking at the code a bit and I think there's a minor
problem in via_screen.c. The calls to _mesa_create_framebuffer() are
testing mesaVis->stencilBits > 0 to determine if a software
stencil buffer is needed. The driver appears to support hardware
stencil, so that test is incorrect.
This might be wrong in other drivers too.
-Brian
? via.patch
Index: via_context.c
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/unichrome/via_context.c,v
retrieving revision 1.13
diff -r1.13 via_context.c
911a912
#if 0
912a914,916
#else
viaCalcViewport(vmesa->glCtx);
#endif
Index: via_state.c
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/unichrome/via_state.c,v
retrieving revision 1.8
diff -r1.8 via_state.c
440c440
< static void viaCalcViewport(GLcontext *ctx)
---
void viaCalcViewport(GLcontext *ctx)
Index: via_state.h
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/unichrome/via_state.h,v
retrieving revision 1.1
diff -r1.1 via_state.h
31a32
extern void viaCalcViewport(GLcontext *ctx);
Yes, this is the correct fix. Since viaReallocateBuffers obtains the
hardware lock,
viaViewport was called recursively without termination.
There are a number of other obvious glitches in the driver, both with
respect to locking
and to the setup of the hardware blitter. I'll try to incorporate some
fixes in a new patch
for AGP ring-buffer support.
/Thomas
|