From owner-freebsd-multimedia Fri Apr 25 15:48:27 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id PAA18127 for multimedia-outgoing; Fri, 25 Apr 1997 15:48:27 -0700 (PDT) Received: from rah.star-gate.com (rah.star-gate.com [204.188.121.18]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id PAA18122 for ; Fri, 25 Apr 1997 15:48:25 -0700 (PDT) Received: from rah.star-gate.com (localhost.star-gate.com [127.0.0.1]) by rah.star-gate.com (8.8.5/8.7.3) with ESMTP id PAA10046; Fri, 25 Apr 1997 15:48:24 -0700 (PDT) Message-Id: <199704252248.PAA10046@rah.star-gate.com> X-Mailer: exmh version 1.6.9 8/22/96 To: Randall Hopper cc: multimedia@freebsd.org Subject: Re: The "BT848 RISC Challenge" In-reply-to: Your message of "Fri, 25 Apr 1997 12:01:34 EDT." <19970425120134.00918@ct.picker.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 25 Apr 1997 15:48:24 -0700 From: Amancio Hasty Sender: owner-multimedia@freebsd.org X-Loop: FreeBSD.org Precedence: bulk First of in PC Land we do refer to BGR to RGB. Not sure if we can support what you want. Heck get an S3 card. Not sure that the a Risc program is the way to do the pixel reordering that is if a risc program can doit at all. The PCI latency will probably kill the risc program. There may be another way of doing this with PCI Byte Enables. Amancio >From The Desk Of Randall Hopper : > 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_RGB 16) > |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 Xserve rs > |> 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 bu t > |> it works!) > |> > |> Anybody know a kindler, gentler way to do this on the chip? :-) > |> > |> Randall > |> > | > | > |