~! Ultimate GTAIV Performance Fix !~

blye4u

Schraubenverwechsler(in)
Hi,

Hab diesen trick im GTAForum.com gefunden und möchte dass auch andere in den genuss kommen.
der originale post ist von MonkeyMHZ und ich muss sagen das ich durch diesen tweak endlich ein optisch gelungenes spiel zogge obwohl ich nur 320mb vram besitze high res high tex. und keine lade lags oder popups.

sry das ich zu faul zum übersetzen bin aber wofür gibt es :

Google Übersetzer


The Idea:

You've heard this rant a million times, GTAIV was future proofed all reflections and shadows are scaled with the resolution. A stupid yet seemingly unfix-able problem that makes the game a mess. Playing a game in 1024x768 or lower is not acceptable. If I wanted to do that I would pull out my P2/P3 with its 32/64mb graphic card. From looking at GTAIV, it has a lot of new technology but nothing that should struggle to run on 8800's or even 8600's. Its that resolution scaling, im sure of it!.

http://www.postimage.org/image.php?v=PqZPfFS

The Plan:

There must be a way to correct this mess. Lets look at our checklist.

- Configs/Settings Profiles in game directory? /fail.
- Will R*'s patch will add more options in? /fail.

Not long ago I figured out you can run in windowed mode in 800x600 and then stretch the window larger and it gets around R*'s quality scaling that would increase the reflection maps.etc that would lag the game and make objects/textures disappear and horrid pop-ins. It made the game look good because you weren't dealing with such a low resolution and the game played extremely well.

I wanted to look into this and see if you can achieve the same thing without stretched the window manually every time.

The Support:

After browsing the net, I noticed others used commandline.txt to set the size of their window, and some people have achieved resolutions over their memory limit without using -norestrictions and only using the resolution from the command lines. This instantly helped me find the answer I wanted.

How To Do It:

Theory:
Now my theory was that, if you have a memory limit on, and you enter a resolution in the command line that is unable to be achieved with that memory limit, it will still put you in that resolution, but the quality scaling will not be implemented. Therefore no disappearing objects/textures, no long or noticeable pop-in's, and less/no lag.

The trick is implementing the higher resolutions with you preferred graphic settings, by limiting your memory to just barely include the options you want, and then you force the resolution.

Steps:

1. Get rid of -nomemrestrict or any current commandlines you have. Run the game and let it die. When you run the game, go to the graphic options, turn your resolution to 800x600 or 1024x768 or whatever you want the reflection maps/resolution based quality to be at, I did 800x600 mainly because it looks simular to the rest and will give you the most performance. Use the rest of your memory budget in draw distance.etc.

2. If you cannot acheive the graphical settings you want with your currently memory budget do this next step. If you can, then you can skip this step.

make commandline.txt or append -availablevidmem (multiplier):
This command works like this, say I have 256mb vram. -availablevidmem 2.0 would make it say I have 512mb vram, its a multiplier.

So for getting our settings as we want it lets make a budget of 512mb vram, so -availablevidmem 2.0.

Open GTAIV, set resolution in the ingame settings to 800x600, set rest of the options to whatever you want (be reasonable).

Now continue to the next step.

3. Now you have your game set as you want it, but in a f-ugly resoltion, but we will fix that. Next step is to trick GTAIV, even people with 512mb graphic cards or even 1gb, this is even useful for them.

One of my buddies with a 8800GTX loves this tweak because it allows him to get much higher frames with very little to no graphical loss.

So now lets say all our desired settings ingame @ 800x600, use 650Mb. Ok. But say were now using a 1GB card so it says 650/1024Mb. This is a problem now because if we force -height 1080 -width 1920. We will end up with our ingame options changing to 1920x1080 giving us way more slowdowns because R* starts using that dam scaling reflection maps.etc with resolution.

So what we need to do now is limit the memory GTAIV sees to exactly the amount to run our game in 800x600 (or whatever quality refection maps.etc you want) with our desired settings.

So lets go back to our dilemma, we have a 1GB graphic card and the game only takes up 650mb with the settings we want in 800x600.

We can figure this out by doing some simple math.
1GB Card (650mb desired settings): 650/1024 = 0.635 (its 0.634 but give a tiny bit extra, just like a couple megabytes).

