PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Irre Idee! Wozu gibt es noch regelmäßige Hz bei digitaler Ansteuerung?


Mstrmnd
2007-10-26, 03:33:37
Beim lesen dieses Beitrages (ganz letzter Absatz reicht):
http://www.forum-3dcenter.org/vbulletin/showpost.php?p=5967788&postcount=20
viel es mir wie Schuppen von den Augen.

Als wir noch die CRTs hatten, da hatte eine stetige Bildwiederholrate noch ihren Zweck. Das ist klar, da muss man denke ich nicht ins Detail gehen. Aber wie sieht es bei TFTs und digitaler Ansteuerung aus? Warum muss man einen TFT regelmäßig füttern? Es gibt doch gar keinen physikalischen Vorgang mehr, an den die Bildwiederholrate gekoppelt sein sollte.

Faktisch handeln die Grafikkarte und der Monitor für die Auflösung also eine bestimmte Bildwiederholrate aus. Der Monitor kriegt dann in regelmäßigen Abständen ein Bild zugeschickt und zeigt dieses dann an. Ich sehe jetzt überhaupt nichts, was dagegen sprechen würde, wenn man keine Bildwiederholrate von vornherein festlegen würde und einfach nur dann ein neues Bild angezeigt wird, wenn ein neues auch ankommt. Der TFT arbeitet sowieso nach Hold-Type Prinzip. Für die Übertragung sollte das auch keine Rolle spielen, wobei selbstverständlich bei Stellen, wo die GraKa sehr viele FPS schafft, sie nur so viel durch die Leitung pressen kann, wie der Monitor oder das Kabel zulässt. Da könnte man Minimalabstände festlegen zwischen den Frames.

Wo ist also das Problem? :confused:

stickedy
2007-10-26, 04:12:19
Wo ist also das Problem? :confused:
Der VGA- bzw. diverse VESA-Standard würd ich mal sagen...

Gast
2007-10-26, 08:47:39
Das Problem ist, daß bei einer vollständig asynchronen Bild-Refresh keinerlei Kontrolle über den Bildinhalt zu einem bestimmten Zeitpunkt mehr besteht, es gibt ja kein VSync mehr. Und jetzt denk mal nach, ob du damit etwas Sinnvolles auf dem Bildschirm zu sehen bekommst, z.B bei einer 3D-Anwendung, die mal so 2000 fps liefert.

Gast
2007-10-26, 10:16:09
Anwendung, die mal so 2000 fps liefert.
Wenn der Framebufferinhalt mehr als X mal pro Sekunde updatet werden soll (wobei X ein sinnvolles Maximum innerhalb des technisch machbaren darstellt, z.b. 100), dann versucht der Graphikchip nicht mehr alle Updates des Bildinhalts and das Display zu senden, sondern verhält sich so wie jetzt bei Vsync, sprich es gibt nur noch alle 1000/X Millisekunden ein Update für das Display.
Das X könnte man einfach per Software einstellen, je nachdem wieviel man braucht, natürlich innherhalb der Limits der Kabelverbindung und des Displays.

Der Hauptgrund warum dies nicht gemacht wird ist natürlich die Kompatibilität mit alter Hard- und Software, wo immer noch CRT-mässig erwartet wird das eine regelmässige Refreshrate existiert, selbst wenn keine Änderungen am Bild entstehen.

Gast
2007-10-26, 12:45:51
Faktisch handeln die Grafikkarte und der Monitor für die Auflösung also eine bestimmte Bildwiederholrate aus. Der Monitor kriegt dann in regelmäßigen Abständen ein Bild zugeschickt und zeigt dieses dann an.

eben nicht, es wird in regelmäßigen abständen (die durch die bildwiederholfrequenz festgelegt sind) 1 pixel gesendet (bzw. bei dual-link-dvi 2 pixel auf einmal)

ohne synchronisation hätte der monitor keinerlei information wo er dieses pixel darstellen soll.

dein ansatz wäre zwar möglich, allerdings mit heutiger technik nicht realisierbar.

