Ich habe eine gemeinsame DX11 Textur, die mit 2 verschiedenen Geräten in separaten Threads verwendet wird.DX11 Aktualisieren von gemeinsamen Texturen
Thread1 (Betriebs am Gerät 1): jeden Rahmen genannt und aktualisiert die gemeinsam genutzte Textur
Thread2 (auf DEVICE2 Betrieb): Verbraucht die gemeinsame Textur, die durch sie auf eine andere Textur zu kopieren. Frequenz ist viel kleiner als Thread 1.
Nach MSDN "Wenn eine gemeinsame Textur auf einem Gerät aktualisiert wird ID3D11DeviceContext :: Flush muss auf diesem Gerät aufgerufen werden."
Allerdings ist das Aufrufen von flush auf thread1 jedes Frame sehr teuer und wir sehen einen massiven Leistungseinbruch. Wir können Gerät 1 nicht auf Thread 2 spülen, da ein Gerätekontext nicht Thread-sicher ist.
Gibt es eine Möglichkeit, die gemeinsame Texturaktualisierung effizient zu machen, wenn Threads 2 sie benötigen?
Danke für Ihre Hilfe! MSDN ist nicht sehr hilfreich beim Umgang mit geteilten Texturen. betonten Text
Leider funktionieren getastete Mutexe für mich nicht, da es keine definierte Reihenfolge gibt, in der der Thread zuerst ausgeführt werden soll. Beide Threads können in zufälligen Intervallen aufgerufen werden, was verschlüsselte Mutexe für dieses Szenario ungeeignet macht – Sid