Simulating a lower resolution on the OLPC XO Laptop
bert at freudenbergs.de
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:
>>> 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