Subject: Re: leo ("zx") framebuffer
To: None <port-sparc@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-sparc
Date: 11/10/2003 22:21:32
I wrote
> Is there anyone out there who knows how the SUNW,leo ("zx")
> framebuffer works [...]? The hardware I have doesn't seem to be
> behaving in accordance with the docs I have....
This was neither the doc's fault nor, in most respects, the hardware's.
It seems the gcc version I was using for this takes
struct foo { ... } __attribute__((__packed__));
to imply also __aligned__(1) - or at least it does four one-byte
loads/stores rather one four-byte load/store to access a four-byte
field. (I finally got desperate enough to look at the assembly code.)
The leo does not like this.
Once I persuaded it to generate a single st/ld instead of four
stbs/ldubs, everything started working a whole lot better.
There are still a few problems remaining, but the only one that could
get in the way of the original goal is that something is flaky with the
RAM holding blue channel data; it looks as though the low bits of the
blue channel flake out in thin vertical stripes (about every eighth, or
maybe tenth, pixel - perhaps one of the chips has something akin to a
stuck-at-0 fault). (The other problems are mostly lack of
documentation; while I haven't gone through the doc I have with a
fine-tooth comb looking for it, I've yet to find a description of how
provide the data for lighting calculations and suchlike.
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML mouse@rodents.montreal.qc.ca
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B