On Fri, 2009-12-04 at 13:51 -0800, Maarten Maathuis wrote:
> I recently noticed a regression in the nv50 gallium driver, with a few
> hours of bisecting i figured out i need FLUSH_CURRENT called
> unconditionally in st_teximage_flush_before_map(). Otherwise in
> warzone2100 several small textures (glyphs) go missing. Does this make
> any sense or perhaps provide a hint as to the real problem. One other
> person has tried and could not reproduce this issue. I've tried doing
> a 100 msec wait instead and gpu flush (FLUSH_FRAME to be precise) +
> 100 msec wait. Neither work, which leads me to believe something is
> still stuck in the state tracker.

Maarten,

FLUSH_CURRENT really just flushes internal Mesa state, rather than doing
anything to the GPU or driver.  In particular it will:

  - Make sure the VBO module issues any pending draw commands
  - Asks the VBO module to update ctx->Current.Attrib[]
  - Similarly for ctx->Light.MatAttrib[]
  - And provokes the unmapping of the in-progress immediate VBO.

Most of this is also done by ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(), which
is being called at the top of _mesa_TexImage2D().

So it's a surprise that calling FLUSH_CURRENT has any effect, as it
really just updates a few mesa internal values once ASSERT_OUTSIDE...()
has been called.

What would happen if you lifted your FLUSH_CURRENT up into the highest
mesa function on the callstack?

Keith


------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to