Date: Thu, 24 Apr 1997 19:05:46 -0700 From: Amancio Hasty <hasty@rah.star-gate.com> To: Randall Hopper <rhh@ct.picker.com> Cc: multimedia@freebsd.org Subject: Re: The "BT848 RISC Challenge" Message-ID: <199704250205.TAA05767@rah.star-gate.com> In-Reply-To: Your message of "Thu, 24 Apr 1997 21:15:46 EDT." <19970424211546.22989@ct.picker.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, First of, the Bt848 driver operates in RGB mode and has been that way since the beginning. What is currently out in beta in ftp://rah.star-gate.com/pub/bt848-clip.tar.gz is the swapping of pixel orders and clip list support. The Bt848 supports RGB32, RGB24, RGB16, and RGB15. The supported modes are RGB32 (METEOR_GEO_RGB24) and RGB15 ( METEOR_GEO_RGB16) needless to say that the METEOR_GEO_RGBXXX are misnomers. the following table hopefully will make all this clear, from the Bt848 databook: FIFO Input Output of Fifo 31:24 [31:24] [23:16] [15:8] [7:0] 23:16 [23:16] [31:24] [7:0] [15:8] 15:8 [15:8] [7:0] [31:24] [23:16] 7:0 [7:0] [15:8] [23:16] [31:24] If RGB24 is desired, then we can add an ioctl to tell the driver to dma the video using rgb24. A few ways of accomplishing this is to: 1. to create a bt848 ioctl call with the appropriate correct color depth. bt848SETRGB and pass a value of the color depth desired 2. we can generalized the mechanism for setting the pixel order to also determine the color depth. 3. Create a new bt848 ioctl call which has geometry, color depth, pixel order and video frame buffer info . ---- Briefly, we can do it. Amancio >From The Desk Of Randall Hopper : > Thought that'd grab your attention :-) > > > THE CHALLENGE: Figure out how to get the BT848 to DMA pixels in > RGBRGB packed 24bpp (3Bpp) format to the frame buffer or > memory. > > > It'd be cool if we could do this to support those of us whose Xservers > config the card for this format. For now, the driver limits direct video > in 24bpp to those folks that have BGRBGR packed 24bpp organization. > > SOME OPTIONS: > > 1. Put the chip in RGB32 pixel FIFO mode with byte and short swapping > enabled (ARGBARGB). For each pixel, write 2 RISC instructions: a > SKIP to skip the Alpha, and a WRITE to blast the RGB. > > Hmmmmmm, let's see....that's only 2.5 Megs for a 640x480 image. :-) > > 2. Rotate the HUE 90 deg. (I'm not kidding. It works. It's ugly but > it works!) > > Anybody know a kindler, gentler way to do this on the chip? :-) > > Randall >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704250205.TAA05767>