From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ@public.gmane.org
Subject: [Bug 109371] Textures seem to be byteswapped on big
endian architectures
Date: Sat, 19 Jan 2019 20:31:58 +0000
Message-ID:
References:
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============1758521130=="
Return-path:
In-Reply-To:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Sender: "Nouveau"
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
List-Id: nouveau.vger.kernel.org
--===============1758521130==
Content-Type: multipart/alternative; boundary="15479299180.9dd12EbD.15121"
Content-Transfer-Encoding: 7bit
--15479299180.9dd12EbD.15121
Date: Sat, 19 Jan 2019 20:31:58 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://bugs.freedesktop.org/
Auto-Submitted: auto-generated
https://bugs.freedesktop.org/show_bug.cgi?id=3D109371
--- Comment #3 from Ilia Mirkin ---
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 t=
he
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 commen=
ting
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, w=
here
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
(https://github.com/apitrace/apitrace/issues/601#issuecomment-455019551), t=
he
attached trace replays fine on both nv42 and nv34 on x86.
--=20
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.=
--15479299180.9dd12EbD.15121
Date: Sat, 19 Jan 2019 20:31:58 +0000
MIME-Version: 1.0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://bugs.freedesktop.org/
Auto-Submitted: auto-generated
Commen=
t # 3
on bug 10937=
1
from Ilia Mirkin
Unfortunately it appears that my G5 is dead. It half-booted on=
ce (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 t=
he
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 commen=
ting
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 b=
yteswapping
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
(https://github.com/apitrace/apitrace/issues/601#issuecomment-45501=
9551), the
attached trace replays fine on both nv42 and nv34 on x86.
You are receiving this mail because:
- You are the QA Contact for the bug.
- You are the assignee for the bug.
=
--15479299180.9dd12EbD.15121--
--===============1758521130==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBt
YWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m
cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1Cg==
--===============1758521130==--