|
|
|
|
Hallo Leutz!
Ich hab mir vor einiger Zeit ne FX5600 gekauft.. Hab mich dann gewundert warum ich dort nur 60fps hab.. Hab hier dann mal rumgelesen und bin darauf gestoßen, dass man doch mal den Vertical Sync ausmachen solle..
Hab das gemacht.. Die FPS Zahl stimmt nun.. Aber dafür hakt das in allen Games immer mal.. Und das ist richtig schlimm.. Besonders bei CS ist das immer wenn man z.B. um ne Ecke geht.. Also anscheinend wenn der immer lädt..
Wo könnte das Problem sein und was kann ich tun..
Danke für eure Hilfe!
|
|
|
|
|
|
|
genau deswegen gibt es vertical sync, um dieses "hacken" zu verhindern, manchmal kann man das aus machen wenn graka+monitor+deine augen zusammen spielen und du kein störendes flackern feststellen kannst.
ansonsten macht man es nur aus wenn man
a) bencht
b) durch vertical-sync provozierte frameeinbrüche feststellen muss und es nicht anders geht
was vsync macht:
sorgt dafür das deine graka max. nur so viele bilder erstellt wie den monitor in der jeweiligen auflösung anzeigen kann (sozusagen höher bildquali), bricht jedoch die frame-zahl ein, so kann es zu einem domino-effekt führen und du hast schlagartig nur halb so viel fps wie der monitor kann.
vsync behebt übrigens nicht den 60hz "bug" (ich kann bis heute diese "sicherheitsfunktion" in windows nicht verstehen, erst recht nicht seit dem es moderne crts und tfts gibt)!
ps: immer monitor-treiber installieren, sonst weiß der pc überhaupt nicht wie viel dein monitor macht und fährt den selibgen immer nur mit 60hz an
|
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von hoschi am 18.07.2004 17:55]
|
|
|
|
|
|
| Zitat von hoschi
vsync behebt übrigens nicht den 60hz "bug" (ich kann bis heute diese "sicherheitsfunktion" in windows nicht verstehen, erst recht nicht seit dem es moderne crts und tfts gibt)!
| |
was für eine Sicherheitsfunktion ? Das Problem war/ist, dass die Frequenzsteuerung von DirectX übernommen wird und die Windows-Einstellungen nicht greifen. 60 Hertz sind da einfach Standard, da das jeder Monitor auf jeder darauf darstellbaren Auflösung beherrschen sollte. Die aktuellen Grafiktreiber bieten aber auch Möglichkeiten, das für DirectX-Anwendungen zu ändern.
|
|
|
|
|
|
|
Soderle..
Ich hab mir mal meine Monitortreiber geholt, installiert und sie funzen.. Hab dann Vertical Sync wieder angeworfen und mal getestet..
Es ist nicht besser geworden... Nur hakt das nun auch wenn der Vertical Sync aktiviert ist..
Hab daraufhin mal die Treiber von der Graka runtergeworfen und neu runtergeladen und installiert um die Standarteinstellungen wiederherzustellen..
Aber ohne Erfolg..
Und was nu? Das regt mich auf mim haken -_-
|
|
|
|
|
|
|
| Zitat von GarlandGreene
| Zitat von hoschi
vsync behebt übrigens nicht den 60hz "bug" (ich kann bis heute diese "sicherheitsfunktion" in windows nicht verstehen, erst recht nicht seit dem es moderne crts und tfts gibt)!
| |
was für eine Sicherheitsfunktion ? Das Problem war/ist, dass die Frequenzsteuerung von DirectX übernommen wird und die Windows-Einstellungen nicht greifen. 60 Hertz sind da einfach Standard, da das jeder Monitor auf jeder darauf darstellbaren Auflösung beherrschen sollte. Die aktuellen Grafiktreiber bieten aber auch Möglichkeiten, das für DirectX-Anwendungen zu ändern. | |
das stimmt, aber soweit ich weiß handhabt das directx genau so weil das mehr "sicherheit" bieten soll, heute mehr wie damals einfach nur nervig.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von hoschi am 18.07.2004 20:34]
|
|
|
|
|
|
nee, das ist mehr ein kleines Designproblem. Denn DX könnte einfach die Windows-Einstellungen übernehmen und gut ist. Die sind ja schließlich aktiv und damit vom Benutzer so vorgegeben. Nur ist das damals nicht vorgesehen gewesen.
|
|
|
|
|
|
|
auch recht, aber dann denke ich mir doch:
ist ms eigentlich wirklich alles scheiß egal?
directx soll ja alles einfacher machen, irgendwie ist hier genau das gegenteil der fall
<edit> nein, doch, doch, so bleibt der post jetzt
|
[Dieser Beitrag wurde 4 mal editiert; zum letzten Mal von hoschi am 18.07.2004 20:39]
|
|
|
|
|
|
MS ist das nicht zwangsläufig scheissegal, es ist nur ein eher kleines Problem, das nur eine kleine Gruppe von Nutzern überhaupt bemerkt und damit von niederer Priorität. Ich will hoffen, dass die nach dem SP2 erstmal ein bisschen Ruhe in ihren Sauhaufen aka Windows reinbringen.
|
|
|
|
|
|
|
sauhaufen triffts, ich frage mich nur ob so etwas von der arbeitseinstellung einzelner programmierer kommt oder von "oben"
für mich ist das immo so, als ob in einem kreditvertrag einmal "Euro 1.200" steht, und ein anderes mal "1,200 €"
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von hoschi am 18.07.2004 20:52]
|
|
|
|
|
|
einzelne Programmierer können da gar nichts ausrichten. Die arbeiten nach ihren Vorgaben.
|
|
|
|
|
|
|
hmmm,
bei microsoft werden wohl die mitarbeit inzwischen ausgepeitscht wenn sie verbesserungsvorschläge machen
|
|
|
|
|
|
|
| Zitat von GarlandGreene
nee, das ist mehr ein kleines Designproblem. Denn DX könnte einfach die Windows-Einstellungen übernehmen und gut ist. Die sind ja schließlich aktiv und damit vom Benutzer so vorgegeben. Nur ist das damals nicht vorgesehen gewesen. | |
*hust*
--
IDirect3D9::CreateDevice Method
Creates a device to represent the display adapter.
Syntax
HRESULT CreateDevice(
UINT Adapter,
D3DDEVTYPE DeviceType,
HWND hFocusWindow,
DWORD BehaviorFlags,
D3DPRESENT_PARAMETERS *pPresentationParameters,
IDirect3DDevice9** ppReturnedDeviceInterface
);
--
D3DPRESENT_PARAMETERS Structure
Describes the presentation parameters.
Syntax
typedef struct _D3DPRESENT_PARAMETERS_ {
UINT BackBufferWidth, BackBufferHeight;
D3DFORMAT BackBufferFormat;
UINT BackBufferCount;
D3DMULTISAMPLE_TYPE MultiSampleType;
DWORD MultiSampleQuality;
D3DSWAPEFFECT SwapEffect;
HWND hDeviceWindow;
BOOL Windowed;
BOOL EnableAutoDepthStencil;
D3DFORMAT AutoDepthStencilFormat;
DWORD Flags;
UINT FullScreen_RefreshRateInHz;
UINT PresentationInterval;
} D3DPRESENT_PARAMETERS;
--
FullScreen_RefreshRateInHz
The rate at which the display adapter refreshes the screen. The value depends on the mode in which the application is running:
* For windowed mode, the refresh rate must be 0.
* For full-screen mode, the refresh rate is one of the refresh rates returned by IDirect3D9::EnumAdapterModes.
Das war immer so, ist so und wird auch immer so bleiben.
|
|
|
|
|
|
|
ähh, gibts das für dumme?
*peinlich*
ok, es wird einem erklärt wie ein enstprechendes device aufgebaut wird, parameter etc.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von hoschi am 18.07.2004 22:58]
|
|
|
|
|
|
| Zitat von hoschi
ähh, gibts das für dumme?
*peinlich* | |
Im Grunde ganz einfach. Ich drück es mal laienhaft aus:
Wenn du eine DirectX-Anwendung programmierst, dann musst du ein sogenanntes "Device" (IDirect3DDevice9* für DX9) erstellen. Wie das Device konkret auszusehen hat (FSAA-Modus, Backbuffer format, etc wird über die D3DPRESENT_PARAMETERS structure eingestellt. Und in dieser Struct kann man auch einstellen, mit wieviel Hz das Device im Fullscreen-Modus laufen soll. Dies wird über das Flag FullScreen_RefreshRateInHz eingestellt.
Das dumme ist: Viele Entwickler setzen da einfach D3DPRESENT_RATE_DEFAULT als Wert ein, was DX dazu veranlasst den Standardwert des Monitors zu nehmen, nämlich 60Hz.
Da kannste eigentlich jeden beliebigen Wert eintragen, z.B. auch "72", "85" etc. Da man das Device allerdings nicht auf gut Glück erstellen sollte, sollte man vorher EnumAdapterModes aufrufen um herauszufinden, mit wieviel Hz (und in welcher Auflösung) man jeden verfügbaren Adapter ansteuern kann.
Der Code dafür besteht aus nur einigen wenigen Zeilen Code - warum sich viele große Spielehersteller trotzdem nicht die Mühe machen ist mir allerdings ein Rätsel.
Im Grunde sieht die Kette der Befehle so aus:
Direct3DCreate9 -> IDirect3D9::EnumAdapterModes() -> D3DPRESENT_PARAMTERS struct ausfüllen -> IDirect3D9::CreateDevice()
Insofern hat unser Garlandchen Unrecht. Es ist kein Designproblem von DirectX, sondern ein Designproblem der Spielehersteller
Gruß
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von FoxHunter am 18.07.2004 23:24]
|
|
|
|
|
|
thx, kapiert
|
|
|
|
|
|
|
Naja nu das ist ja alles gut und schön aber helfen tut mir das herzlich wenig oder hab ich was verpeilt
Ich hab nun wie oben gesagt mal den Monitortreiber installiert und Vertical Sync wieder angeworfen.. Nur ist das Haken damit nicht weg.. Es ist da, aber nicht mehr so stark.. Aber nerven tuts trotzdem.. Ich hab mal geschaut und wie man in den vorhigen Posts auch lesen kann läuft der Monitor in den Games auch nur auf 60Hz..
Als Beispiel GTa3.. Es hakt wenn ich um Kurven fahre oder mich mit der Spielfigur einmal um 180° drehe, etc.
Normal ist das nicht
Was kann ich nun noch machen? Es ist nicht nur in Gta3 und der PC sollte das hinbekommen.. Der Prozi sollte es nicht sein (XP 2000+) .. Außerdem hat es vorher ja auch nicht gehakt mit der alten Graka Und das war ne Voodoo 5 -_-
Was kann das also noch sein? Eigentlich können das auch keine Tasks auf dem Rechner sein, denn ich hab das Problem schon länger.. Seitdem hab ich zwischendrin auch schonmal wegen anderer Sachen formatiert und Windows neu installiert.. Seitdem hab ich nur das nötigste installiert, aber es hakt wie gesagt immernoch..
Also jemand noch ne Idee? Danke für die Hilfe!
|
|
|
|
|
|
|
| Zitat von RipdEaTh
...
Was kann das also noch sein? Eigentlich können das auch keine Tasks auf dem Rechner sein, denn ich hab das Problem schon länger.. Seitdem hab ich zwischendrin auch schonmal wegen anderer Sachen formatiert und Windows neu installiert.. Seitdem hab ich nur das nötigste installiert, aber es hakt wie gesagt immernoch..
Also jemand noch ne Idee? Danke für die Hilfe! | |
Chipsatztreiber nicht vergessen?
Ausserdem kannst du die Hz für jede Auflösung in deinem GraKatreiber festlegen.
|
|
|
|
|
|
|
eventuell liegt es an der "systemwiederherstellung" -> rechts klick auf arbeitsplatz - eigenschaften - und dort deaktivieren.
|
|
|
|
|
|
|
| Zitat von [SFoR]-RedEagle
| Zitat von GarlandGreene
nee, das ist mehr ein kleines Designproblem. Denn DX könnte einfach die Windows-Einstellungen übernehmen und gut ist. Die sind ja schließlich aktiv und damit vom Benutzer so vorgegeben. Nur ist das damals nicht vorgesehen gewesen. | |
*hust*
| |
danke für die Info, wusste ich nicht.
|
|
|
|
|
|
|
Systemwiederherstellung ist nicht aktiviert..
Ich hab nunmal die Hz Zahl bei den Auflösungen die ich in Windows und im Spiel benutze überschreiben lassen mit 75Hz und nun kann ich eigentlich kein wirkliches Ruckeln mehr vernehmen..
Aber warum hat das vorher nicht gehakt? Da hab ich auch alles auf Standart gelassen
|
|
|
|
|
|
|
mir kamm gerade eine zweite frage, warum ist opengl, wenn auch davon betroffen, wenn auch weniger (die ati treiber sollen immer noch ihre probleme bei der aufhebung unter dx haben, unter opengl keine)
|
|
|
|
|
|
Thema: Grafikkarte Vertical Sync aus -> Hakt total |