viel sinnvoller wäre es einfach die bildwiederholfrequenz zu erhöhen, wobei wir natürlich bei richtig hohen auflösungen auch mit dual-link-dvi bandbreitenprobleme hätten, aber zumindest für "mainstream-monitore" wäre das durchaus denkbar.

Coda
2007-10-26, 13:36:28
Die Frage ist: Was wäre denn der Vorteil?

Neomi
2007-10-26, 15:11:28
Die Frage ist: Was wäre denn der Vorteil?

Der Vorteil wäre: kein zusätzlicher Leistungsverlust durch VSync, trotzdem kein Tearing.

Momentan hat man, wenn der TFT 60 Hz hergibt, die GPU aber nur 50 fps, entweder nur 30 fps dank VSync oder Tearing mangels VSync. Mit Triple Buffering etwas mehr, aber immer noch keine 50 fps. Würde VSync bedeuten, daß das schnellere Gerät auf das langsamere wartet (also der TFT erst dann ein Bild entgegennimmt, wenn es ein neues gibt) statt immer die GPU auf den (in dem Fall schnelleren) Monitor, dann hätte man immer das, was die GPU hergibt bis maximal 60 fps, aber ganz ohne Tearing. Schlecht ist die Idee sicherlich nicht.

RaumKraehe
2007-10-26, 15:28:46
Beim lesen dieses Beitrages (ganz letzter Absatz reicht):
http://www.forum-3dcenter.org/vbulletin/showpost.php?p=5967788&postcount=20
viel es mir wie Schuppen von den Augen.

Als wir noch die CRTs hatten, da hatte eine stetige Bildwiederholrate noch ihren Zweck. Das ist klar, da muss man denke ich nicht ins Detail gehen. Aber wie sieht es bei TFTs und digitaler Ansteuerung aus? Warum muss man einen TFT regelmäßig füttern? Es gibt doch gar keinen physikalischen Vorgang mehr, an den die Bildwiederholrate gekoppelt sein sollte.

Faktisch handeln die Grafikkarte und der Monitor für die Auflösung also eine bestimmte Bildwiederholrate aus. Der Monitor kriegt dann in regelmäßigen Abständen ein Bild zugeschickt und zeigt dieses dann an. Ich sehe jetzt überhaupt nichts, was dagegen sprechen würde, wenn man keine Bildwiederholrate von vornherein festlegen würde und einfach nur dann ein neues Bild angezeigt wird, wenn ein neues auch ankommt. Der TFT arbeitet sowieso nach Hold-Type Prinzip. Für die Übertragung sollte das auch keine Rolle spielen, wobei selbstverständlich bei Stellen, wo die GraKa sehr viele FPS schafft, sie nur so viel durch die Leitung pressen kann, wie der Monitor oder das Kabel zulässt. Da könnte man Minimalabstände festlegen zwischen den Frames.

Wo ist also das Problem? :confused:

Ich verstehe nun nicht was dir da wie Schuppen von den Augen fällt aber im Prinzip wird das schon genau so gemacht.

Trap
2007-10-26, 15:31:49
Die Frage ist: Was wäre denn der Vorteil?
Man kann Filme ohne Ruckeln abspielen, egal mit welcher Bildrate sie gespeichert sind.

Mstrmnd
2007-10-26, 16:15:25
Ich verstehe nun nicht was dir da wie Schuppen von den Augen fällt aber im Prinzip wird das schon genau so gemacht.
Hast Du die weiteren Antworten gelesen? :confused: Das wird momentan ganz bestimmt nicht genau so gemacht.

Der Vorteil wäre: kein zusätzlicher Leistungsverlust durch VSync, trotzdem kein Tearing.
[...]
Man kann Filme ohne Ruckeln abspielen, egal mit welcher Bildrate sie gespeichert sind.
Jenau. :smile:

eben nicht, es wird in regelmäßigen abständen (die durch die bildwiederholfrequenz festgelegt sind) 1 pixel gesendet (bzw. bei dual-link-dvi 2 pixel auf einmal)

ohne synchronisation hätte der monitor keinerlei information wo er dieses pixel darstellen soll.

