[Mesa-dev] [PATCH] r600g cache invalidate issues

Martin Andersson g02maran at gmail.com
Sun Jun 16 04:27:04 PDT 2013

I have been investigating why some piglit tests were failing when VA was enabled.
What I found was that the problems started with this commit:

That commit removed the S_0085F0_SMX_ACTION_ENA(1) and S_0085F0_SH_ACTION_ENA(1)
, among other things, from the cache invalidation. So I did some experiments where
I enabled those and this is what I found.

It didn't see any difference if I put the SMX and SH under R600_CONTEXT_FLUSH_AND_INV
as they were before the above commit or together with the other caches under 

I also tried only SH, only SMX and both together and got fewer failures when they both
were enabled. At the very least SH needs to be enabled, I'm not equally sure about SMX,
but it does seem to help on some tests under spec/EXT_framebuffer_multisample.

Since the failures are random it is hard to know exactly what tests are affected,
there are also unrelated issues that also cause random failures, but these tests
I'm reasonbly sure are fixed:

spec/!OpenGL 1.1/draw-pixels samples={2,4,6,8}
spec/!OpenGL 1.1/drawbuffer-modes

Then there are a bunch of test under spec/EXT_framebuffer_multisample that if not
fixed at least have a much greater chance of passing. Those failures seem unrelated
to VA though.

If my patch is wrong then this information can hopefully help someone else find
the real solution to these problems.

This was tested with a 6950 on mesa master 6d7abafdc86c6d8533bcb798465452c78c2694e8


Martin Andersson (1):
  r600g: Include SH and SMX when invalidating read caches

 src/gallium/drivers/r600/r600_hw_context.c | 2 ++
 1 file changed, 2 insertions(+)


More information about the mesa-dev mailing list