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:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4539f8e20af286d1f521eb016c89c6d9af0b801c

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 
R600_CONTEXT_INVAL_READ_CACHES.

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:

fast_color_clear/all-colors
fast_color_clear/redundant-clear
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

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(+)

-- 
1.8.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to