dein ansatz wäre zwar möglich, allerdings mit heutiger technik nicht realisierbar.
Warum? Erstens könnte man es mit Netzwerktechnik vergleichen. Ethernet kommt auch schon in die Größenordnungen der Übertragungsgeschwindigkeiten und das mit viel längeren Kabeln. Und da wird ja in Paketen gesendet.
Zweitens wollen wir ja kein Tearing, also wird das Bild dann auf den Weg geschickt, wenn es fertig ist. Zwar weiß der Monitor nicht, wann das Bild bzw. die Pixel dafür kommen, aber er kennt die vorher eingestellte Auflösung und weiß, welcher Pixel wo hingehört, weil ein Bild nun mal aus einer bestimmten Anzahl aus Pixeln besteht.

viel sinnvoller wäre es einfach die bildwiederholfrequenz zu erhöhen, wobei wir natürlich bei richtig hohen auflösungen auch mit dual-link-dvi bandbreitenprobleme hätten, aber zumindest für "mainstream-monitore" wäre das durchaus denkbar.
Das wäre die Lösung mit dem Holzhammer. Zwar geht es in die Richtung und es wäre besser, als gar nichts, aber die intelligentere weil effizientere Lösung wäre die hier dargestellte dynamische Frames-Versendung.

Der Hauptgrund warum dies nicht gemacht wird ist natürlich die Kompatibilität mit alter Hard- und Software, wo immer noch CRT-mässig erwartet wird das eine regelmässige Refreshrate existiert, selbst wenn keine Änderungen am Bild entstehen.
Traurig. Würde es denn wenigstens mit dem kommenden DisplayPort gehen? Der soll ja ohnehin flexibler sein. Vielleicht wäre das sogar etwas, was man rein auf Treiberebene erreichen könnte! So könnte ich mir das zumindest vorstellen.

Gast
2007-10-26, 17:10:26
Warum? Erstens könnte man es mit Netzwerktechnik vergleichen. Ethernet kommt auch schon in die Größenordnungen der Übertragungsgeschwindigkeiten und das mit viel längeren Kabeln.


weil DVI eben nicht für solche zwecke spezifiziert wurde, ich sage ja nicht dass es unmöglich wäre sowas umzusetzen, mit aktueller technik aber natürlich schon.
DVI wurde auch nicht nur für TFT-monitore sondern auch für CRTs entwickelt, da wäre die kompatibilität nur mehr schwer einzuhalten.



Das wäre die Lösung mit dem Holzhammer. Zwar geht es in die Richtung und es wäre besser, als gar nichts, aber die intelligentere weil effizientere Lösung wäre die hier dargestellte dynamische Frames-Versendung.

umgekehrt, deine methode wäre der holzhammer. du willst eine schnittstelle die praktisch in der zeit 0 erlaubt ein komplettes bild zu senden und dafür zwischendurch komplett brachliegt,
die schnittstelle müsste also eine extrem schnelle übertragung ermöglichen, die dann den großteil der zeit garnicht genutzt wird, also eine ziemliche verschwendung, abgesehen davon dass du eine so schnelle verbindung erstmal entwickeln müsstest.

Trap
2007-10-26, 17:33:57
Die einzige echte Änderung des Protokolls die dafür nötig ist, ist Leerlaufzeiten nach dem Übertragen eines Frames zu erlauben. Sonst kann man alles so lassen.

An den Endgeräten muss man allerdings noch einiges mehr ändern.

Mstrmnd
2007-10-26, 17:34:26
umgekehrt, deine methode wäre der holzhammer. du willst eine schnittstelle die praktisch in der zeit 0 erlaubt ein komplettes bild zu senden und dafür zwischendurch komplett brachliegt,
die schnittstelle müsste also eine extrem schnelle übertragung ermöglichen, die dann den großteil der zeit garnicht genutzt wird, also eine ziemliche verschwendung, abgesehen davon dass du eine so schnelle verbindung erstmal entwickeln müsstest.
Nein, das hast Du falsch verstanden.

