Grestorn
2005-09-24, 14:28:32
In letzter Zeit gab es einige Berichte von Problemen von nHancer mit bestimmten Spielen, die entweder nicht laufen oder eine deutlich geringere Framerate aufweisen, wenn nHancer läuft.
Das hat mich zunächst sehr überrascht, da absolut nichts im Code ist, was dies verursachen könnte.
Nach einigen Untersuchungen bin ich darauf gekommen, das lediglich OpenGL Spiele betroffen sind. Und dass das Problem nichts mit nHancer zu tun hat, sondern ein allgemeines .NET Problem zu sein scheint.
Das Phänomen lässt sich wie folgt nachstellen (auf einer 7800GTX mit 78.03):
Sicherstellen, dass kein .NET Programm läuft und dann in Doom 3 "timedemo demo1 usecache" in der Konsole eingeben. Den Wert aufschreiben.
Das Developer Studio .NET 2003 von Microsoft öffnen (Die 2005 Beta zeigt das selbe Verhalten).
Ein neues Visual C# Projekt anlegen und zwar vom Typ "Windows Application".
Während das Studio mit dem angelegten Projekt offen ist, Doom 3 erneut starten und das selbe timedemo laufen lassen. Der Wert sollte deutlich unter dem vorher gemessen liegen
Das Studio beenden
Ein weiteres Doom3 Timedemo ergibt wieder den ursprünglichen Wert
Bemerkenswerte Details:
Das Öffnen des Developer Studios alleine behindert Doom3 nicht. Es muss zusätzlich ein beliebiges VisualC# Windows Application Projekt geöffnet werden.
Wenn ein solches Projekt einmal offen war, dann muss das Studio komplett geschlossen werden, um den Normalzustand wiederherzustellen.
Auch ohne Studio behindert eine C# .NET Applikation i.d.R. OpenGL, allerdings ist eine vollkommen leere. Ich habe noch nicht herausgefunden, warum z.B. nHancer behindert, eine vollkommen leere Applikation aber nicht.
Mich würde nun brennend interessieren, ob dieses Phänomen von den Grafikkarten-Treibern abhängt. In diesem Zusammenhang wäre es toll, wenn mal ein ATI Besitzer, der Zugang zum Developer Studio hat (die 2005 Beta kriegt man für $10), den oben beschriebenen Ablauf nachvollziehen könnte, und das Ergebnis hier posten würde. Selbiges gilt auch für nVidia Anwender, die eine deutlich ältere Treiberversion verwenden.
Da ATI selbst ja ein .NET Applet verwendet, kann ich mir nicht vorstellen, dass die ATI-Treiber das selbe Phänomen zeigen. Aber ausprobieren sollte man es auf jeden Fall.
Wichtig! Auf jeden Fall vor dem Test alle anderen .NET Applikationen beenden! Auch das CCC!
Auf jeden Fall muss hier etwas getan werden. Im Moment verhindert das Problem "nur" den dauerhaften Einsatz von nHancer (man muss es immer beenden bevor man ein OpenGL Spiel startet) aber wenn in Zukunft immer mehr .NET für Applikationen eingesetzt werden sollte, dann wird wohl jeder betroffen sein...
Das hat mich zunächst sehr überrascht, da absolut nichts im Code ist, was dies verursachen könnte.
Nach einigen Untersuchungen bin ich darauf gekommen, das lediglich OpenGL Spiele betroffen sind. Und dass das Problem nichts mit nHancer zu tun hat, sondern ein allgemeines .NET Problem zu sein scheint.
Das Phänomen lässt sich wie folgt nachstellen (auf einer 7800GTX mit 78.03):
Sicherstellen, dass kein .NET Programm läuft und dann in Doom 3 "timedemo demo1 usecache" in der Konsole eingeben. Den Wert aufschreiben.
Das Developer Studio .NET 2003 von Microsoft öffnen (Die 2005 Beta zeigt das selbe Verhalten).
Ein neues Visual C# Projekt anlegen und zwar vom Typ "Windows Application".
Während das Studio mit dem angelegten Projekt offen ist, Doom 3 erneut starten und das selbe timedemo laufen lassen. Der Wert sollte deutlich unter dem vorher gemessen liegen
Das Studio beenden
Ein weiteres Doom3 Timedemo ergibt wieder den ursprünglichen Wert
Bemerkenswerte Details:
Das Öffnen des Developer Studios alleine behindert Doom3 nicht. Es muss zusätzlich ein beliebiges VisualC# Windows Application Projekt geöffnet werden.
Wenn ein solches Projekt einmal offen war, dann muss das Studio komplett geschlossen werden, um den Normalzustand wiederherzustellen.
Auch ohne Studio behindert eine C# .NET Applikation i.d.R. OpenGL, allerdings ist eine vollkommen leere. Ich habe noch nicht herausgefunden, warum z.B. nHancer behindert, eine vollkommen leere Applikation aber nicht.
Mich würde nun brennend interessieren, ob dieses Phänomen von den Grafikkarten-Treibern abhängt. In diesem Zusammenhang wäre es toll, wenn mal ein ATI Besitzer, der Zugang zum Developer Studio hat (die 2005 Beta kriegt man für $10), den oben beschriebenen Ablauf nachvollziehen könnte, und das Ergebnis hier posten würde. Selbiges gilt auch für nVidia Anwender, die eine deutlich ältere Treiberversion verwenden.
Da ATI selbst ja ein .NET Applet verwendet, kann ich mir nicht vorstellen, dass die ATI-Treiber das selbe Phänomen zeigen. Aber ausprobieren sollte man es auf jeden Fall.
Wichtig! Auf jeden Fall vor dem Test alle anderen .NET Applikationen beenden! Auch das CCC!
Auf jeden Fall muss hier etwas getan werden. Im Moment verhindert das Problem "nur" den dauerhaften Einsatz von nHancer (man muss es immer beenden bevor man ein OpenGL Spiel startet) aber wenn in Zukunft immer mehr .NET für Applikationen eingesetzt werden sollte, dann wird wohl jeder betroffen sein...