<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>