<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - nv4x crashing with plasmashell - gdb log included"
href="https://bugs.freedesktop.org/show_bug.cgi?id=102349#c14">Comment # 14</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - nv4x crashing with plasmashell - gdb log included"
href="https://bugs.freedesktop.org/show_bug.cgi?id=102349">bug 102349</a>
from <span class="vcard"><a class="email" href="mailto:imirkin@alum.mit.edu" title="Ilia Mirkin <imirkin@alum.mit.edu>"> <span class="fn">Ilia Mirkin</span></a>
</span></b>
<pre>I believe the issue is mostly resolved by:
<a href="https://patchwork.freedesktop.org/patch/270609/">https://patchwork.freedesktop.org/patch/270609/</a>
There's a lingering issue, which I don't think was truly being hit, but fixed
by:
<a href="https://patchwork.freedesktop.org/patch/270610/">https://patchwork.freedesktop.org/patch/270610/</a>
Of course when I went to test these patches with xonotic, I was immediately
confronted by the fact that we don't handle 3d transfers (which ~never used to
happen before, but some recent improvements have made it a thing that happens a
lot more often). I quickly hacked around that with the below patch, but that's
obviously not generally acceptable.
diff --git a/src/gallium/auxiliary/util/u_transfer.c
b/src/gallium/auxiliary/util/u_transfer.c
index 3089bcb1f34..3550e1e26d3 100644
--- a/src/gallium/auxiliary/util/u_transfer.c
+++ b/src/gallium/auxiliary/util/u_transfer.c
@@ -56,11 +56,16 @@ void u_default_texture_subdata(struct pipe_context *pipe,
/* texture_subdata implicitly discards the rewritten buffer range */
usage |= PIPE_TRANSFER_DISCARD_RANGE;
+ for (int z = box->z; z < box->z + box->depth; z++) {
+ struct pipe_box t = *box;
+ t.z = z;
+ t.depth = 1;
+
map = pipe->transfer_map(pipe,
resource,
level,
usage,
- box, &transfer);
+ &t, &transfer);
if (!map)
return;
@@ -71,13 +76,14 @@ void u_default_texture_subdata(struct pipe_context *pipe,
0, 0, 0,
box->width,
box->height,
- box->depth,
+ 1,
src_data,
stride, /* bytes */
layer_stride, /* bytes */
- 0, 0, 0);
+ 0, 0, t.z);
pipe_transfer_unmap(pipe, transfer);
+ }
}
FWIW xonotic looks terrible on the nv34 -- all the colors are messed up, and
maybe some of the geometry too. But it's the same with 18.3.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>