<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Apr 18, 2018, 8:01 PM Bas Nieuwenhuizen <<a href="mailto:bas@basnieuwenhuizen.nl">bas@basnieuwenhuizen.nl</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Apr 18, 2018 at 2:11 PM, Marek Olšák <<a href="mailto:maraeo@gmail.com" target="_blank" rel="noreferrer">maraeo@gmail.com</a>> wrote:<br>
> On Wed, Apr 18, 2018 at 4:44 PM, Bas Nieuwenhuizen <<a href="mailto:bas@basnieuwenhuizen.nl" target="_blank" rel="noreferrer">bas@basnieuwenhuizen.nl</a>><br>
> wrote:<br>
>><br>
>> IIRC if level N is unaligned then num_dcc_levels <= N+1, so level N+1<br>
>> is not DCC compressed?<br>
><br>
><br>
> There is a difference between being aligned (contiguous really) and being<br>
> compressible. Small mip levels might be unaligned but may still<br>
> compressible. Non-contiguous can mean that DCC of multiple mip levels is<br>
> interleaved in memory. It can't be cleared with memset trivially, but it can<br>
> still be compressed.<br>
<br>
Hw-wise probably, but if level N is not aligned addrlib will set<br>
subLvlCompressible to false[1], and hence the next level will not be<br>
DCC compressed[2]?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Even if a level is not compressible (by CB), TC still reads DCC and does decompression. So it's necessary that the last compressed level doesn't do fast clear if it's not contiguous. If you remove CB out of the picture, you can probably compress the whole miptree.</div><div dir="auto"><br></div><div dir="auto">Marek</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
[1] <a href="https://cgit.freedesktop.org/mesa/mesa/tree/src/amd/addrlib/r800/ciaddrlib.cpp#n268" rel="noreferrer noreferrer" target="_blank">https://cgit.freedesktop.org/mesa/mesa/tree/src/amd/addrlib/r800/ciaddrlib.cpp#n268</a><br>
[2] <a href="https://cgit.freedesktop.org/mesa/mesa/tree/src/amd/common/ac_surface.c#n345" rel="noreferrer noreferrer" target="_blank">https://cgit.freedesktop.org/mesa/mesa/tree/src/amd/common/ac_surface.c#n345</a><br>
<br>
><br>
> Marek<br>
><br>
</blockquote></div></div></div>