So you would use -availablevidmem 0.635 that would make the game detect you only have 650mb ram which barely fits the features you want in 800x600.

So now once we have figured that out your commandline.txt or your shortcut appending should look like this (depending on what resolution you want/your vidmem.etc):

-height 1080 -width 1920 -availablevidmem 0.65

and maybe you add stuff like (-framelimit, or -noblank or whatever).

*BUT DO NOT USE ANY UN-RESTRICTION (this includes the nomemrestrict and norestrictions or anything like that)!

4. Now when we start up our game. We will be in our desired resolution, and when we look in the game options it will say 800x600, even though we are in a way higher resolution and all your settings will be how you want them and your memory budget will be exactly the right amount or similar like 650/650 or 742/746.etc

Funny thing here you wont be able to go back cuz it will detect your memory budget is to low and the game is forcing a higher res, so you might not be able to leave the options screen now, so alt tab, and close the game. If all your settings looked right and it said 800x600 but was clearly in a higher res. Then you did everything right, if not, go retry.

5. Now restart the game and play. Yay, good fps, cheated GTAIV to not up the reflection quality with the resolution.

Additional Speed:
If you happen to be running Vista x86/x64 and you have a directx10 capable graphic card. Do what elecg2 figured out. I tried creating empty/easy HLSL shaders and putting them in GTAIV to get rid of shadows and stuff but that didn't work.

However by doing what elecg2 tried, I got a huge performance increase,

Go to GTAIV folder, go into common, then shaders.

Backup everything in there <- !!!

Then copy the contents of win32_30_atidx10, and paste them into win32_30_nv8. Or just rename the folders, whatever makes you happy.

That gave me a significant performance boost and I have no graphical problems or abnormalities. Try it, if it causes you problems or decreased performance then just put it back to normal. With these steps you can get your game running beautifully in no time, or at least better than before.

Enjoy.
*Ill be adding screen shots tonight.


original post:

GTAForums.com -> ~! Ultimate GTAIV Performance Fix !~
 
Zuletzt bearbeitet:
BIG THANX !!!! :hail::hail:

Greez Mj@AMD

Wenn sich jetzt noch jemand die Zeit nimmt und das ordentlich ins deutsche überstzt, wärs perfect !
 
Zuletzt bearbeitet von einem Moderator:
lernt englisch :P
aber wie jetzt in den ersten paar zeilen gelesen hab, soll man das im fenstermodus auf 800x600 spielen und es stretchen... naja, ich les mal weiter.
btw @Threadersteller, schon probiert? funzt das?
 
Die Idee :

Ihr habt dieses Geschwalle bestimmt schon an die Millionen mal gehört, dass Gta4 zukunftssicher ist, alle Reflexionen und schatten im Verhältnis zur Auflösung stehen.
Ein dummes unlösbares Problem, dass das spiel zur Qual macht.
Ein spiel mit einer Auflösung von 1024x768 oder niedriger zu spielen kann man nicht dulden.
(blabla)
Es muss an der Auflösung liegen da bin ich mir sicher!

Der Plan:

Er hat es im Windows Fenster gestartet und dann gezogen und es lief wunderbar.
Er will also einen Weg finden, das ohne jedes Mal strecken zu machen.

Die Unterstützung : (unwichtig)

Wie man es macht:

Theorie:

Wenn man eine höhere Auflösung einstellt als man kann wird die angezeigt, aber die Qualität im Verhältnis zur Größe nicht übernommen.
Er will also seine Speicher genau so limitieren, dass er gerade so reicht, um die gewünschten Optionen zu beinhalten.

Schritte:

1. Erstmal die nonrestriction Befehle entfernen und andere Kommandozeilen die ihr vllt. habt
Dann eine Auflösung einstellen (kleiner als sonst), die aber noch den Ansprüchen entspricht.
Er selber wählt 800x600, da er damit einen guten Kompromiss zw. Aussehen und Performance hat.

2. Wenn ihr mit euren Grafikspeicher nicht die gewünschten Einstellungen wählen könnt folgt diesem Schritt, wenn nicht dann überspringt ihn

Macht die Kommandozeile : -availablevidmem (multiplier)
Das funktioniert so: angenommen wir haben 256 mb und geben ein :
-availablevidmem 2.0
Haben wir dann 512 mb

