eeinträchtigt mehrere isolierte OpenGL-Kontexte die Leistun

Mein Kollege und ich arbeiten an einer Video-Rendering-Engine.

Die ganze Idee besteht darin, eine Konfigurationsdatei zu analysieren und jeden Frame in ein Offscreen-FBO zu rendern und dann die Frame-Rendering-Ergebnisse mit glReadPixel für die Videokodierung abzurufen.

Wir haben versucht, die Rendergeschwindigkeit zu optimieren, indem wir zwei Threads mit jeweils einem unabhängigen OpenGL-Kontext erstellt haben. Ein Thread rendert ungerade Frames und der andere Thread rendert gerade Frames. Die beiden Threads teilen keine gl-Ressourcen.

Die Ergebnisse sind ziemlich verwirrend. Auf meinem Computer hat sich die Rendering-Geschwindigkeit im Vergleich zu unserer Single-Thread-Implementierung erhöht, während auf dem Computer meines Partners die gesamte Geschwindigkeit gesunken ist.

Ich frage mich, wie sich die Menge der OpenGL-Kontexte auf die Gesamtleistung auswirkt. Ist es wirklich eine gute Idee, mehrere OpenGL-Threads zu erstellen, wenn sie nichts gemeinsam haben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage