<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_ASSIGNED "
title="ASSIGNED --- - 62102f505cd13840e4 causes icon corruption in thunar"
href="https://bugs.freedesktop.org/show_bug.cgi?id=80560#c19">Comment # 19</a>
on <a class="bz_bug_link
bz_status_ASSIGNED "
title="ASSIGNED --- - 62102f505cd13840e4 causes icon corruption in thunar"
href="https://bugs.freedesktop.org/show_bug.cgi?id=80560">bug 80560</a>
from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
<pre>The corruption I see is related to manual detiling it seems. Haven't pieced
together the exact cause, I am just tracing symptoms.
So far, I can "fix" it by:
1. disabling X-tiling for 512 byte wide tiles
2. disabling gpu_bo_download() (manual detiling)
3. disabling try_upload__inplace()
It is the 128x128 icon that gets manually tiled inplace, then hits a fallback,
and gets detiled inplace. So far that explains why it is only the largest size
that triggers it (it has to be 128 to hit this path, and I guess no other
element is rendered quite like those icons).
To confirm you have a similar bug, can you please test:
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 898f943..d143b42 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -4194,7 +4194,7 @@ int kgem_choose_tiling(struct kgem *kgem, int tiling, int
width, int height, int
goto done;
}
- if (tiling == I915_TILING_X && width * bpp <= 8*8*512/10) {
+ if (tiling == I915_TILING_X && width * bpp <= 8*512) {
DBG(("%s: too thin [width %d, %d bpp] for TILING_X\n",
__FUNCTION__, width, bpp));
tiling = I915_TILING_NONE;</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>