<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - [snb] Latest xf86-video intel (2.99.904) makes image viewers fail to fully load pictures"
href="https://bugs.freedesktop.org/show_bug.cgi?id=70527#c29">Comment # 29</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - [snb] Latest xf86-video intel (2.99.904) makes image viewers fail to fully load pictures"
href="https://bugs.freedesktop.org/show_bug.cgi?id=70527">bug 70527</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>Ok, I've found the upload path in the xtrace:
000:<:0aa0: 16: MIT-SHM-Request(130,1): Attach shmseg=0x020001d4
shmid=0x0ad08001 readonly=false(0x00)
000:<:0aa1: 28: MIT-SHM-Request(130,5): CreatePixmap pid=0x020001d5
drawable=0x020001d2 width=1920 height=1200 depth=24 shmseg=0x020001d4
offset=0x01000000
000:<:0aa2: 20: RENDER-Request(139,4): CreatePicture pid=0x020001d6
drawable=0x020001d5 format=0x0000002a values={}
000:<:0aa3: 36: RENDER-Request(139,8): Composite op=Src(0x01) src=0x020001d6
mask=None(0x00000000) dst=0x020001d3 xSrc=0 ySrc=0 xMask=0 yMask=0 xDst=0
yDst=0 width=1920 height=1200
000:<:0aa4: 8: RENDER-Request(139,7): FreePicture picture=0x020001d6
000:<:0aa5: 8: Request(54): FreePixmap drawable=0x020001d5
However, there is no record of a SHM pixmap being created in the debug logs.
Ah, that path is only for has_userptr... Hmm. Ok, it still works on my systems
but the significant difference is that the failing case uses sna_blt_composite
-> sna_replace__xor -> memcpy_xor.
Can you please verify that
diff --git a/src/sna/blt.c b/src/sna/blt.c
index 4c27678..3191ead 100644
--- a/src/sna/blt.c
+++ b/src/sna/blt.c
@@ -1004,6 +1004,13 @@ memcpy_xor(const void *src, void *dst, int bpp,
if (width * 4 == dst_stride && dst_stride ==
src_stride) {
width *= height;
height = 1;
+
+ {
+ uint32_t *d = (uint32_t *)dst_bytes;
+ while (width)
+ *d++ = 0xffcc00cc;
+ return;
+ }
}
if (have_sse2()) {
turns your black picture magenta?</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>