Re: SPARCStation VSIMM
Michael <[email protected]>
| Newsgroups | gmane.os.netbsd.ports.sparc |
|---|---|
| Organization | The NetBSD Foundation |
| Message-ID | <20211023124033.3823fa01@bushmills> |
Hello, On Sat, 23 Oct 2021 09:53:23 +0200 Romain Dolbeau <[email protected]> wrote: > Le jeu. 21 oct. 2021 à 18:31, Michael <[email protected]> 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