<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Textures seem to be byteswapped on big endian architectures"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109371#c3">Comment # 3</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Textures seem to be byteswapped on big endian architectures"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109371">bug 109371</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>Unfortunately it appears that my G5 is dead. It half-booted once (died right
around nfsroot load time). Then for a bit it would turn on, with fans going but
no light and no chime. Now the fans don't even turn on. So I think that's the
end.

The things I would have done:

1. Check whether the textures look OK in qapitrace's inspector
2. Look at the transfer methods being used (in nv30_transfer.c). Try commenting
some out, although that can also lead to failures.
3. Try to create a simple program based on the apitrace which reproduces the
issue, and debug it step by step, to figure out where the byteswap might be
happening.

A few bits of info:

The GPUs are LE deep down inside. However they have BE modes which byteswap
"some stuff". So like MMIO accesses, FIFO commands, etc. So they can still be
packed like integers as usual, without an extra byteswap, and the GPU will
"take care of it". I don't have a clean idea of whether and how byteswapping
happens between GART and VRAM, as well as in various "blit"/copy methods, where
the byteswap would be different depending on whether it's u8, u16, or u32
datatype. This is most relevant to index buffers though, not textures. [Like
let's say you're feeding the data via FIFO commands, there's an implicit
byteswap there, etc.]

Have a look at nv30_format.c for the supported texture formats/etc.

As always, feel free to ask stuff in #nouveau.

It should be noted that with a patch to apitrace
(<a href="https://github.com/apitrace/apitrace/issues/601#issuecomment-455019551">https://github.com/apitrace/apitrace/issues/601#issuecomment-455019551</a>), the
attached trace replays fine on both nv42 and nv34 on x86.</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 the assignee for the bug.</li>
      </ul>
    </body>
</html>