Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Nov 1997 16:07:37 -0500
From:      Randall Hopper <rhh@ct.picker.com>
To:        Eivind Eklund <perhaps@yes.no>, Tomi Vainio <tomppa@fidata.fi>, Joao Carlos Mendes Luis <jonny@coppe.ufrj.br>
Cc:        Amancio Hasty <hasty@rah.star-gate.com>, freebsd-multimedia@FreeBSD.ORG
Subject:   bt/fxtv 24bpp & img cnvt patches (was Re: Bt848 driver patches)
Message-ID:  <19971108160737.19314@ct.picker.com>
In-Reply-To: <19971030194225.11523@bitbox.follo.net>; from Eivind Eklund on Thu, Oct 30, 1997 at 07:42:25PM %2B0100
References:  <199710291417.PAA01941@bitbox.follo.net> <199710301744.JAA09896@rah.star-gate.com> <19971030194225.11523@bitbox.follo.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--Dxnq1zWXvFF0Q93v
Content-Type: text/plain; charset=us-ascii

Eivind Eklund:
 |(1) A single steady vertical line when the fxtv window is in some
 |position in the upper and lower right corner of my screen
 |(1600x1200x16 bit) - the rest of the window work normally.  This one
 |seems likely to be a splitting problem, IFF the split is done as to
 |rectangles vertically.  It seems to be related to the size of the
 |window; I've had some problems repeating it at will, but get it
 |from time to time.

Two patches attached.  Both will apply cleanly to the 971105 driver and
Fxtv 0.46 (both on the Fxtv page).

"bt848-24bpp-971108.patch" fixes:

   - The occasional vertical black line divider line in the video window 
       (packed 24bpp direct video)
   - The occasional screwed up colors (packed 24bpp direct video)

"fxtv-0.46-1-ximage.patch" fixes:

   - Bunch o' byte swapping and ximage pitch handling fixes
     (ALL bpp ximage modes).  These should fix stairstep video, surreal
     color problems, as well as a few "unsupported color conversion"
     bail-outs people have seen.
   - Added 3Bpp->3/4Bpp conversion support, also fixes "unsup col conv" probs

Please try em out and make sure they work as advertised on your box.  Try
all your server's color depths, and be sure to to do at least one freeze
frame to verify that, not just direct video, but ximage transfer is working
too.

Let me know about any configurations that don't work for you.  I'd like to
wrap these up and get everybody supported without any patching needed.

If you see a problem, the following info would be helpful:

     - Graphics card
     - X Server vendor   (XFree,Xaccel)
     - X Server version  (3.3.1)
     - X Server          (SVGA,S3V,etc.)
     - Color depth       (8,15,16,32)
     - "appres Fxtv" output
     - "fxtv -debug startup" output

                                -----------     

Driver Patch

In case anybody's interested (or collecting tidbits for a Bt848 hackers
guide), the "vertical black divider line" problem is due to the way the
Bt848 processes a WRITE instruction.  When it hits one of these, it
resynchronizes Byte Lane 0 of the current FIFO dword to Byte 0 of the
memory dword containing the starting transfer address ("not" the transfer
address itself).  So when a the driver's RISC program splits a scan line
into 2 halves (two WRITEs), the second WRITE's resync causes a pixel to be
dropped if it didn't occur in a "lucky" spot (see below).

A WRITEC doesn't perform this alignment resync (the main reason for even
having this instruction), so a WRITEC is now used for the last half of the
scanline.  And no more black line.

Once I found this out, it was appearent why the colors in a packed 24bpp
direct video window are whacked depending on where you put the window.  In
RGB24 mode, the pixels in each scan line roll off the Bt FIFO like this:
BGRBGR...  And in a packed-24bpp frame buffer that's Bt848
direct-video-compatible, the scan lines look like this:

                0  1   2   3   4  5   6   7 
                BGRB GRBG RBGR BGRB GRBG RBGR ...

Given the WRITE resync behavior described above, the FIFO components will
align with the frame buffer if the starting transfer address is at pixel
offsets 0,1,4,5,... (in general X % 4 == [0 or 1]), but they'll be out of
sync for 2,3,6,7 (X % 4 == [2 or 3]).

The solution here is to toss 1 or 2 DWORDs at the beginning of a scan line
(SKIP) for the X%4=[2,3] cases to align the FIFO with the dword at the
target memory address in the frame buffer.

                                -----------     