Öffnet dann gta 4 , setzt die Auflösung im spiel auf 800x600 und wählt eure gewünschten Einstellungen.

3. Nun habt ihr alles wie ihr wollt es sieht aber hässlich mit der Auflösung aus.
Sogar karten mit 512 mb oder 1 gig können davon profitieren

Angenommen wir haben 800x600 und unsere Einstellungen nutzen 650 mb.
Nun haben wir aber eine 1 gb karte und es zeigt an 650/1024.
Das ist ein Problem wenn man zb eine Auflösung von 1920x1080 haben will, da jz wieder die die reflection maps im Verhältnis zur Auflösung angepasst werden und sie somit die Leistung fressen.
Was wir jz tun müssen ist den Grafikspeicher für gta4 genau anzupassen.
Zurück zum Problem mit der 1 gig karte.
Dies kann durch einfache Rechenoperationen gelöst werden:
650/1024 = 0.635 (nehmt aber immer ein bissen mehr Speicher als ausgerechnet)

Also nehmt:

-availablevidmem 0.635

Und gta4 erkennt nur noch 650 mb VRAM statt 1024.

Euer commandline.txt sollte nun so aussehen:

-height 1080 -width 1920 -availablevidmem 0.65

Und andere Modifikationen
Außer nonrestriction Befehle!!!

4. Nun startet ihr das spiel und werdet sehen, dass 800x600 dasteht aber es in Wirklichkeit eine viel höhere Auflösung ist und auch steht und da bei der VRAM Nutzung: 650/650 obwohl ihr eine 1 gb karte habt.

Falls ihr dann nicht mehr aus dem Menü herauskommt weil das spiel einen zu niedrigen VRAM entdeckt und das spiel eine höhere Auflösung erzwingt, geht mit alt+tab raus und beendet das spiel manuell.
Wenn alle Einstellungen gut aussehen und ihr seht, dass es eine viel höhere Auflösung ist, als in gta 4 angezeigt habt ihr alles richtig gemacht.
Wenn nicht, versucht es einfach noch mal.

5. startet das spiel erneut und die Reflexionsqualität wurde nicht ins Verhältnis zur Auflösung gesetzt.


das mit dem zusätzlichen speed hab ich vom technischen her nicht verstanden also darauf verzichtet !

ich hoffe es hilft euch weiter ! werd das auch mal ausprobieren klingt logisch

have fun
mfg
 
ich hab ehrlich gesagt keine große lust das game im fenstermodus zu spielen (auch wenn ich nur den rand und meine taskleiste sehe) es macht ja doch irgendwie die atmo kaputt
 
also flüssiger liefs bei mir schon, nur hat mein pc irgendwann aufgehört texturen von der strasse zu laden und anschliessend hat sich wieder alles aufgehangen
 
das mit dem zusätzlichen speed hab ich vom technischen her nicht verstanden also darauf verzichtet !
Ich mach das eben ;)
Additional Speed: If you happen to be running Vista x86/x64 and you have a directx10 capable graphic card. Do what elecg2 figured out. I tried creating empty/easy HLSL shaders and putting them in GTAIV to get rid of shadows and stuff but that didn't work.
Wenn du es auf Vista x86/x64 spielst und eine DX10 karte hast dann versuch das was elecg2 herrausgefunden hat. [ Rest unwichtig]

However by doing what elecg2 tried, I got a huge performance increase,

Go to GTAIV folder, go into common, then shaders.

Backup everything in there <- !!!

Then copy the contents of win32_30_atidx10, and paste them into win32_30_nv8. Or just rename the folders, whatever makes you happy.
Wie auch immer bei befolgen des Ratschlages von elecg2 bekam ich einen riesen Perfomenz schub.
Geh in den GTA IV Ordner ->common dann shaders

Mach ein Backup von allem darin <-!!!

Dann kopiere den inhalt von win32_30_atidx10 in den win32_30_nv8 oder bennene die Ordner um was immer dich glücklich macht.
That gave me a significant performance boost and I have no graphical problems or abnormalities. Try it, if it causes you problems or decreased performance then just put it back to normal. With these steps you can get your game running beautifully in no time, or at least better than before.
Ich hatte einen deutlichen Performencboost und hatte keine Grafischen oder anderen schwierigkeiten. Versuches und wenn du Probleme hast spiel das Backup zurück. [bla bla bla ^^]
 
