[Mesa-dev] r600g on rv635 and broken mipmaps

Mathias Fröhlich Mathias.Froehlich at gmx.net
Fri Apr 29 23:20:26 PDT 2011


Hi,

Since the lazy gpu flush changes for r600g about two weeks ago, I get broken 
mipmaps on my notebooks rv635.
I am not sure if my analysis is right, but it appears to me that flushing the 
destination caches like it is done in r600_context_flush_dest_caches is not 
sufficient for my rv635. Since then, I need the attached patch to get correct 
automatically generated mipmaps.
The important callpath for my observed breakage is when 
r600_context_flush_dest_caches is called from r600_set_framebuffer_state, which 
is called on each new mipmap level. With the attached change it is sufficient 
for flushing the previously rendered level that is used as a sampler source for 
rendering the next level. Without that flush, I get garbage in the smaller 
mipmap levels.

So, I know that this patch is not applicable, since it does not account for 
sufficient cs space for this additional flush. Also it is probably too croase in 
face of the finegrained bo flush logic.
Also I cannot hear so much people screaming, so I guess the rv635 is about the 
only chip that suffers from this problem.
But I failed to find that finegrained bo flush with the apropriate flush flags that 
makes mipmaps work again.

May be this does ring some bell which flush is missing?
If not, does somebody have any clue which chips do suffer from this prolem?

Greetings

Mathias
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-r600g-Emit-a-cache-flush-invalidate-on-a-dest-cache-.patch
Type: text/x-patch
Size: 1419 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20110430/6658a718/attachment-0001.bin>


More information about the mesa-dev mailing list