Re: Graphics support (HP VisEG/VisFX/HCRX...)

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

 



Hello Michael !

On 12/16/24 12:41, Michael wrote:
is anyone still interested in graphics support on HP hardware?

Of course !!!

If so, I made some progress on Visualize EG, HCRX and Visualize FX.

Great!

Full disclosure - I'm a NetBSD developer, I used some docs found on
parisc.docs.kernel.org, this is my attempt at giving back / comparing notes.

Recently I wrote native drivers for Visualize EG, HCRX and Visualize FX
4, they all support framebuffer access, basic acceleration, cursor
sprite, and on the HCRX, 24bit colour.

I assume you mean native drivers for NetBSD ?
On Linux VisEG and HCRX are supported in graphics mode, and VisFX in
text mode only.
We do have drivers for VisFX in graphics mode too, one for fbdev
and the other for drm. Both are not upstreamed yet and have various
reasons why I haven't upstreamed them yet.
See branches at
https://github.com/hdeller/linux/tree/hp-visualize-fx-fbdev-2

I also wrote an Xorg driver that
supports whatever acceleration I could figure out, which is copy, fill
and hardware cursor, on all of the above, except ROPs on Visualize FX.

Maybe the VisFX driver sources from Sven Schnelle can give you some
idea. See github repo above.

EG, HCRX etc. register functions are here:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/stireg.h
PCI Visualize EG / Graffiti driver:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/hppa/dev/gftfb.c

HCRX / hyperdrive:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/hppa/dev/hyperfb.c

Visualize FX stuff, mostly found by disassembling the STI ROM on my FX4,
comparing notes with docs and hints found on parisc.docs.kernel.org,
and a lot of experimentation:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/summitreg.h
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/hppa/dev/summitfb.c

The Xorg driver lives here:
http://cvsweb.netbsd.org/bsdweb.cgi/xsrc/external/mit/xf86-video-ngle/dist/src/

Any chance this can get upstreamed?
I'm happy to test it on Linux.

What I haven't been able to figure out so far:
- how to do ROPs on Visualize FX. I can do colour expansion, STI colour
   change and plain fills and copies

Here are the Linux VisFX drivers:
fbdev: https://github.com/hdeller/linux/commit/87e03df1af93e8236b3c1b44e60c0fa2d6c995d5
drm:   https://github.com/hdeller/linux/commit/3a5fc28d9e3d39e7e116b8acf0b028a3024d9c36

- access off-screen memory on HCRX. All we can mess with is 1280x1024
   in both 24bit and the 8bit overlay. I'm sure the thing has more
   memory than that, but blitter ops wrap at those boundaries and FB
   reads return garbage.
- off-screen memory on Visualize FX. STI reports 2048x2048 but what's
   actually accessible is screen width rounded up to the next multiple
   of 512 by screen height. There is a clipping register which STI sets
   to match the video mode but setting it to 2048x2048 does not allow
   access to anything else, blitter ops wrap like on HCRX. I *know* this
   thing has more memory than that. On the PCI EG we get full 2048x2048
   no matter what mode we're in.
- 24bit colour on the FX. I can switch the FB wndow to 32bit mode but
   that doesn't result in 24bit pixels being displayed.

I have not hacked on it since quite some time ... :-(

Helge





[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux