Ich implementiere einige Funktionen, die ich eine API implementieren muss warten auf D3D10 zu beenden Rendering.Basisch versuche ich, Synchronisierungszugriff auf eine gemeinsame Textur zu implementieren, so dass ich ein aktualisieren kann Textur nach d3d10 ist erfolgreich in der Lage, Backbuffer zu präsentieren. Wenn ich diese Black Box api anrufe, denke ich, dass dies erreicht werden kann, und ich denke, dass es ähnlich wie glfinish() sein wird.Ich habe gelesen, dass wir ID3D10Query-Abfragen für die Implementierung des Synchronisierungszugriffs verwenden können.Implement API zum Warten auf d3d10 Befehle zu beenden
D3D10_QUERY_DESC queryDesc;
... // Fill out queryDesc structure
ID3D10Query * pQuery;
pDevice->CreateQuery(&queryDesc, &pQuery);
pQuery->Begin();
... // Issue graphis commands, do whatever
pQuery->End();
UINT64 queryData; // This data type is different depending on the query type
while(S_OK != pQuery->GetData(&queryData, sizeof(UINT64), 0))
{
}
sollte ich einen Dummy-Befehl zwischen Anfang und Ende dieses setzen? da ich diese Funktionalität als öffentliche API etwas wie waitingforgraphiscompletion
enthüllen wollen was sollte ein Dummy-Befehl hier sein?
danke das macht perfekten Sinn für mich. Ich habe ein oder zwei Fragen dazu. Wie unterscheidet sich glfinish von glFenceSync gefolgt von einem glClientWaitSync? Was D3D10 betrifft, bedeutet das nur, dass ich nur das Ende von ID3D10Query aufrufen muss (das bedeutet, kein Beginn) und es wird auf den gesamten Befehl warten, um auf dem Gerät ausgeführt zu werden, von dem ID3D10Query erstellt wurde? –
glFinish wartet auf den Abschluss aller OpenGL-Operationen, einschließlich des Schreibens in den Framebuffer. glClientWaitSync garantiert dies nicht, es garantiert nur, dass alle GL-Befehle ausgegeben werden, bevor glFenceSync beendet wurde. Dies ist im Allgemeinen nicht erforderlich, wenn Sie den Zugriff auf eine bestimmte Textur synchronisieren möchten, wie Sie wissen sollten, wenn Sie mit Ihrem eigenen Rendering-Code lesen/schreiben. – MuertoExcobito
Hmm, danke –