Da wir ja kein Tearing wollen, nehmen wir z.B. VSync und Double Buffer bei 60Hz. Das bedeutet, die Karte fängt bei t=0 an zu rechnen und braucht für einen Frame 20ms. Das entspricht theoretisch 50 FPS. Leider erwartet der Monitor den ersten Frame bei 16,7ms und die Karte ist noch nicht fertig, also kriegt der Monitor erst mal das vorherige Bild nochmal. Um 20ms ist die Karte fertig, darf aber nicht abschicken, weil der Monitor das nächste Bild wiederum erst bei 33,3ms annimmt. Die Karte wartet. Wie Du siehst, eine ziemliche Verschwendung. Am Ende kommen nur 30 FPS raus.

Bei TP wird die Karte das Bild um 20ms fertig haben und trotzdem bis 33,3ms warten müssen, bis sie abschicken darf. Allerdings fängt sie trotzdem schon um 20ms damit an das nächste Bild zu rendern, einfach in einen zusätzlichen Buffer. Deswegen wartet die Karte zwar nicht mehr und es verpufft keine Leistung, im Gegenteil, es wird sogar zusätzlich mehr VRAM gebraucht, aber dafür hast Du Lag. Du siehst bei 33,3ms ein veraltetes Bild, da es ja noch von 20ms stammt. Das ist so, als hättest Du einen zusätzlichen Ping von 13 und bei schnellen Shootern will man das ja auch nicht.

Der Gedanke hier ist lediglich, dass die Karte dann schickt, wenn sie fertig ist. Der Monitor passt sich dem automatisch an. Das hieße hier einfach 50 FPS bei 50 "Hz". Trotzdem muss die Karte natürlich wissen, mit welcher Geschwindigkeit der Monitor ein neues Bild aufbauen kann. Wenn der Monitor nur 60 Hz schafft, dann wird diese Technik auch nichts daran ändern. Die Grafikkarte müsste dann natürlich auf den Monitor warten. Es dient nur der Verbesserung des Verhaltens bei weniger FPS. Wenn der Rechner 60 FPS und mehr kontinuierlich schafft, dann kann man jetzt schon bedenkenlos VSync einschalten und hat keine Probleme.

Saugbär
2007-10-29, 20:46:11
Was passiert jedoch, wenn man den Monitor zwischendurch ausschaltet, was soll danach angezeigt werden?
1.Das letzte im Monitor gespeicherte Frame? Ist wohl nicht mehr aktuell
2.Das letze in der Grafikkarte berechnete Frame? Wurde gerade verworfen, weil sich am vorhergehenden Bild nichts verändert hat.
3.Der Monitor schickt einen Request an die Grafikkarte, er möge doch bitte ein aktuelles Frame schicken

Oder was passiert wenn man einen Film nicht im Vollbildmodus abspielt und nebenher im Internet surft? Läuft der Browser dann auch mit 30Hz oder läuft der Film dann schneller oder interlaced?
Sei aber beruhigt, auf der "USS Enterprise 1701" haben sie aich Röhrenminitore

Mstrmnd
2007-10-30, 01:14:42
Was passiert jedoch, wenn man den Monitor zwischendurch ausschaltet, was soll danach angezeigt werden?
1.Das letzte im Monitor gespeicherte Frame? Ist wohl nicht mehr aktuell
2.Das letze in der Grafikkarte berechnete Frame? Wurde gerade verworfen, weil sich am vorhergehenden Bild nichts verändert hat.
3.Der Monitor schickt einen Request an die Grafikkarte, er möge doch bitte ein aktuelles Frame schicken
Nummer 3 finde ich am sinnvollsten.

Oder was passiert wenn man einen Film nicht im Vollbildmodus abspielt und nebenher im Internet surft? Läuft der Browser dann auch mit 30Hz oder läuft der Film dann schneller oder interlaced?
Wieso? Das spielt doch alles überhaupt keine Rolle. Es geht nur darum, wann der Buffer in den Monitor entleert werden darf. Bei einem Browserfenster und einem Filmfenster würde das Bild so oft wie möglich erneuert, dabei würde sich der Anteil im Filmfenster aber nicht verändern, so lang kein neuer Filmframe reinkommt. Alles in Ordnung also.