Date: Fri, 25 Apr 1997 12:01:34 -0400 From: Randall Hopper <rhh@ct.picker.com> To: Amancio Hasty <hasty@rah.star-gate.com> Cc: multimedia@freebsd.org Subject: Re: The "BT848 RISC Challenge" Message-ID: <19970425120134.00918@ct.picker.com> In-Reply-To: <199704250205.TAA05767@rah.star-gate.com>; from Amancio Hasty on Thu, Apr 24, 1997 at 07:05:46PM -0700 References: <19970424211546.22989@ct.picker.com> <199704250205.TAA05767@rah.star-gate.com>
next in thread | previous in thread | raw e-mail | index | archive | help
I don't think you read my entire message. Flipping the chip into RGB24 is done (see the driver I posted yesterday). The issue is, without bt byte/short swapping enabled, the FIFO data is rasterized as: <---- lower addr higher addr ----> BGRBGRBG ... Some folks' X servers config their video card for packed 24bpp in the reverse memory organization: <---- lower addr higher addr ----> RGBRGBRGB ... Byte and word swapping doesn't help you here as the pixel FIFO is 32bits wide. It doesn't look like the chip supports writing in this format without a pixel-hacking RISC program or hue tricks. The basis of my question was, am I missing something? Randall Amancio Hasty: |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?19970425120134.00918>