> On Mon, 27 Aug 2007, Tabaro Toni wrote:
> > On Mon, 27 Aug 2007, Marc Aurele La France wrote:
> >> On Mon, 27 Aug 2007, Tabaro Toni wrote:
> >>> Hi, i have succesfully cross-compiled the xfree 4.7.0 on
> a embedded
> >>> board with mipsel processor and framebuffer on a 2.6.12 linux
> >>> environment, with the framebuffer running at 960x1080x32
> ARGB8888 or
> >>> 1280x720x16 ARGB1555.
> >>> The Xfbdev program start and work (if i export a display
> on a i386
> >>> machine and start xclock the xclock program work).
> >>> The problem is: to see the image on the board i must run
> a program
> >>> in background which set the alpha bit to 1 (on the
> 1280x720x16 ARGB
> >>> 1555 frame buffer) or byte to 0xff (in the case of 960x1080x32
> >>> ARGB8888), otherwise the screen remains black.
>
> >> That is an oddball alpha implementation. What adapter is
> this? Does
> >> the
> >> (text) screen appear correctly before starting Xfbdev?
>
> > A im not using the text mode, on that embedded system there is only
> > console /dev/ttyS0 and framebuffer is on graphics hardware.
> This is
> > an implementation on one stb, the graphic plane is over a
> video plane
> > and the alpha is needed for seeing the video under graphics
>
> That's not the point. Xfbdev will not function at all
> without a kernel driver for your adapter. Therefore, the
> kernel must be displaying something before the X server
> starts, unless that too is being blacked out. So, again,
> what does the screen show before starting Xfbdev?
The screen is not showing anything before Xfbdev becouse there is no
console on framebuffer, the boot is on console /dev/ttyS0 and the 1st
program using framebuffer is Xfbdev.
The kernel driver for framebuffer is working and fbset show:
mode "960x1080-80"
# D: 103.691 MHz, H: 86.410 kHz, V: 80.009 Hz
geometry 960 1080 960 1080 32
timings 9644 120 0 0 0 120 0
accel false
rgba 8/16,8/8,8/0,8/24
endmode
I have made a program which write some rgb rectangles on the
framebuffer, the screen show these rectangles, but when i start Xfbdev
the screen become full transparent, in other part of this email every
time i have written "black screen" i made a mistake, the screen is "full
transparent", i see black becouse before the underling plane was black,
now i have a mpeg video looping on that plane and i see the video when
graphic is transparent.
> >>> I think the Xfbdev can't handle the alpha channel
> correctly, leaving
> >>> it to 0.
> >>> I dont need the translucency or other features, only see
> the image
> >>> on screen, maybe i can patch the framebuffer code to
> leave the alpha
> >>> at fixed value, is someone able to help me by suggest the part of
> >>> code to patch?
> >>> I searched on the programs/Xserver/hw/tinyx/fbdev/ or
> >>> programs/Xserver/fb/ path, but i am not able to
> understand how the
> >>> alpha is handled :-(
>
> >> The X server does not touch the alpha channel, but uses whatever
> >> applications provide in that field.
>
> > Maybe i have not explained well the problem, i try on another way:
> > When normally i start "Xfbdef -ac" on another board with different
> > processor (powerpc) the screen show the X tiled background with the
> > xcursor, on board with mips the "Xfbdev -ac" show black
> screen but is
> > running fine.
> > If i change the alpha channel bit directly to the
> frambuffer with a c
> > program and with the Xfbdev program running i see the X
> bacground and
> > the mouse, if this c program repeat that function every
> second the x
> > is running refreshing itself every second (every time my
> prog touch the alpha bit).
> > This without an X application running, if the X application
> is running
> > i see the app on screen only when my c program do the alpha bit set.
>
> > I think the Xfbdev on framebuffer is tested on a
> framebuffer without
> > real alpha channel, on PC, my boards are embedded board with real
> > alpha used to create holes on graphics needed for seeing
> underlining video plane over it.
>
> .... which means this is a problem with your adapter, not
> with Xfbdev. Xfbdev is designed to use a dumb framebuffer
> through a kernel interface. No alpha channel support
> whatsoever. Xfbdev is intentionally too generic to have
> knowledge of the chipset specifics necessary to control an
> alpha channel.
I have a doubt: the small program i have made for testing the
framebuffer for writing something on the screen must set the alpha byte
to 0xff, maybe this is not the right convention?
I mean: is 0x00 for alpha full trasparency and 0xff opaque or the
opposite? If is opposite i simply change the framefuffer driver and X
start working rigth.
>
> As far as I can tell, your options are:
>
> 1) There might be a jumper or firmware/BIOS setting that
> reverses the meaning of the alpha channel, or disables it.
>
> 2) There might be an ioctl you can use (in a modified Xfbdev)
> to do so.
>
> 3) There might be another X server more specific to your
> adapter, with an option to control the alpha channel. What
> does `lspci` say?
>
> 4) You say the adapter supports depths 15/16 and 24/32, and
> imply you have some means of switching between them. Does
> the adapter support depth 24/24 (i.e. eliminate the alpha
> channel alltogether)?
I need the alpha channel, my application (not X based, i need X only for
a mozilla browser) when run has to make "holes" on its gui for showing
underlining scaled video.
>
> 5) You might be stuck with your program to invert the alpha channel.
>
> Marc.
>
Pierantonio.
_______________________________________________
XFree86 mailing list
[email protected]
http://XFree86.Org/mailman/listinfo/xfree86