Terran
Active Member
- Joined
- Oct 30, 2009
- Messages
- 527
- Age
- 32
EvilDragon [Englischer Beitrag] said: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:
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:
The chip has been designed especially for MIPI displays and smartphones, mainly to save some power.
- 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
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.
Übersetzung said:Wir arbeiten jetzt schon seit einiger Zeit mit dem FullHD LCD, wie es aussieht, müssen wir zu einem anderem Display wechseln.
Warum?
Naja, es ist in Portrait Format, aber lest weiter...
Was war die eigentliche Idee?
Ursprünglich wollten wir ein LCD, dass in Landscape läuft und nicht in Portrait.
(1920 x 1080 anstelle von 1080 x 1920)
Ganz schnell, wie ein LCD funktioniert:
Die größte Auflösung, mit 5", bietet Sharp, mit 1024 x 600.Ein Bild wird gezeichnet, Linie für Linie, beginnend oben links.
Bis das komplette Bild auf dem Display erscheint.
Das geschieht 60 mal pro Sekunde.
Wenn das LCD in Protrait ist, in unserem Fall aber in Landscape erscheinen soll, müssen mir das Bild im 90° gedreht schreiben.
Dieses Display ist aber sehr als, vielleicht schon bald am Ende der Produktionszeit und es verwendet LVDS als Verbindung.
Damit hätten wir die selben Probleme, mit dem LCD-Kabel, wie bei der Pandora.
Alle anderen Display mit größerer Auflösung laufen im Protrit-Modus, keiner im Landscape Format.
Das hat uns Probleme bereitet.
Rotation mit dem SoC (OMAP5 in unserem Fall)
SoCs wie der OMAP5 haben oft Hardwarerotationen eingebaut (beim OMAP heißt das TILER).
Wie auch immer, es gibt negatieve Effekte...
JEDES Overlay muss gedreht werden - bis zu 3 rotationen gleichzeitig.
TILER benötigt den Framebuffer in einem speziellem Format, ansonsten kann er nichts drehen.
Das heiß, dass Programm MUSS dafür geschrieben worden sein, X Apps wären kein Problem (X-Server macht das selbst), aber jedes andere Programm, das SDL oder den Framebuffer verwendet muss angepasst werden.
Die Rotation benötigt IMMER CPU Power. Momentan läuft nicht mal der MegaDrive Emulator flüssig mit Rotation. Das könnte verbessert werden, aber es wird immer Probleme mit der Rotation geben (Je mehr sich auf dem Display bewegt, desto mehr CPU Power wird benötig).
Rotaition kann nicht Transparent gemacht werden, das heißt, für das OS wird das LCD immer 1080 x 1920 sein. Damit muss jeder nicht X-Spiel / -Programm angepasst werden (oder es läuft 90° gedreht...).
Das ist schlecht, wird werden dennnoch versuchen das zu Optimieren, aber wir zweifeln, dass das ohne etwas CPU Power, auf dieser Auflösung, gut läuft.
Von der Performance abgesehen, alle nicht X-Applicationen einer Standart Distribution müssen angepasst werden, was auch sehr unangenehm ist.
Wäre es mit einem anderem SoC besser?
Nicht wirklich, es wird wahrscheinlich keine bessere Lösung für die Rotation, bei anderen CPUs geben...
Warum geht das bei Smartphones?
Smartphones verwenden OpenGL ES für alles.
Alles wird auf einen Virtuellen Layer gerendert und der 3D Chip dreht es anschließend.
Das Funktioniert auch gut, wenn nur EIN Grafik Framework unterstützt wird (Wir wollen aber mehr).
Wenn wir nur Android hätten, würde das funktionieren - aber die Pyra soll mit Linux einem PC nahekommen.
Die OpenGL ES Lösung klappt für uns also nicht - auch würde der Akku mehr belastet werden (der 3D Chip hat immer was zu tun) und auch die Performance wäre nicht ganz so gut.
Das war es? Die Pyra wird nicht verwendbar sein?
Ummmm, das wäre eine Lösung, auch wenn keine gute.
Darum suchen wir etwas besseres...
Ich gabe einen kleinen Chip von Solomon Systech, mit folgenden Features, gefunden:
Farb Korrektur
Scaling
Drehen
Stromspar Funktion
Der Chip ist speziell für MIPI Displays und Smartphones designt, haupstächlich um Strom zu sparen.
Auch bietet er tear-free rotation und scaling an (das was wir benötigen!)
ABER: Nur für Displays bis zu 720 x 1280, keine größere Auflösung (noch nicht).
Solom Systech hat mir die Kontaktdaten für das europäische Hauptquartier, eines der größten TFT Hersteller, gegeben und sie können mir einen 720 x 1280 5" LCD anbieten, der schon von verschiedenen Käufer mit diesem Chip verwendet wird.
Natürlich müssen wir noch testen und prüfen, ob auch alles funktioniert - wir bekommen innerhalb der nächsten 20 Tagen Exemplare.
In Theorie, sollte mit diesem Chip folgendes möglich sein:
Rotation in Landscape ohne groß performance einzubüßen.
Scaling ohne goß performace einzubüßen.
Den LCD wie ein normalen Linux Monitor verwenden (verschiedene Auflösungen in X oder anderen Programmen)
KEIN spezial Code nötig für Rotation bei Spielen oder Apps.
Der einzige Nachteil wäre, kein FullHD -> dafür HalfHD - aber ich bin nicht sicher, ob das ein Nachteil wäre.
FullHD sieht beeindruckend aus, aber es wäre auf der Dirplaygröße alles viel zu klein für die Standard Linux Programme.
Ich musste das Icon von GIMP manuell anpassen, damit ich es verwenden konnte, FireFox hatte einen winzigen Text, etc.
HalfHD wäre, out of Box, für standard Linux besser und immer noch genügend für andere Apps.
Einige von euch werden bestimmt anderer Meinung sein, ich weiß, aber es sieht nicht so aus, als ob wir momentan viel machen können.
Da der Chip auf dem LCD PCB sein wird, wäre es möglich, in Zukunft, Upgrades zu verkaufen (wenn Solomon Systech einen Chip für FullHD macht).
Das ist aber nur eine Idee und nichts Fixes .
Es ist auch noch nicht Sicher, ob wir das 720 x 1280 LCD verwenden werden, da wir es noch testen müssen und auch versuchen die Rotation für FullHD zu verbessern.
Aber, es scheint die besser Lösung zu sein, für mich.
Noch angemerkt:
Das 720 x 1280 LCD incl. Chip ist um die Hälfte billiger, als das FullHD Display (wird den Preis der Pyra um 50 - 60 € reduzieren) und die MBM (Mindersbestellmenge) für uns wären nur noch 1000 Stück (FullHD wären MBM 5000 Stück), das wären 40.000 € für die HalfHD (anstelle von 400.000€ für FullHD).
Der Hersteller, der HalfHD Panels scheint sehr interessiert daran zu sein, an uns zu verkaufen - sehr schnelle Antworten auf unsere Fragen, guter Support und ALLE Datenblätter... ihr erinnert euch, welche Probleme wir mit den FullHD Displays hatten?
Das wird wahrscheinlich auch der Grund sein, warum Oculus VR den Deal mit Facebook eingegangen ist - sie benötigen ebenfalls LCDs in Landscape, aber mit höherer Auflösung und sehr, sehr schneller Refresh Time... sie hatten keine Wahl, auser ihre eigenen LCDs (oder OLEDs) herzustellen, um das Produkt zu beliefern.
Um einen eigenen Display zu Produzieren benötigt mann eine MENGE Geld...
Was denkt ihr darüber?
Ich habe eine Umfrage gemacht - aber schreibt auch eure Meinung dazu.
Blog
Quelle