Grafikkonzept



  • Hm, kann man ja als Thread machen lassen.. ok, vllt kann man den 1. Buffer weglassen aber Double Buffering ist wirklich sinnvoll.



  • Hallo,

    Cuervo schrieb:

    aber Double Buffering ist wirklich sinnvoll.

    Das zweifelt niemand an, aber man sollte es der Hardware überlassen die das mit deutlich weniger Zeitaufwand erledigt.

    Gutes Hardware-Triple-Buffering stelle ich mir so vor das nach dem Umschalten auf einen neuen aktiven Puffer (der dann auf den Bildschirmübertragen wird) die Daten vom nächsten Puffer in den übernächsten Puffer kopiert werden und sämtliche Schreibzugriffe der CPUs auf den nächsten Puffer immer auch in den übernächsten Puffer gespiegelt werden. Wenn dann vom aktuellen Puffer auf den nächsten Puffer umgeschaltet wird sind dieser und der übernächste Puffer exakt identisch. So entstehen keine Tot-Zeiten, nur der Speicher auf der GraKa muss eine sehr hohe Daten-Transfer-Rate haben (was heutzutage ja kein Problem ist).

    Grüße
    Erik



  • Ich bin mir jetzt nicht sicher, aber – kann VBE das überhaupt mit relativ geringem Aufwand? VBE3 kann afaik Triple Buffering, aber das ist nicht so weit verbreitet, glaub ich.



  • Hallo,

    XanClic schrieb:

    kann VBE das überhaupt mit relativ geringem Aufwand? VBE3 kann afaik Triple Buffering, aber das ist nicht so weit verbreitet, glaub ich.

    Ich vermute mal beides eher nicht. Das übliche Double-Buffering und Triple-Buffering das ich kenne basiert darauf das die SW den Bild-Puffer immer komplett neu befüllt, ich kenne das zumindest aus der Zeit der DOS-basierten Spiele und Demos so. Ob es überhaupt GraKas gibt die beim Triple-Buffering den Bild-Inhalt selbstständig kopieren weiß ich nicht, besonders cool wäre es wenn man das für alle einzelnen Fenster getrennt machen könnte und die GraKa das Bild erst anhand einer Fenster-Karte zusammensetzt (das würde z.B. Festerbewegen ohne nennenswerten Aufwand bedeuten).

    Grüße
    Erik



  • Ok, mein Konzept ist doof. Ab jetzt wird dieser Thread für andere Konzepte genutzt. Die Abstimmung hat keine weitere Bedeutung mehr, Abstimmen ist aber weiterhin erlaubt (kann nicht mehr gelöscht werden.. -.-)

    Cuervo



  • Hallo,

    Cuervo schrieb:

    Ab jetzt wird dieser Thread für andere Konzepte genutzt.

    Oh, sorry, an die Abstimmung hatte ich gar nicht gedacht als ich meinen Fingern freien Lauf auf der Tastatur ließ. 😃

    Grüße
    Erik



  • erik.vikinger schrieb:

    XanClic schrieb:

    kann VBE das überhaupt mit relativ geringem Aufwand? VBE3 kann afaik Triple Buffering, aber das ist nicht so weit verbreitet, glaub ich.

    Ich vermute mal beides eher nicht.

    Hm, aber PrettyOS hätte ja kaum eine andere Möglichkeit als VBE? Deine Ausführungen klangen jetzt zumindest so, als würdest du Software-Double-Buffering ablehnen und auf die Möglichkeiten der Hardware vertrauen, aber anscheinend gibt es diese Möglichkeit ja nicht...



  • Hallo,

    XanClic schrieb:

    Hm, aber PrettyOS hätte ja kaum eine andere Möglichkeit als VBE?

    Ja, leider. Deshalb mach ich ja was eigenes.

    XanClic schrieb:

    Deine Ausführungen klangen jetzt zumindest so, als würdest du Software-Double-Buffering ablehnen und auf die Möglichkeiten der Hardware vertrauen,

    Dann klang es richtig. Mache nie etwas per Software was man per Hardware deutlich effizienter machen kann. Nur leider klingen meine Worte nicht in den Ohren der verantwortlichen Entwickler für die PC-Plattform.

    XanClic schrieb:

    aber anscheinend gibt es diese Möglichkeit ja nicht...

    Theoretisch ließe sich das vielleicht mit einem OpenCL-Programm o.ä. machen, aber nur mit VBE wird da wohl nicht viel gehen. VBE stammt aus einer Zeit als die Transferrate des GraKa-RAMs noch nicht so berauschend hoch war wie heute.

    Grüße
    Erik



  • erik.vikinger schrieb:

    Ob es überhaupt GraKas gibt die beim Triple-Buffering den Bild-Inhalt selbstständig kopieren weiß ich nicht, besonders cool wäre es wenn man das für alle einzelnen Fenster getrennt machen könnte und die GraKa das Bild erst anhand einer Fenster-Karte zusammensetzt (das würde z.B. Festerbewegen ohne nennenswerten Aufwand bedeuten).

    Ist das nicht genau das was zur Zeit in den meisten Betriebssystemen benutzt wird? Der Fensterinhalt wird (Teils per Software teils per Hardware) in eine Textur gemalt und diese dann auf ein Rechteck gerendert. Dabei wird auch mindestens Hardware Double-Buffering eingesetzt.

    Man könnte ja irgendwann mal versuchen Mesa zu portieren und dann gucken ob man nach und nach Teile per Hardware beschleunigen kann. Das wäre allerdings schon eine sehr fortgeschrittene Aufgabe.



  • Aehm, ich will euch ja nicht den Spass verderben, aber waere es nicht vielleicht hilfreicher, zumindest die Feature-Listen auf den ersten 20 Seiten der VBE3-Spezifikation zu ueberfliegen, bevor ihr weiter im Nebel stochert und anfangt wild an irgendwelchen Riesenprojekten herumzuklempnern? 😃

    Achtung, Spoiler:
    Mit der VBE kann man sehr wohl Hardware Double Buffering verwenden - AFAIR sogar wenigstens seit Version 2. Seit Version 3 sogar Tripple Buffering mit Hardware-Unterstuetzung und noch vieles mehr. Fuer die Basics ist das allemal ausreichend.
    Zudem ist die VBE 3 AFAIR wenigstens seit den 4er AGP-Karten selbst in jeder noch so billigen PC-Graka implementiert.
    Dabei wird allerdings nichts umkopiert, sondern der Einfachheit halber die Startadresse des Frame Buffers verschoben.

    Ich wuerde euch raten, zunaechst mal ein wirklich durchdachtes Konzept mit hinreichend genauer Spezifikation der Anforderungen, mehreren Loesungsansaetzen und Schnittstellen zu entwickeln, bevor ihr euch im Kleinklein irgendwelcher Hardwarebeschleunigung verliert. Sonst koennt ihr es auch bei kleinen Hardwaredemos belassen. 😉


Anmelden zum Antworten