Simulating a lower resolution on the OLPC XO Laptop

Jordan Crouse jordan at
Tue Nov 25 12:37:26 EST 2008

Bert Freudenberg wrote:
> On 25.11.2008, at 17:37, Jordan Crouse wrote:
>> Bert Freudenberg wrote:
>>> On 25.11.2008, at 11:57, Strider wrote:
>>>> Hi,
>>>> I have a XO Laptop which is a nice machine machine with a high res  
>>>> display of 1200x900 pixels. The problem with this is that the 
>>>> laptop  isn't powerful enugh to handle fullscreen applications at 
>>>> this  resolution. If only the display could switch to a lower 
>>>> resolution  things would be much better but it seems that this 
>>>> laptop only  supports a single resolution.
>>>> So I was wondering if it would be possible of simulating lower res  
>>>> at a low level, that is the xf86-video-geode driver.
>>>> I'm not an expert in video drivers but i imagine that there are  
>>>> functions to request a pixel to be drawn on screen based on what's  
>>>> in the video ram.
>>>> Now let's say that it's not one pixel but two that we put on 
>>>> screen,  and that we draw each lines two times. That would result in 
>>>> a  600x450 resolution.
>>>> If we do the same thing but repating the operations three times , 
>>>> we  would have a 400x300 resolution.
>>>> Some emulators have a scale option to do such a thing and manage it  
>>>> quite well, but if we had such an option in the video driver, the  
>>>> result would be even faster !
>>>> So what do you think about this? Is it possible ?
>>> The Geode actually can do real upscaling (that is, scale multiple  
>>> graphics resolutions to the panel resolution), it works fine on 
>>> other  machines and LCDs. But latest word is that this somehow 
>>> interacts  badly with our DCON, so no-one has gotten it to work 
>>> correctly on the  XO yet.
>> Indeed.  I think there is a DCON interaction happening, because the 
>> mouse gets "corrupted" during upscaling as well - and that implies 
>> that the issue is happening after the screen is constructed.  The 
>> upscaling works fine on a CRT and on a "standard" TFT panel, so that 
>> is what leads me back to the DCON.  Its also a long shot that the 
>> 1200x900 resolution is confusing the scaler, but I doubt it since the 
>> aspect ratio is still 4:3.  I would love for other people to try the 
>> driver (it is in the latest debxo, I think); perhaps you can see the 
>> pattern that I can't.
>>> There still may be hope, because the video upscaler can take RGB 
>>> 5:6:5  data, so in theory a lower-res 16 bpp frame buffer could be 
>>> upscaled  on-the-fly (and the upscaler does 30 fps easily). But I 
>>> guess getting  this to work would require a very determined X hacker ...
>> The RGB video overlay should just work (TM).  So it would take less of 
>> a determined X hacker, and more of a determined application hacker to 
>> put all the pieces together.
> Well, I meant that this could be used to actually provide, say, an 
> 800x600x16 mode in the driver, without having to hack applications. 
> While adapting a single app may be comparatively easy, it's still a 
> major hassle to patch each and every app. Having it in the driver would 
> make things just work (TM). But that would be a major hack, don't you 
> agree?

So if I understand what you are getting at - you want to set up a single 
  overlay over the whole screen, and render everything on that?  Thats 
probably doable - you could set up a shadow framebuffer like we do for 
rotation, and hook the damage code into the video overlay.  It might 
work out well, but it would preclude using the video overlay for 
anything else (such as, video).  It would probably also preclude 
rotation - maybe not.

But rather then invent fanciful ways to handle this, the efforts would 
be better spent figuring out how to fix the current driver.  Mitch 
reports that the Windows driver works just fine, so clearly the bug is 
on our side.

We need developers to start understanding how the driver works. 
Everybody with a professional interest in the X driver has moved on to 
other pastures, and OLPC desperately needs community members to pick up 
the slack.


More information about the Devel mailing list