Mit was ist ein Desktopenvironment das nur auf dem Framebuffer arbeitet schneller, mit 2d Vektordaten oder mit 2d Bitmap
-
daten?
Folgendes Problem:
Bei aktuellen Linuxdistributionen wird ja der Support für alte Grafikkarten die z.B. eine 2d Beschleunigung zum Zeichnen von Fenstern & Buttons bieten, komplett entfernt und die modernen Desktopmonster gehen alle Richtung Desktop mit 3d Beschleunigung.Daher habe ich mich gefragt, wie müßte man ein komplett neu entwickeltes Desktop Environment technisch auslegen, wenn es auf uralten Maschinen (z.B. Pentium 1 @ 133 MHz und 64 MB RAM) mit uralten Grafikkarten nur im VESA Framebuffer, also komplett ohne 2d und 3d Beschleunigung flüssig benutzbar sein soll?
Würde man die ganzen Fenster und Buttons als 2d Vektordaten zeichnen oder wäre es schneller, dafür Bitmaps zu verwenden?
Icons sollten natürlich weiterhin benutzbar sein, allerdings würden die dann vorher von SVG auf Bitmaps aus Performancegründen konvertiert und dann auf der Festplatte so abgelegt werden, die SVG Daten bleiben als Backup erhalten.
Aber der ganze andere Schnickschnack, wie z.B. abgerundete Fenster, Transparenzeffekte, themebare GUIs, Buttons mit Farbübergang (z.b. von Grau nach weiß), Animationseffekte usw. sollte draußen bleiben, weil das frißt nur Resourcen (zumindest bei 2d Vektordarstellung).
Lediglich die Buttons sollten einen kleinen klassischen 3d Schatteneffekt bekommen, wie man ihn z.B. von Windows 95 her kannte, dafür reichen dann aber z.B. schon 2d Vektordaten.Wie würde man dann bei so einem Desktopenvironment das GUI Toolkit auslegen?
Würde es hauptsächlich mit 2d Vektordaten arbeiten?
Also die rechteckigen Fenster und Buttons on the fly mit Linien zeichnen, oder wäre es schneller, wenn man die Fenster und Buttons vorher in Bitmaps rendert und diese dann nur noch für den Framebuffer kombiniert?Letzteres würde natürlich ein klein bischen mehr Speicher brauchen, aber es sollte kein Problem sein, einen alten Pentium 1 auf 64 MB aufzurüsten und 486er will ich nicht unterstützen, weil die oft sowieso nicht mehr als 8 MB haben und darauf ja nichtmal ein moderner Linux Kernel ordentlich läuft.
Auch könnte man beim Rendern auf Bitmapbasis natürlich einige der weggelassenen Schnichschnack Features, wie z.B. Farbübergänge wieder reinnehmen, weil die dann, sofern keine Kompression verwendet wird, sowieso keine Performanceunterschiede machen würden.
Auch gerundete Buttons und Fenster wären denkbar, aber nur dann, wenn es bei Transparenz heißt, entweder ganz oder gar nicht.
Transparenzzwischenschritte kosten wieder Performance und auf Kantenglättung an den gerundeten Ecken müßte auch komplett verzichtet werden, denn auch das kostet Performance.Wichtig wäre mir allerdings, daß die GUI Elemente bzw. der Desktop statisch skalierbar ist, denn das Desktop Environment sollte auch auf kleinen Displays mit hohen Auflösungen wie z.B. auf einem N8x0 Internet Tablet oder eben Linux basierten Handy funktionieren und da braucht man dann für die Buttons halt schon eine gewisse Größe, um die Bedienung via Fingereingabe zu ermöglichen.
Die Skalierung sollte also drin sein, nur eben nicht on the fly, sondern statisch festgelegt werden wie man es haben will.
Auf einem normalen Desktoprechner sollten die Buttons also nicht mitskalieren, wenn man das Fenster z.b. vergrößert.Was haltet ihr von so einer Projektidee für ein Desktopenvironment, daß performant in einem VESA Framebuffer arbeiten soll?
Um nicht gänzlich die Kompatibilität zu modernen Anwendungen zu verlieren, müßte man wohl als Grundaufbau den XOrg Server nutzen, der dann diesen VESA Framebuffer zur Verfügung stellt, so daß man weiterhin GTK+ und KDE Anwendungen mit ihren eigenen GUI Toolkits benutzen und darstellen kann, das bringt dann zwar nichts für die Performance, aber wer auf diese Anwendungen verzichtet, der könnte somit trotzdem ein gutes Desktopfeeling erreichen.
Im Prinzip würde dieses Desktop Environment also auf einen Window Manager + zu einem Desktop Environment typische Anwendungen, einer für ein Desktop Environment typischen Intagration aller wichtigen Komponenten und einem eigenen neu entwickelten schnellen GUI Toolkit hinauslaufen.Qt und GTK+ können ja z.b. deutlich mehr, sie sind themingfähig, können Transparenzeffekte und Kantenglättung usw., aber das ist alles Zeugs, was bei einem nur VESA Framebufferfähigen Rechner die Maschine IMO nur ausbremst.
Das merkt man ja auch daran, wenn man solche Anwendungen in einer VESA Umgebung ausführt, und die ganzen Effekte dann via Software im Hintergrund von der CPU ganz ohne 2d Beschleunigung berechnet werden müssen.
Hier würde ich also gerne ansetzen, mit einem eigenen GUI Toolkit, einem passenden WM und für dieses neue GUI Toolkit neu geschriebenenen Desktop Environment Programmen.Für den Anfang würde hier z.b. ein Editor, ein Dateimanager, eine E-Mail Applikation mit Adressbuch- und Terminplanerintegration, ein Setupmanager für die Desktop Environment Relevanten Dinge (Sprache, Schriftart, Hintergrundbild, auflösung, Soundeffekte) usw. genügen, da wo es Sinn macht und geht könnte man auf bestehende Komponenten aufbauen. Z.b. bei den Codecs zum Abspielen von Multimediainhalten. Nur der Mediaplayer müßte dann wieder mit bzw. für das neuen GUI Toolkit programmiert werden.
Der Browser wäre problematisch, da habe ich noch keine Idee außer so lange halt bestehende Browser zu nutzen.Tja, das wäre das so, was mir gerade einfällt.
Wie ist eure Meinung dazu?
Würde es hier vielleicht sogar auch Leute geben, die mitmachen würden?
-
PS:
Langfristig soll das Window System unter Linux ja durch das Y Window System abgelöst werden, insofern müßte man eventuell hier ansetzen, allerdings weiß ich nicht, ob man hier perfmancemäßig ansetzen kann.
Es kommt halt darauf an, wer bestimmt wie was gezeichnet wird.
http://en.wikipedia.org/wiki/Y_Window_System
-
Desktop Env. entwickeln schrieb:
PS:
Langfristig soll das Window System unter Linux ja durch das Y Window System abgelöst werden, insofern müßte man eventuell hier ansetzen, allerdings weiß ich nicht, ob man hier perfmancemäßig ansetzen kann.
Es kommt halt darauf an, wer bestimmt wie was gezeichnet wird.
http://en.wikipedia.org/wiki/Y_Window_SystemKorrektur:
Ich glaube Wayland war das neue Grafiksystem, das X ablösen soll:
http://en.wikipedia.org/wiki/Wayland_(display_server_protocol)
-
Ohne dir jetzt gleich den Wind aus den Segeln nehmen zu wollen, aber erstens ist jedes Handy/Smartphone, welches in den letzten 5 Jahren rausgekommen ist, leistungsfähiger als ein Pentium 1, und zweitens, bekomme es erst mal hin ein einzelnes Bild in den Framebuffer zu laden.
-
Cybertec schrieb:
Ohne dir jetzt gleich den Wind aus den Segeln nehmen zu wollen, aber erstens ist jedes Handy/Smartphone, welches in den letzten 5 Jahren rausgekommen ist, leistungsfähiger als ein Pentium 1, und zweitens, bekomme es erst mal hin ein einzelnes Bild in den Framebuffer zu laden.
Wayland bietet eigentlich schon die Buffer, die man braucht:
Applications render graphics to their own buffers, and the window manager becomes the display server, compositing those buffers to form the on-screen display of application windows.
Im Prinzip müßte man also ein eigenes GUI Toolkit schreiben und darauf dann das Desktopenvironment + dafür geschriebene Anwendungen aufsetzen.
Das mit den Handy der letzten 5 Jahre stimmt natürlich nicht.
Mein N810 Internet Tablet ist aus dem Jahr Ende 2007 und die CPU ist bestenfalls so schnell wie ein Pentium 1 @ 166-200 Mhz, also nicht der Rede wert.
Der Pentium 1 @ 133 MHz ist ein Richtwert für die unterste Klasse um überhaupt eine Vorstellung dafür zu bekommen.Die Handys sind nicht viel schneller, einige dürften sogar langsamer getaktet sein als das N810 und wenn du die 2d und 3d Beschleunigung dieser Geräte rausnimmst, was unter Linux mangels Treiber oft der zwingende Fall ist, dann sind die Dinger lahm wie ne Schnecke.
-
@Cybertec
Du darfst auch nicht vergessen, daß diese alten ARM CPUs die man auf diesen Handys in der Regel verbaut hat, von der Architektur her deutlich langsamer sind, als ein damals hochoptimierter Pentium 1, weswegen die höhere Taktfrequenz dieser Geräte (mein N810 ist z.B. mit 400 MHz getaktet) nicht viel zu sagen hat.
Schneller als so ein Pentium sind sie dadurch noch lange nicht und die meisten alten Arms arbeiten oft langsamer als mit 400 MHz.Bei modernen Arms sieht das natürlich anders aus, aber um die geht es hier nicht.
Tatsache ist auch, daß bald Athlon CPUs mit 1 GHz Taktfrequenz unter Linux nicht mehr gut benutzbar sind, weil eben die Grafikkarten, die in solchen alten Rechnern stecken (Riva128, TNT2 usw.) ihre 2d Beschleunigung komplett verlieren.
-
Desktop Env. entwickeln schrieb:
Folgendes Problem:
Bei aktuellen Linuxdistributionen wird ja der Support für alte Grafikkarten die z.B. eine 2d Beschleunigung zum Zeichnen von Fenstern & Buttons bieten, komplett entfernt und die modernen Desktopmonster gehen alle Richtung Desktop mit 3d Beschleunigung.Ich seh da ehrlich gesagt kein Problem, sondern eine lang erwartete und erhoffte Entwicklung. Was anderes als 3D Grafikkarten gibts heutzutage eh nicht mehr, wird also doch verdammt nochtmal Zeit, diese auch zu nutzen und alten Ballast abzuwerfen, so wie der Rest der Welt es auch tut!?
Gerade wenn du Vektorgrafik willst, ist 3D Hardware doch ideal!?
-
dot schrieb:
Desktop Env. entwickeln schrieb:
Folgendes Problem:
Bei aktuellen Linuxdistributionen wird ja der Support für alte Grafikkarten die z.B. eine 2d Beschleunigung zum Zeichnen von Fenstern & Buttons bieten, komplett entfernt und die modernen Desktopmonster gehen alle Richtung Desktop mit 3d Beschleunigung.Ich seh da ehrlich gesagt kein Problem, sondern eine lang erwartete und erhoffte Entwicklung. Was anderes als 3D Grafikkarten gibts heutzutage eh nicht mehr, wird also doch verdammt nochtmal Zeit, diese auch zu nutzen und alten Ballast abzuwerfen, so wie der Rest der Welt es auch tut!?
Gerade wenn du Vektorgrafik willst, ist 3D Hardware doch ideal!?Warum soll das kein Problem sein, wenn man gezwungen wird, alte Hardware wegzuschmeißen, obwohl sie noch gut funktionieren könnte, und für neues Geld dann neue Hardware zu kaufen?
-
Wer zwingt dich denn, was wegzuschmeißen?
-
weil ein 25euro system genug leistung hat um die UI darzustellen, daneben kann man damit noch ein H264 video in 1080p schauen.
wenn es dir ums geld geht, wirst du vermutlich genug stromkosten sparen dass sich die 25euro rentieren.