Fxtv Patch

All these fixes relate to XImages transfer mode (which is used for freeze
frame, when the window is partially occluded by other window(s), and when
fxtv doesn't think the video card is compatible with direct video in a
particular color depth).

Byte order problems fixed.  Use the byte order the server specifies for
XImages, rather than erroneously using the frame buffer byte order (which
must be specified by the user).  Also do more intelligent swapping when
converting between pixel geometries.  Both these problems would have
appeared before as surreal or reversed colors on the video frame.

XImage pitch problem fixed.  Sometimes (e.g. in 8bpp) there will need to be
pad bytes allotted at the end of scan lines -- these weren't being put in
before, potentially causing diagonal video frames for some video widths.

Finally, added support for 3Bpp->3/4Bpp conversion.

With these changes, colors look correct for me on my STB Velocity 3D in all
color depths for both direct video and ximages transfer for both the SVGA
and S3V servers on XFree 3.3.1.  

Please test all permutations on your card and let me know!

Randall

--Dxnq1zWXvFF0Q93v
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="bt848-24bpp-971108.patch.gz"

=1F=8B=08=08=8E=C2d4=00=03bt848-24bpp-971108.patch=00=BDVaO=DBH=10=FD=EC=FC=
=8Aw:=1D=8D=938=C4N=02	=B9 HK{=E8hA4R=EFt:Y=1B{C,l=AFe=AF=1B=D0=B5=F7=DBov=
=D7!	=A4=D0~=B9=80=88=F1=CE=CC=CE=BCy;=FB=1C=C7=C1,=17=E2V=E6=9C=0Fz=03gx=
=E8=BA=9D~;=B0>=F1=10=1F=C4g=A0=0F=F7=E0=C8=ED=1Du=87p=87=C3=C3Z=B3=D9=DCr!=
=DB=8FL=1A=DB=01:Ce=EB=0E=8C=ED=C9	=1Cw=D8o=1D=A0=A9=BE=0689=A9=E1=99=CF=DB=
=E8=0E=92'=99=C8Y=8C=90=07Q=C2d$=D2=16=C2=A8`=B3=98#=92X.x=FAl=90PD=E9=0D^=
=9F^=F9=1F=CF?=BC=BB8+Z`i=88(EX=B2=D8=99G<=0E=11=B0L=969=A7=C8"}%=9F=8DW=99=
B;=16=98=8B=9C=D2=99=CFy=CES=89y=CE=12^=D4=9An=DB=F36=9D\w=BF3=D8=1F=1E=D2=
=E35=ED=CE=E2=18=BF=89,=E39~=CD=17=8B=93@=B6=B3(=B8=E5y;=10=C9q=AD=F9<&=DC=
=EC=9A1=F2=08=E1=F5fY=06=07o=CF=DF^=82=C5=D1M=9AP&54=F6k=A8=E1=E7=90=CF=A3=
=94=E3=CD=9BI=FD=CE=C6=9D=EE=81=D7=EFtU=13=E8=BB=DF=F2:=BA=0D=96=A5=A2=7F=
=161AL=C8=96~=B0`9=1A=0DH=96=DFp=E9=CFJUc=8Bp=93=08D\=C0=C6?j=03=B2=8C=05=
=01<=8F=D9MK=FF=F5FT@!=F32=90H=B8=E4"=F7=B3=E8n=9EH4=B29=C6=D83=FF=F9R=B5=
=F0/=CC=889=CEqe=F1w;+gq=14=A8=10=A5=AF=F6Bq=1Be-=8A=C7r=E9=ABgZR=00=ED7=08=
=0BB=E1=FA=DD=C4=EB=B5=B0=E4H9=A1!=85=C1=00r=C1)O=E2N=AA=FAB=DD=D6=F8L=EE%=
=C7=05#@:=0F=88=12PU<(w=E5=E8=16=123e=1A=99@	O=10.END=11=A9dQ=AA(%=CA=DC=A4=
=05=16=86y{g=BC=C9=F4=93=CE=ED6=15K=8A=14=150=85=BE*6=F6(0=89K>=A2=F5=B2=D0=
=DB=AD=A3>=8E=87=A4Tn\{=AC=B7=FC=A1=8F=89=B7=06=94Z=D2Qx#=9A=A3^G6w=8E=E5}=
=C61=1E=E3=FD=D9=F4=EC=F2=DA=BF:=FFc=FA=E7=D5=99OXS=DB=F7=F6`=AC&=C4;2=EA=
=C2=B6kM=A2O=B1=8Cd=B0=A0=C5z=DD=90=C2Fc=8B=3D6~AO=13G=99=07=AC=E0=F0p=B4=
=9DJ=0F#=9A'=9C=DD=8E=D6F=EEc=A3=C1=B6=D1W=A2D=95=FE2
=E5=02=0D=053=8F}=FD=9F=8D_=F1=E6=FD=A9?=99=D2x=F2?^]=9CO=0Dy=F5Gy=01=C6=8D=
=8AQ=D4=D6=8B=96=E62=EDuI=83=E3=F2=02_=D4=C3=D9=E5=C5=A8:A=AE=D7r=F5=11=F2=
=06-=CF5GH=C5[{i=E3=15=E8_=C1c=AA=A4Z=ED=8C,:;=8EiG=BD=11&=CC=CFrqc=D3,=1DC=
=D0X=D0s=8E=F6=D4=F6=F4=BD=A3=ACQ5&=B6Z=88U=17=B5=E3=DE*=F9=AAi=1B=18=1E=D3=
=01=B0W=9D=D8=95=85=F2=FC=FD=FC=CA=D4m=00=D8:=83=C6=CDl3=C6=BF=C6=E8=E1}=95=
=D4=96=87=C1=C1=9C=DE=EF=AD{W?i=D6=A9=88=F6h=A3=83k=DF=9F=D6=A9=DBP=3Dy=B2=
=CF=039=1F=B1s=A4=C7=99Nm=EB=3D=9A=E3=DD=F8=1Bc3=BF=822W=17=80O=FCy=B0W=01=
=1D=F5=B3A=00=02|=FD=A8=F2S=D9?=0DAL=EC=A8=9E=ED=E2=E5=16=C9TgV=94=EC=1ET=
=94=EC=1F=B6=BC=DE=13J*=8A=AC_x=863=B0=BE=D6=1C=EB=99^=AC=9A=F1=85j=D1=CE;[=
=B2=0F=CF=D6=83=D9=DA=A0=A3=F5=C3T|=9A=C8=8B4=B4vP=D0=DAE?KS=EF=BBJ]=B1=F8=
=9B=B5nP=D0z=81~=BB=B9^q=10=8F'$T=C4=A7=F4=FB6=E8=CA=A1Bz=A3=92=B1=CE=E2=D3=
=F5=F9=F4=0Cj6[=1BK=0F+=AF=F5^/=9DB=8F=E0=C0K=8Dw=9EE=C1=F9_P=B0^:=8A=EA=90=
t=DD=FEP)=9F=AE;=18=AC=F4g=83=C4*]=C3rA=B2=95n=B0=85(=E9=86=95t=9B=B1,=A3{=
=BE=05O]tJ3v=D5C"B=12`=8C=14=E02=8F=A4=E4)t=0C=E8=CB=DC=D1^<4=1A=B3=B7m=AFo=
{=F5^+=89=CA=12=F5=82sL=B5=9C=3DX=85RFt=BD=85=B8v=8E/l=BA=E7ijTi=B2=B8=10&W=
=A5=01UFZ`$=EC^	=86H=C1O=EA=F2=FEA=0D=85=02=85HH=0BQ<=19}=E6&=14=A0=9A=A3T=
=CC=96`=D2=1AI=A5=19=93f,4=1A=FA=BDi=05=AAV=E8=8C=8B,=8Ed=DD=B6=DB:=E5=A9=
=926=F4=CBf$=FCX i=EF=05)=E2#=F0=F6M=1B=A9=D0=D5=16=D4r=92=10=A7#=83=C4=1E=
=8A=85=C8=0D=D0=B4r:yw=BD*=BF=00=C96=82=A9$i=CE=EF2N=FA=B8=A6=85=CB=7F=AF=
=CD=01=D3=A1=0C=00=00
--Dxnq1zWXvFF0Q93v
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="fxtv-0.46-1-ximage.patch.gz"

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
PQAA

--Dxnq1zWXvFF0Q93v--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971108160737.19314>