Webcam support in Squeak (for VOLPC)

Dan Williams dcbw at redhat.com
Wed Mar 7 14:51:12 EST 2007


On Wed, 2007-03-07 at 14:48 -0500, Dan Williams wrote:
> On Wed, 2007-03-07 at 20:07 +0100, salsaman wrote:
> > Dan Williams wrote:
> > 
> > >On Wed, 2007-03-07 at 19:38 +0100, salsaman wrote:
> > >  
> > >
> > >>Dan Williams wrote:
> > >>
> > >>    
> > >>
> > >>>If you send X a pixmap that's not in the native framebuffer format
> > >>>(which happens to be 565 right now) then X will have to format convert
> > >>>that to 565 for you, which ends up being really slow, especially for
> > >>>large pixmaps.  The moral of the story is, don't format convert, and
> > >>>keep everything you want to be fast in native framebuffer (ie 565)
> > >>>format.
> > >>> 
> > >>>
> > >>>      
> > >>>
> > >>Well, that could be a big problem for LiVES (and for any other 
> > >>application using GTK+/GDK). LiVES uses RGB24 as its internal format. 
> > >>Why the heck use 16bit colour for the X server ? Why not use 24bit like 
> > >>the rest of the modern world ;-) ?
> > >>    
> > >>
> > >
> > >Because then you have to push around a lot more data, and you loose
> > >about 6MB _more_ of memory to VRAM than we already loose.  Plus, it's
> > >unclear whether 888 is really a win.  You gain because you don't have to
> > >format convert, but you loose because the pixmaps are much larger.  We
> > >don't have a ton of memory bandwidth, and we're memory limited anyway.
> > >
> > >  
> > >
> > The pixmaps will be the same size anyway, because GdkPixbuf uses RGB24.
> > 
> > 
> > >We have explored going to 888 but there wasn't time to do real
> > >performance measurements to make sure that 888 wasn't a regression in
> > >the general case.
> > >
> > >We also explored going to 4444 or 1555 to make format conversions
> > >unecessary when alpha was being used, but that will take some work in X
> > >and cairo that we don't have time to do.
> > >
> > >Simply put, the Geode GX processor is not a very fast processor, and the
> > >GPU has known limitations.  Using the GX was a choice that was made
> > >based on tradeoffs of price vs. performance and we may just have to live
> > >with the limitations.
> > >
> > >If existing applications don't respect the limitations of OLPC, then
> > >either they must be fixed to do so, or they will not be performant.
> > >
> > >Dan
> > >
> > >
> > >
> > >
> > >  
> > >
> > "Must be fixed to do so" !?
> 
> OLPC doesn't cater to any specific existing application.  It's a piece
> of hardware with constraints, and all software running on that hardware
> must respect those constraints if they want optimal performance.  This
> is the case with all hardware.  It just happens that desktop computers
> where LiVES probably already runs are fast enough to make this not a
> problem.
> 
> > It's not possible to use RGB565 in LiVES for a variety of reasons: it 
> > uses GDK, which only supports 24/32 bit colour; and RGB565 is not a 
> > supported palette in any of the modern video processing standards (the 
> > only application which I know supports it internally is MOB, and I 
> > believe is dropping it soon, or may already have).
> 
> Yeah, we do suffer from some of that right now with Sugar.  However, we
> are using Cairo which does support 565.  X also supports 565 fairly
> well.  You simply cannot depend on 888 (ie, 24/32 bit) being fast enough
> here to do what you probably want on the OLPC machines for various
> reasons.
> 
> > We (video developers) decided about 2 years ago to drop RGB565 support 
> > in Livido (the now becoming common effect standard) 
> > http://livido.dyne.org/ and hence it is not present either in Weed 
> > (LiVES' own effect standard which is based on Livido).
> 
> That's nice, but dropping support means you are limiting your options
> for projects like OLPC that are not using the latest video hardware.
> It's a tradeoff; to meet $100, we cannot use the latest hardware.
> 
> > In short, supporting RGB565 in LiVES would require several man-years of 
> > work to make a hacked version of GDK, followed by several months of work 
> > to alter LiVES, plus rewriting all of the effect standards. Even then, 
> > since most effects process in RGB24, it would require a lot of palette 
> > conversions internally.
> > 
> > I am not even sure if LiVES will run on a 16 bit display, AFAIK this has 
> > never been tested.
> 
> That said, it wouldn't hurt to try and see what the performance is.  X
> will automatically convert anything you draw in 888 to 565 for you.  So
> it's likely that LiVES will run, but more slowly.
> 
> > A really don't see what you lose going to a 24 bit Xserver. Sure, it 
> > needs a bit more memory, but for a 1024x768 screen resolution, you are 
> > only talking about 800KB more.
> 
> We run a 1200x900 framebuffer.  You also need EXA acceleration memory
> and more memory for RandR rotation.  Moving to 24-bit would mean the
> loss of an additional 6MB of system memory on top of the existing 4 or 6
> we already lose to framebuffer.

I lied; right now 8MB out of 128 is devoted to VRAM.  Moving to 24/32
bit would mean a loss of an additional 6MB, meaning that only 114MB is
available to the rest of the system.

Dan

> 
> This also means that all pixmaps _everywhere_ will be 1/3 larger than
> they are today.  That means applications take up more memory on an
> already limited 128MB system.  That's life.  Is the tradeoff here to
> allow 24-bit only applications to work worth the loss in memory and
> performance because you're shoving around 1/3 more data on every
> graphics operation?  I don't know.
> 
> Furthermore, LCD panels don't give you all 8 bits per channel of color
> fidelity.  Most panels will only actually display 666 in the best case.
> So using 888 is essentially loosing performance for something that the
> user will _never_ ever see.
> 
> > I think a lot of applications will have problems if you stick to 16 bit 
> > colour. Just my opinion though.
> 
> 16 bit color isn't all that bad, since our LCD panel can only display
> 666 anyway.  But it's a fact of life that the OLPC machine is not the
> fastest machine out there, and there are limitations that it has to get
> to the $100 price point.  Those limitation include graphics that are not
> as fast, nor as flexible as a desktop with even an entry-level graphics
> card sold today.  That's life.
> 
> Dan
> 
> 
> _______________________________________________
> Devel mailing list
> Devel at laptop.org
> http://mailman.laptop.org/mailman/listinfo/devel




More information about the Devel mailing list