Simulating a lower resolution on the OLPC XO Laptop

Bert Freudenberg bert at
Tue Nov 25 12:21:13 EST 2008

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?

An intermediate solution would be hacking Xephyr to do the scaling,  
and since those legacy apps need to be wrapped anyway that approach  
might be rather viable. Would be a nice improvement to the X activity.  

- Bert -

More information about the Devel mailing list