Ich versuche, nach Szenarien zu suchen, in denen Sync-Objekte in OpenGL verwendet werden können. Mein Verständnis ist, dass ein Sync-Objekt, das einmal in den GL-Befehlsstrom (unter Verwendung von glFenceSync()) gesetzt wird, signalisiert wird, nachdem alle GL-Befehle ausgeführt und realisiert wurden. Wenn die Synchronisationsobjekte Synchronisationselemente sind, warum können wir sie dann nicht MANUELL signalisieren? Wo genau kann diese Funktionalität dem GL-Programmierer helfen?Verwenden von Zaunsynchronisationsobjekte in OpenGL
Ist das folgende Szenario korrekt?
Thread 1 :
Load model
Draw()
glFenceSync()
Thread 2 :
glWaitSync();
ReadPixels
Use data for subsequent operation.
Bedeutet dies, dass ich nicht in Thread 2, es sei denn glFenceSync() Thread 1 genannt wird, starten kann?
"* Bedeutet das, dass ich Thread 2 nicht starten kann, wenn nicht glFenceSync() in Thread 1 aufgerufen wird? *" Nun, bis Sie 'glFenceSync' aufrufen, ist das Sync-Objekt noch nicht vorhanden. Sie können nicht auf etwas warten, das nicht existiert. –