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




Reply via email to