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)
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...
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:
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...
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.
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.
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.
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
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
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: