Beautiful landscapes are prettier than portraits

What are your feelings about that development?

  • I want the FullHD display, no matter what! It'll look so much better! I don't care about the perform

    Votes: 14 4.0%
  • FullHD would've been nice, but with those issues, HalfHD is better. I still would've preferred FullH

    Votes: 72 20.8%
  • FullHD is overkill anyways in my opinion. HalfHD is way better suited for a screen that size.

    Votes: 139 40.2%
  • CPU performance and easy development are more important than the higher resolution. I'm fine with th

    Votes: 208 60.1%
  • I don't really care about the difference between FullHD or HalfHD - it's more important that the gam

    Votes: 116 33.5%

  • Total voters
    346

EvilDragon

Administrator
Staff member
Joined
Mar 4, 2003
Messages
29,986
Age
46
Location
Ingolstadt
Well, we've been working with the FullHD LCD for a while now, and right now, it looks like we need to switch to a different one.

Why, you might ask?
Well - because it's in portrait mode... but read on...
 

What was the original idea?

Originally, I wanted to try to get an LCD that runs in landscape mode, not portrait.
(Which means for example: a 1920x1080 display instead of a 1080x1920 one).

A quick basic information on how an LCD works (click SPOILER)

An image is always being drawn

line by line, starting from top left.
Until the full image is displayed on the LCD.

This happens 60 times per second.

Now, if the LCD is in portrait mode but our use case is landscape mode, we basically need to write the image data 90° rotated.
The highest-resolution landscape LCD with about 5" is 1024x600, from Sharp.

That one is already pretty old, so it'll probably be out of production soon. Additionally, it uses LVDS as connection, which means we'd have the same LCD Cable trouble as with the Pandora once again.

All other displays with a higher resolution are running in portrait mode...there's not a single one that runs in landscape mode.

Which caused us quite some trouble.

Rotation with the SoC (OMAP5 in our case)

