Port-sparc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: SPARCStation VSIMM



Hello,

On Sat, 23 Oct 2021 09:53:23 +0200
Romain Dolbeau <romain%dolbeau.org@localhost> wrote:

> Le jeu. 21 oct. 2021 à 18:31, Michael <macallan%netbsd.org@localhost> a écrit :
> > There are a few other options to get 24bit graphics on an ss20,
> > although they're also mostly made of unobtainium:  
> 
> That's the issue :-(
> 
> While we're on the subject of support; some GX documentation on the
> FBC and TEC have surfaced at bitsavers:
> <http://bitsavers.org/components/lsiLogic/sparc/GX/>
> They might be helpful to drivers' writers.

Yeah, they have all sorts of interesting stuff.

> I've no idea whether that would enable the (T)GX to support some
> Xrender acceleration, and if not what would be needed in the hardware
> (... in case I want to add  some Xrender support to my own
> framebuffer).

Well, the hardware would need to support it first. The cg6 has a
greyscale mode which can be used to draw antialiased lines and it might
be possible to abuse it for font rendering. In normal, 8bit colour mode
it can't do any of that. The hardware can draw lines, rectangles and to
a degree filled shapes, it can copy rectangles around, and you can feed
it coordinates through a matrix multiplier which can be used for all
sorts of coordinate transformations. None f that helps with
transparencies which you need for the most common xrender operations.

SX/cg14 is different - cg14 is a dumb framebuffer living on a memory
module and SX is a vector processor built into the memory controller,
it's more or less freely programmable and I have used it to do this
kind of calculations. It's not fast compared to modern hardware but it
can still draw things like antialiased characters a few times faster
than whatever CPU you can stick into an ss20. It can do two 16bit
multiplication per clock cycle, at 50MHz, and my driver tries to take
advantage of that by doing most xrender operations four pixels at a
time. The thing has 128 32bit registers, four have special purposes, we
need four registers per pixel, and it's strictly load-store so
everything must be held in registers, so that's more or less the limit.
It can be used without a cg14, I've been thinking about making it do
stuff like audio mixing. It can access all RAM but nothing else, so
using it for xrender on other graphics hardware would be difficult.

have fun
Michael


Home | Main Index | Thread Index | Old Index