@ +Sammelbus+ Du bist mein Held, vielen Dank für die Überstzung :hail: !
Werde es gleich mal ausprobieren und natürlich berichten.

Greez Mj@AMD
 
he maschinendeutsch ^^ naja ich habs nun nich perfekt gemacht aber für 20 min ganz ok ^^

:D:D:D:D:D:D

mir fällt gerade ein ich hab das mit dem zusätzlichen speed nich übersetzt weil ich dachte elecg2 is ne spezielle systemkomponente xD

or neee :D
 
So, habe das Ganze mal ausprobiert und bin recht positiv überrascht (aber man kann es auf keinen Fall als Endlösung ansehen, da die Performance zwar steigt, aber immer noch nicht auf dem Level ist, wie sie sein sollte).

Ich gebe euch mal eine kleine Zusammenfassung, wie ich das gemacht habe (natürlich gleich den optimalen Weg):

- geht in den Ordner C:\Users\<euer_Nutzername>\AppData\Local\Rockstar Games\GTAIV\Settings
- löscht dort alle Dateien raus, um so die Default-Settings zu bekommen

- startet GTA
- geht in die Grafikoptionen
- Auflösung: 800x600
- die restlichen Werte nach eurem Belieben (aber nicht zu hoch, ist klar)
- merkt euch die VRAM-Auslastung sowie den Gesamtspeicher, der von GTA ermittelt wurde!!!
- speichert die Grafikeinstellung und verlasst GTA

- rechnet Folgendes: gemerkte Speicherauslastung / gemerkten Gesamtspeicher (in meinem Fall 444 / 1014)
- merkt / notiert euch den Wert (bei mir waren es 0.438)

- erstellt in euerm GTA-Ordner (Hauptverzeichnis) eine commandline.txt
- schreibt in diese eure gewünschte Auflösung und den ausgerchneten VRAM-Wert
- es muss wie folgt aussehen (das sind die Werte, die ich benutze / ermittelt habe):
-height 1024
-width 1280
-novblank
-shadowdensity 0
-viewdistance 45
-detailquality 50
-availablevidmem 0.438
- denke mal, dass ich da nicht viel erklären muss
- novblank deaktiviert vsync, hinter availablevidmem schreibt ihr euren ausgerechneten Wert
- speichern

- startet GTA
- die Auflösung müsste jetzt eure gewünschte sein (wenn nicht, habt ihr was übersehen/vergessen)
- geht im Hauptmenü in eure Optionen
- dort müsste als maximale Auflösung weiterhin 800x600 angegeben sein (obwohl eure gewünschte Auflösung dargestellt wird) und eure getätigten Einstellungen noch bestehen
- ihr werdet merken, dass ihr aus dem Optionsmenü nicht mehr rauskommt - beendet das Spiel einfach über euren Taskmanager

- folgenden Abschnitt können die Leute vornehmen, die eine DirectX10-fähige Graka haben (bei mir gab das nochmal ein bisschen mehr Performance):
- geht in euern GTA Ordner - dort wechselt in den Ordner /common/shaders
- kopiert euch den kompletten Inhalt als Backup irgendwo hin
- nun kopiert ihr den kompletten Inhalt aus dem Ordner win32_30_atidx10
- geht in den Ordner win32_30_nv8 und überschreibt dort alles mit den kopierten Dateien

- so, jetzt startet GTA und genießt die etwas bessere Performance / Optik
 
@ DAito

- merkt euch die VRAM-Auslastung sowie den Gesamtspeicher, der von GTA ermittelt wurde!!!

Was ist damit gemeint? Meinst du die Auslastung beim Benchmark????
 
@ DAito

- merkt euch die VRAM-Auslastung sowie den Gesamtspeicher, der von GTA ermittelt wurde!!!

Was ist damit gemeint? Meinst du die Auslastung beim Benchmark????

im optionsmenü steht doch, wieviel speicher deine aktuell ausgewählten grafikeinstellungen brauchen und wieviel du insgesamt zur verfügung hast
 
Zurück