SoCs like the OMAP5 often have a hardware rotation included (in case of the OMAP, it's called TILER).

However, there are some negative effects...

  • Every overlay needs to be rotated itself - so we'd need to do up to three rotations at once.
  • TILER needs the framebuffer in a special format, otherwise it cannot rotate it. Which means: The programs need to be coded to use that format. X apps would be no problem (as the X-Server handles that), but any app using SDL or the framebuffer would need to be updated.
  • The conversion / rotation will always need some CPU power! Right now, it's even too slow to run a MegaDrive emulation in fullspeed when doing rotation. This can most probably be improved, but there will always be a huge perfomance hit when rotating games... (the more movement is going on, the more CPU power it will need).
  • The rotation cannot be done in a transparent way. That means: for the OS, the display will always be a 1080x1920 display. So every non-X game / app needs to be coded accordingly (or it will run 90° rotated...)

These are quite some bad side effects. We will still try to optimize the rotation, but we doubt it will run without quite a bit of CPU usage at such a high resolution.

But even without that performance hit, it would mean that only X-Applications of a standard distribution can be used - all other apps need a change in the sourcecode, which is pretty annoying as well.

Would that be better with a different SoC?

Not really. Regardless what SoC we use, they will most probably not include a better solution for rotating that...

And why do Smartphones work then?

Smartphones use OpenGL ES for everything. So basically, it renders everything onto a virtual layer and the 3D chip rotates it.

That works fine - unless we want to support more than just one graphics framework (which we want).

If we'd only run Android, that would work - but we want the Pyra to be as close as a normal Linux PC as possible.

So the OpenGL ES solution doesn't work for us - besides, that would also use more battery power (as the 3D chip is always doing something) and it would probably have some performance hit as well.

So that's it? The Pyra won't be usable at all?

Ummm, that would be a solution, but not a very good one.

So we looked for proper solutions...

I found a small chip from Solomon Systech which offers the following features:

  • Color Correction
  • Scaling
  • Rotation
  • Power Saving features
The chip has been designed especially for MIPI displays and smartphones, mainly to save some power.

However, it also offers tear-free rotation and scaling (which is what we need!)
But: Only for displays up to 720x1280, nothing higher (yet).

Solomon Systech gave me a contact to the European headquarters of one of the biggest TFT manufacturers, and they can offer me a 720x1280 5" LCD, which has already been used by various customers together with exactly that chip.

Of course, we still need to test and confirm that it works, but we'll receive samples within the next 20 days.

In theory, with that chip and LCD it should be possible to...

  • Rotate to landscape without any performance hit
  • Scale any resolution without any performance hit
  • Use the LCD similar to a normal Linux monitor (i.e. you can use various display resolutions in X or with other programs)
  • No special code would be needed for rotation for any games or apps
The only downside seems to be that we switch from FullHD to HalfHD - but I'm not sure it's really a downside.
While FullHD looks impressive, it's way too small for a lot of standard Linux applications.
I needed to manually change the icon size of GIMP to make it usable, FireFox had tiny tiny text, etc.
HalfHD will probably be more usable out of the box with a standard Linux - and still be easily enough for most apps.

Some of you might have a different opinion about it, I know, but it doesn't seem we can do much about that right now.

However, as the chip will be put on the LCD Cable PCB, it will be possible to offer upgrade packages to a new FullHD LCD sometime in the future (in case Solomon Systech will ever release a chip that can do FullHD rotation as well).

But that's only an idea yet, no fixed plan :)

It's not yet fixed we'll use the 720x1280 LCD, as we still need to test it as well as we want to try to improve rotation of the FullHD LD.

But it seems like the better solution to me.

On a sidenote:

The 720x1280 LCD solution incl. the chip is also half the price of the FullHD display (will lower Pyras end price by about 50 - 60 EUR), and the MOQ (minimum order quantity) for us is 1000 pcs - the FullHD has a whopping 5000 pcs MOQ (which means: we'd need 400,000 EUR just to buy the LCDs, whereas we need approx. 40,000 EUR for the HalfHD ones...)
Also, the manufacturer of the HalfHD panel seems to be a lot more interested in selling us the displays, we got really fast replies to our questions, good support and all datasheets needed... remember the issues we had with the FullHD panel...?


This was probably the main reason why Oculus VR agreed to the Facebook deal - they are ALSO in need of landscape LCDs, but with a lot higher resolution and very very fast refresh times... they have no choice but to produce their own LCD (or OLED) to deliver the product they want.
And for producing your own screen, you need A LOT of money....

What are your feelings about that?

I've made a poll - but feel free to post your own opinions in this thread as well.
 
Last edited by a moderator:
This seems quite a quandary of a design issue, however 1280x720 resolution isn't horrible at all..
 
Last edited by a moderator:
As much as i like the slap together a lot of hardware and fix it in software, later-prospect.

It would similarly be possible to go to a new screen later on.

I like the low cost up front of the less resolution screen, but what are the specs on it?

Should think it could be a matte display at that res, no?
 
I like the low cost up front of the less resolution screen, but what are the specs on it?


Should think it could be a matte display at that res, no?
Matte / Glare is defined by the touchscreen, and that one is custom made according to our specs anyways.

Doesn't have anything to do with the screen itself.
 
I was just wondering the cost of it while I was reading. Cost alone sounds like a good compromise.

Should the poll be multiple choice? 

A shame that all that work could have been for nothing, tho.
 
Last edited by a moderator:
I was already somewhat worried about the DPI issue, given the trouble Michael from Phoronix had trying to get Xfce to play nicely with a HiDPI laptop display. On both price and performance, I think the 720p solution is better.

The only potential downside I see is HDMI out. While 1280x720 would be acceptable, I'd still really like to be able to  have a 1920x1080 desktop if I borrow someone's HDTV while travelling with a Pyra, Jorno, and Bluetooth mouse. Then it could be a pocketable desktop replacement. (My desktop has two monitors and runs at a total resolution of 2560x1024 so 1280x720 is a bit too cramped to truly feel at home away from home.)

I get the impression that driving two displays at different resolutions is probably still beyond a mobile SoC but would there be any way to support something like "switch off internal display and XRandR to 1920x1080 when HDMI is connected" as a preferences checkbox?

If so, this would be superior in absolutely every way.
 
The problem with the Pandora is that a lot of stuff assumes a minimum resolution of 800x600. 1280x720 will be technically fine.
 
I think I'd like to know more about things before I vote.

  • TILER needs the framebuffer in a special format, otherwise it cannot rotate it. Which means: The programs need to be coded to use that format. X apps would be no problem (as the X-Server handles that), but any app using SDL or the framebuffer would need to be updated.
What is the format? Is it swizzled? A different color space?

  • The conversion / rotation will always need some CPU power! Right now, it's even too slow to run a MegaDrive emulation in fullspeed when doing rotation. This can most probably be improved, but there will always be a huge perfomance hit when rotating games... (the more movement is going on, the more CPU power it will need).
What about tiler takes CPU time? Is that only the case if you're converting the framebuffer to this special format? Moving things around in memory doesn't take CPU time by itself, although it could interfere with bandwidth available to the CPU. But a 320x224ish framebuffer @ 60Hz is barely needs bandwidth to move around.

Not getting fullspeed Megadrive emulation when doing rotation sounds like something going very, very wrong. On Wiz emulators were doing rotation in software and managed okay. So why would a hardware assisted rotation function be so slow on hardware that's several times faster? It sounds like you're not only doing the rotation in software but scaling too. Is the scaler not working as expected either?

Have you invested using the 2D accelerator to perform rotations? It can handle simple rotation types: https://github.com/laanwj/etna_viv/blob/master/doc/2d.md It wouldn't be as efficient as a proper display controller doing it but it should still be a lot better than doing it on the CPU - which still wouldn't be that bad for things like emulators that aren't very high resolution (for the most part, and the ones that are would mostly be 3D accelerated so it'd be moot). Games and stuff can target the rotated display directly, with a little extra effort.

The bigger annoyance is what this means for backwards compatibility.

And before going in on this post-processing chip that can rotate be sure it doesn't add too much latency.

I do think that the lower price of the 720p display is compelling. But I thought there was some reason why you couldn't get it. Are you saying you can only get it if you buy this chip? If possible you should use it regardless of what's done for rotation.
 
It will be a shame that we probably won't get 1920x1080 because that sounded so awesome for a handheld, but after reading a couple of different forums, would be smarter to wait on getting the pyra instead of getting it as soon as it is released? Because it sounds like it will be going through some various hardware upgrades.
 
Last edited by a moderator:
So long as it works as advertised, I see no reason not to use this chip. As ED says, it could be upgraded in the future if they release a chip that supports full HD. In the mean time, it solves our problems, lowers the initial buy-in cost of the unit for the consumers, lowers the amount of money ED needs to start productions and prevents any performance and coding issues. Seems pretty win-win. Of course, reiterating the first point I made, this all depends on if it will work as advertised.
 
The only potential downside I see is HDMI out. While 1280x720 would be acceptable, I'd still really like to be able to  have a 1920x1080 desktop if I borrow someone's HDTV while travelling with a Pyra
what's the problem with having an external screen at higher resolution than the LCD ? That's usually no issue at all.  

won't get 1920x1080 because that sounded so awesome for a handheld,
Why would you use Full HD for anyway ? I have seen Full HD phones and honestly i'm not impressed what what it looks like. You don't see much difference especially when things are in motion.  
 
I'm fine with the 720x1280 5" LCD. 

Full HD was not something that we wanted in the first place anyway, so it feels like we are coming back to where we started. Additionally, that probably means we can push more pixels with an OMAP5 on the screen with a lower resolution screen + lower screen power consumption, so all in all it's very positive to move to this kind of screen. 
 
I'm totally fine with subHD display, I can't see that much detail on a 5 inch screen anyway. I'm with Exophase on this one though, I don't like breaking the backwards competibility.
 
The only potential downside I see is HDMI out. While 1280x720 would be acceptable, I'd still really like to be able to  have a 1920x1080 desktop if I borrow someone's HDTV while travelling with a Pyra
what's the problem with having an external screen at higher resolution than the LCD ? That's usually no issue at all.  
That's why I called it a potential downside. I've seen situations where it was an issue in the past and we don't yet have enough information to rule it out.
 
I've seen situations where it was an issue in the past and we don't yet have enough information to rule it out.
Can you explain what situations you encountered in the past? On different linux laptops I've never had issues plugging the external video out to larger resolution screens. 
 
How is HalfHD better than FullHD for that size, when one it looks better to people and two 1080p keeps

backward compatibility?
 
Last edited by a moderator:
when one it looks better to people
Mouahhaa. It looks better to people if you tell them it's better, but take two screens at 720p and 1080p in 5'' format, in a blind test, and you'll probably be surprised by how many people find out which is the higher resolution one (especially for stuff moving around on screen).

For text, yes, it may look a bit better, but it won't be that significant either.  
 
I've seen situations where it was an issue in the past and we don't yet have enough information to rule it out.
Can you explain what situations you encountered in the past? On different linux laptops I've never had issues plugging the external video out to larger resolution screens. 
Not with laptops, no. Hell, I've got an old Thinkpad 755C (486DX4 75MHz) that can do more on the external VGA than the built-in panel... but laptops and mobile SoCs aren't the same thing.

I can't remember specific models, but I know I've run across some where, for example, the SoC should have been capable of more but, because of the way it was wired up to the internal panel, the internal panel couldn't be turned off, the external video was stuck mirroring it, and the resolution was capped at the native resolution of the internal panel.

My main concern is that the switchable output support necessary for HDMI at a higher resolution than the internal panel can support would require extra chips or PCB traces that the Pyra doesn't have room for or that some quirk of the OMAP's video driver may make switching resolutions like that unfeasible.

I know the Pandora doesn't have a problem with feeding different images to the two video outputs, but it's not exactly doing the same task either, given that the internal panel will never have a lower resolution than the TV Out.
 
Last edited by a moderator:
My main concern is that the switchable output support necessary for HDMI at a higher resolution than the internal panel can support would require extra chips or PCB traces that the Pyra doesn't have room for.
No matter the resolution of the internal panel, ED has (if i remember correctly), a design target to allow for full-HD display on an external display once docked, so, unless anything has changed, I wouldn't worry too much about that.  
 
Back
Top