Aller au contenu

Photo

[HOW TO] Prevent graphics card overheating


  • Veuillez vous connecter pour répondre
20 réponses à ce sujet

#1
the.gray.fox

the.gray.fox
  • Members
  • 127 messages
Disclaimer: I have searched for this bit of info, but could not find it. In case I am doing a repost of something already known, then, my apologies to the community, and have a mod remove the thread -- no hard feelings :-)

(edit -- oh, and sorry for the poor text formatting. I am no expert of the tags I can use to write nice text)
(edit #2 -- had to make some due corrections, after a while)


Greetings (and I still mean it)

I wonder how many potential NWN2 entusiasts have dropped the game because of this problem, the overheating. Admittedly, I myself would have been among them. Because the game is nice and pleasant, no doubt, but the preservation of my expensive hardware is second to no piece of pretty software.

I want to keep this short, so I will cull most of the technicalities. The majority of people here, the casual gamers, have no background to appreciate them in the first place -- and those who have it certainly need not hear such explanations from me. And then basically I do not know what I talk about.

Straight at the jugular of the problem: the reason why NWN2 overheats your graphics card, any graphics card, is because it is coded so damn efficiently. This is no joke. (Looks like it was.) If you want to keep your card temperature low, but wish to retain high, or even very high, graphics settings, you can place an artificial limit on your maximum framerate.

If you have monitored your card's temperature you will have noticed that the worst overheating occurs when you are having the best framerates while in the most graphic intensive terrain-based areas. When your card is powerful enough to steadily render a given scene for several times per second, and so you are having a high framerate, you are going to have a serious overheating problem if the given scene makes use of advanced rendering techniques. This occurs primarily for two reasons: massive use of shadows (shadowmaps, more precisely), and massive use of shaders (when you cast lots of spells). You get the worst of it when you couple the two. Still reading?

Really it is not fair that we blame a game for making use of what your card has been built for. At best we can blame the game for not taking direct steps to reduce the use/abuse of such hardware capabilities.
Most modern and graphics intensive games, in fact, do not overheat your hardare ONLY because they self-impose a limit on the update frequency of some graphics effects. Well, in part they do this so they can redirect onto other tasks (not necessarily graphics-related) the processing power that they are saving not expending. And in part they do it to avoid overheating the hardware. Nobody wants to play a game that is likely to melt a 700 € card into liquid butter, you see.
Did you know that too much butter is unhealthy for you? Watch your diet.

Since we can not intervene to modify the game engine of Neverwinter Nights 2 to grant the due respite to your card, our best move a very good move, if not the best one at this moment, is to put an artificial limit to the maximum framerate that the game can achieve. This can work so well that you are not going to believe your eyes. I was almost crying out of joy the first time around. I can finally turn on every last one of the graphics options and my card does not overheat. Best of all, I can play without concern that my card may be turning dangerously hot fast -- which allows me to immerse into the game and enjoy it as it was meant to.


I know of 3 programs that can place a framerate cap on a game.

The first one is Fraps.
The famous Fraps. But it is not freeware. And you have to install it. And then you have to be recording a movie for it to work. I do not feel like recommending it. Your HDD is certainly not going to like the constant writing...

The second program is Dxtory.
This is a Fraps-like, just less known. Again not freeware, and to be installed. But as far as I know it does not require that you record a movie in order to be active on a game.

The third program, and the one I am going to recommend, is FPS_Limiter v0.2
Freeware, and with no need to install it. Place it anywhere on your disk, and set it up to work with your Neverwinter Nights 2. Then be happy.
(for the record: I am not the author of this program)

You can get copy of it at this link
^^ Right, do not forget to unleash your best antivirus on it before you run anything. Not that I am sending you to some virus trap, be very clear!

If this expires, send me a PM and I can e-mail copy of the program to you (it is only 162 KB).
It would be best if somebody here could host a mirror for the community -- I have no idea how long the link will stay valid (many more such links have long expired/broken, took me a few tries to reach a working one).

Now that you have FPS_Limiter_0.2.rar on your disk, extract it somewhere, anywhere.
Inside it you should find these seven files:
-- FPS_Limiter.exe
-- FPS_Limiter_GUI.jar
-- HookHelper.dll
-- Limiter_D3D8.dll
-- Limiter_D3D9.dll
-- Limiter_OGL.dll
-- Readme.txt

The .jar is only a Java GUI applet to automate the setup of the program to work with your favorite game. Using this GUI will output nothing more than a batch file (.bat) that you are supposed to launch -- and the program will do the rest.
If you want to go this route, suit yourself.

Otherwise, know that the setup can easily be done manually. No need for java.
The .txt would contain instructions, but they are not in english.

So here I give you full instructions:

FPS_Limiter.exe is the program you are interested in.
Ultimately you are to launch this, feeding to it a proper set of command line parameters.
This is its command line template:

FPS_Limiter.exe /r:[D3D8|D3D9|OGL] /f:<integer_number> /x:[ON|OFF] /l:[ON|OFF] <game_exec>

Neverwinter Nights 2 is a DirectX9 based game, so the /r: parameter must be set exactly to /r:D3D9
This will make FPS_Limiter hook into the Direct3D9Device::BeginScene() function of somewhere into DirectX9. That is how this program manages to introduce an artificial framerate limit without touching the actual game executable.


The /f: parameter is an integer number, and the actual framerate limit you wish to impose.
For example, /f:37 will cap your maximum framerate to 37 frames per second. Not one more.
This number is used by the program to calculate a minimum time-interval that has to pass between the last rendered frame and the beginning of the next one. Setting it to 37 frames per second will make FPS_Limiter impose a time wait of 1000 / 37 = ~27 milliseconds per frame. Meaning that even if your powerful card is ready to render the next frame, it will simply have to SIT AND WAIT until those ~27 milliseconds have passed. In that while of virtual inactivity, your card is cooling down.


The /x: parameter is an ON or OFF flag.
Setting it to /x:ON will cause the appearance of a big green flashing framerate counter in the upper-left corner of your screen as you play. Set it to /x:OFF if you do not want to see this. I recommend you keep it ON initially, so you have proof that the program is working. This green number appears as soon as the Atari logo movie starts, so you know immediately if it is working or not.
Regardless of the command line setting, you can toggle this display anytime by pressing F10 on your keyboard.
If you press F11 instead you +increase the framerate limit by 1 (37 -> 38 -> 39...)
Pressing F12 will -decrease the framerate by 1 (39 -> 38 -> 37...)
Alas, pressing F12 in Neverwinter Nights 2 triggers a Quick Save as well :-/
^^ Anybody knows if that can be changed?
^^ The question still stands. Anybody knows? -- How come that the more you highlight a text, the more the people tend to ignore it???


The /l: parameter is an ON or OFF flag.
Setting it to /l:ON will make FPS_Limiter.exe create a limiter.log file. I always keep it OFF.


The <game_exec> is exactly that.
It is the complete path and file name of the game executable of Neverwinter Nights 2.
I ignore if a relative path would work as well. But in doubt, just spell out the complete path and be worry free.
Please check on which .exe you are using to play: if nwn2main.exe or nwn2main_amdxp.exe
Launch the game as you normally do. At the main menu, past all the logo movies, Alt-Tab out and Ctrl-Alt-Del to open the Task Manager. Switch to the Applications tab, then right-click Neverwinter Nights 2 and select Go to Process. You are brought at the Processes tab with the executable in use for Neverwinter Nights 2 highlighted. That is the .exe name you seek.
In my case it is nwn2main.exe, so this is what I am going to write as example.

My Neverwinter Nights 2 is installed in the custom folder: C:\\Neverwinter Nights 2\\
So in my case, for the <game_exec> parameter I have to write "C:\\Neverwinter Nights 2\\nwn2main.exe", and it must be wrapped in "double quotes" because the string contains spaces. But know that you can wrap it in "double quotes" whether your path has spaces or not -- it will not harm.


Summing up, this is a working example of the command line that you can write.
Actually this is the one I am using to play:

/r:D3D9 /f:30 /x:OFF /l:OFF "C:\\Neverwinter Nights 2\\nwn2main.exe"

You should create a shortcut link to the FPS_Limiter.exe program, and copy the shortcut to your desktop or wherever you feel.
Then you right-click the shortcut and select Properties.
Whatever you find written in the Destination field already, you must leave it as-is.
You are going to APPEND to that. So place your blinking cursor at the end of that text, then type 1 blank space, then write-in the command line parameters that you want to use.
Hit Ok to close the properties window and you are done.

From now on to play NWN2 you should double-click this new shortcut you made.


----------------------------------------------------------------------------------------------------
On known bugs, stability issues, incompatibilities and the like:

Probably you must possess Administrative priviledges to use FPS_Limiter because it hooks into a system component, if only temporarily, and Windows might have something to say if you are no Admin.

Similarly, I imagine that some Firewall / Antivirus program will want to block FPS_Limiter until you grant to it explicit permissions.

Other than that, I have been using this program for over 3 weeks now, almost every day. I sit and play NWN2 for 2 to 3 hours uninterrupted. One time I think I even hit the 4 hours. Never a problem, not even the smallest complain to report. While at it, I confirm: still no complain to report what-so-ever. You should really give this a try.


----------------------------------------------------------------------------------------------------
Notes on the framerate:

When you install Neverwinter Nights 2, the default screen refresh rate at you which you play is locked to 60 Hertz.
If you activate the Vertical Sync, your graphics card is not going to render more than 60 frames per second, by virtue of being in sync with the monitor refresh rate arbitrarily set by the game.

(Addendum)
If you wish, you can change the screen refresh rate by manual editing your nwn2.ini file in your MyDocs folder. In the [Display Options] section there is the RefreshRate field, which defaults to -1
My own [Display Options] section looks like this:
[Display Options]
FullScreen=1
Width=1024
Height=768
RefreshRate=75
Gamma=1.000000
Which allows me to play Neverwinter Nights 2 on a screen resolution set to 75 Hertz refresh rate. It is much more relaxing to the eyes than 60 Hertz.
NOTE : if you make such a manual edit, be sure to set a Width + Height + RefreshRate combo that your monitor is able to support. Else you ask the game to activate some invalid screen mode. It might just not work, or it might fall back to some other supported screen mode.
NOTE : You may want to make your nwn2.ini file Read Only so that the game will not overwrite it erasing your edits every time (it gets annoying fast). If you make it Read Only, though, you forfeit the ability to make further changes to most Game Options from the in-game interface. Suit yourself.
(/Addendum)


However, 60 Hertz of refresh frequency is straining to the eyes, and if you did not know it before now you do. And if you have always played with 60 Hertz frequency... I am sorry for you.
Most professionals agree that the minimum, eye-relaxing, screen refresh frequency is 72 Hertz.
If you can go higher than that so much the better for your eyes, but you should not go below 72.

But if you dared dare set Neverwinter Nights 2 to operate on a refresh rate frequency of 72 Hertz (I use 75, actually), even if you activated activate the Vertical Sync, the game would have punished can punish your hardware with massive overheating.
Because one thing is to have a max of 60 frames per second, and one other thing is to have 75 frames per second. That spells 25% more work for the card at every second of play (you can imagine the overheating).
Right, normally.

Now that you can place an artificial limit on the framerate, and this limit is independent of your monitor refresh rate, you can set Neverwinter Nights 2 to work on 72 or more Hertz (which is good for your eyes).
You will still want to activate the Vertical Sync, if only to prevent the ugly phenomenon of image-tearing.
In any case it will be the artificial framerate limit that you set with FPS_Limiter to have the last word.

Do not be afraid to choose a low framerate.
You would be surprised to learn of how many big and modern titles make use of low fps limits such as 30 or even 25.
Most game developers consider a rate of 50 frames per second the target to shoot for. That is because 50 frames per second are a good amount to guarantee that any fluid movement is accurately rapresented on screen.
But Neverwinter Nights 2 is neither First Person Shooter, nor Car Driving game.
You do not need a high framerate at all to enjoy the game.
You can go as low as 40 frames per second and still perceive fluid animations in any NWN2 situation.
You can descend to 35 fps and pretty much all but the very fastest moving animations will still look fluid to you.
You can even descend to 30, and the game will still look magnificent to your eyes.

It can look even more magnificent, because now you can activate all those eye-candys that you have been leaving unused thus far. Go on, do it. Your card will not overheat, because your low framerate is giving to the hardware "plenty" of time to recover & cool down between one frame and the next.

Of course, if you activate every eye-candy and you see that your card is consistently falling behind the max framerate that you have set from FPS_Limiter (ie: you set a max fps of 40 but your card never manages to hit 38)... it means that you are asking too much to your hardware, and you ought to turn off something. Or you could lower your maximum framerate, whichever works best for you.
In my case my card could easily handle any scene with all eye-candys on. The framerate would range between 52 and 75 (I sync with a refresh rate of 75 Hertz). But that would massively overheat the card in certain game areas.
I have found out that the Skymirror Lake area (in the NWN2 OC) is the perfect benchmark for me. I stay 3 clock minutes in there, doing totally nothing (not even turn the camera in place), and the card temperature raises from a cold boot situation of 31 C° to a frightening 76 C° AND counting! In that area I have a granitic framerate of 75.
Since I have being using FPS_Limiter, and have limited my fps to just 30, I can stay in the Skymirror Lake area and do whatever I want, including the casting of spells (and then close up to my character to get a load of fullscreen shaders!), and even observe the Sun slowly raising while all the shadows around me get recomputed on a per-frame basis. The card temperature does not raise past 54 C° -- That speaks volumes (as Tarmas would say).
I can probably raise my framerate some more, like 35, and still be safe in any game place.
But I like too much to see that 54 C° and compare it against the goodness I am having on screen :-)


I think that is all (the last famous words)
With the hope that the next player about to ditch NWN2 because it is destroying his hardware, will instead see this and reconsider. Neverwinter Nights 2 is in a better shape than many believe. (Maybe not.) It just needs a little help.


-fox

Modifié par the.gray.fox, 25 janvier 2012 - 11:47 .


#2
Gorath Alpha

Gorath Alpha
  • Members
  • 10 605 messages
In exactly the manner of far too many casual gamers with little appreciation for their hardware and software, and the relationship between them, you continue to want to coddle the bad engineers responsible for the problem. WHATEVER any video card does, however, and wherever it does it, the only responsibility for keeping it cool is the manufacturer's, as long as the buyer provides the suitable environment for the card.

The manufacturer should include failsafes to take into account idiot owners who allow dander, dust, hair, lint, and airborn particulates to accumulate without regular removal, but in the absense of such blockage of airflow, if their designs cannot keep their hardware safely cooled, they are negligent.

#3
kamal_

kamal_
  • Members
  • 5 250 messages

Straight at the jugular of the problem: the reason why NWN2 overheats your graphics card, any graphics card, is because it is coded so damn efficiently. This is no joke.

If you have monitored your card's temperature you will have noticed that the worst overheating occurs when you are having the best framerates while in the most graphic intensive terrain-based areas. When your card is powerful enough to steadily render a given scene for several times per second, and so you are having a high framerate, you are going to have a serious overheating problem if the given scene makes use of advanced rendering techniques.

just.... no.

#4
pkpeachykeen

pkpeachykeen
  • Members
  • 77 messages
The only thing you need to do is turn vsync on. This will prevent the framerate from going over your monitor's refresh, giving you a stable and smooth picture. As your monitor typically refreshes at 60 hertz, anything above that will not be shown, and can be considered unnecessary. 

However, capping framerate typically will not decrease the amount of stress put on the card. If the framerate is high, that means the card is under light load; it has no trouble drawing a frame so it moves on to the next quickly. The only thing you need to do is celebrate.

As you turn the settings down, framerate increases and temperature decreases because less work is done. High stress and temperatures come with high settings and cause low framerate. 

Temperatures in the 60-70 area while playing games are normal and will not damage the card at all. Not only that, but all modern hardware has temperature sensors that force it to shut down or slow down.  It depends on the hardware, but the fans will speed up, then the card slow down, and finally shut off. This all happens far below temperatures which can actually damage the hardware. For video cards, these typically kick in around 75-80C and slow the card down, and shut it off entirely around the 90 mark (it varies by card). Actual damage begins to occur in the 90-100 area, but the system should shut off long before then.

If the opening post is accurate in how the limiting DLL works, using it will simply cause the game to stutter and lag. It does not work properly and should not be used. Instead, turn down the settings, turn on VSync, and let your card handle the rest. 

Straight at the jugular of the problem: the reason why NWN2 overheats your graphics card, any graphics card, is because it is coded so damn efficiently. This is no joke.


It is a joke, the truth is dead opposite. The interface was built for immediate-mode, the engine for buffered, and the paradigm switch killed it. Note performance vs modern games: 
https://docs.google....zx=vmhdjbz344pa 

The details are highly technical, but the engine is far from optimized, which is the sole cause of the performance hit. 

If you have monitored your card's temperature you will have noticed that the worst overheating occurs when you are having the best framerates while in the most graphic intensive terrain-based areas. When your card is powerful enough to steadily render a given scene for several times per second, and so you are having a high framerate, you are going to have a serious overheating problem if the given scene makes use of advanced rendering techniques. 

The most intensive areas, yes, which is also where you'll have the worst framerate, courtesy of the amount of work being done. Generally speaking, as framerate increases with the same settings, heat will remain constant or even decrease. Low framerate is an indicator of more work being done, which generates more heat.

This will make FPS_Limiter hook into the Direct3D9Device::BeginScene() function of DirectX9. That is how this program manages to introduce an artificial framerate limit without touching the actual game executable. 

Hooking IDirect3DDevice9::BeginScene() (the proper name) is not the way to limit framerate, and will only make the game stutter and lag.

Modifié par pkpeachykeen, 22 janvier 2012 - 07:32 .


#5
the.gray.fox

the.gray.fox
  • Members
  • 127 messages
Good Lord, what happened? My good intent is rewarded with this venom. I am hurt :-(

This must be some misunderstanding. But I fear that if somebody was willing to try out what I talked about, he will now pass on the opportunity as he reads your nice replies. How sad.

It is not like I am chasing some e-Medal, and I do not have to justify the size of my penis in front of the community. Least of all I feel the urge to start a quarrel. But an answer to each is in order, if only to show you that I am not ignoring you.



@ Gorath Alpha:
I understand you point. But what do you expect to accomplish by saying that to me? If you want to change things, do something concrete and go sue ATI (AMD really) and nVidia. Raising your voice against me is going to produce no effect. With that said, know that I agree with you. It would be nice if our cards had a built-in safety to prevent the unrecoverable. I myself have cooked two cards in a decade, and the second one (likely defective) did not even survive the very first cold boot, as it burned while making myself acquainted with the BIOS -- imagine my wtf face.



@ kamal_:
Thank you for your... substantial contribute. You took the time to read, though you did not catch that I have rearranged some words in order to cut it short. In hindsight, I must have happened to build up the wrong meaning during my edits -- my fault.
English is not my native language, I thought people would perceive that.



@ pkpeachykeen:
You are so categorical in your statements. And all that use of bold, and the things you said... quite incisive.
By any chance... do you think that I am some kind of idiot that comes here to waste his spare time and fight with his own bare english to build up a useless pile of lies. What for would I do that? Chicks? Money? Fame? Sure, with my low post count I am going to conquer the boards -- you wait and see.

Sarcasm aside, you have replied in the way you did before checking if I was talking of something genuine.

You may want to more accurately read my opening post, try to understand what I said and why I left out some details (oh heck, it was to keep it short -- it should be implicit that I left things out of it), and you may want to try out the software I talked about before posting again... and then come back here to -at least- rectify the part in which you claim that hooking BeginScene() -no- hooking IDirect3DDevice9::BeginScene() (the proper name -- thanks for this superior display of knowledge. I did not care to look it up on MSDN, deeming it a secondary detail) will only make the game stutter and lag.
There is no stutter and there is no lag. Try it out and see with your eyes. Which you have not done, yet you hastily built your post out of it.

As for the enabling of Vertical Sync, the toning down of the graphics settings, and the letting of the card to handle the rest... yes that is ONE way to reduce the strain asked to the card. It is also a way that makes you deceive the pretty game of pretty much everything that makes it pretty.
One OTHER way is to reduce the actual framerate, which is the whole point I wanted to make. In short: ouput even less frames than 60, so you can pump up the graphics and still keep the temperature under control (which works especially good because the quality gained by augmented graphics is outmatched by the cooling gained for having more "idle" time between frames. This is the opposite of a Diminishing Returns formula. How do you call that in english? Increasing returns?).
Essentially by using FPS_Limiter you can further limit the framerate, and descend below the minimum 60 that is otherwise naturally enforced by Vertical Sync and the bare minimum refresh rate allowed by your monitor. This important detail seems to have escaped your attention. It is useful in those situations in which you are getting overheat problems already at 60 frames per second, even though you have already toned down the graphics settings. Now, if your hardware is so good that you have no overheating problem, I am truly happy for you (just in case, what is your card? -- I want one too). But others are not this fortunate, and they suffer for playing Neverwinter Nights 2, even with a restrict subset of eye-candys at 60 fps.




now speaking in general...
Do I have to explicit even more [implicit] details, or can I leave this post safely without fear to find more venom grasping at what I am leaving unmentioned now?
I will take the chance and leave. I think I said all there was to say. People, I am not angry with you. I believe this is just a misunderstanding. So now is your turn to give me the benefit of the doubt and try the thing described in my opening post. And please do it before posting again.

I waited 3 long weeks before deciding to share this with you. I wanted to make sure I was not giving a false hope.


-fox

#6
woofgirl

woofgirl
  • Members
  • 30 messages
I think the consensus is that you don't know what you're talking about. Personally, I wouldn't click on your link on a bet. Given what you describe as it's history, any fool will know why.

For anyone with a nVidia card, you can get eVGA Precision free from the eVGA website. Among many other things, it will let you set up a profile to adjust fan speed in response to graphics card temperature, display frame rate and card temperature onscreen, take screenshots etc. etc.

#7
the.gray.fox

the.gray.fox
  • Members
  • 127 messages
Is this a conspiracy to discredit me? What have I done to ever deserve this treatment?

That website has the only working link that I know of.
There may be more -- I did not care to seek them out.

If you do not trust that link, for any reason, I can e-mail you the file.
And if you do not trust to receive anything for me, then google for it yourself -> FPS Limiter v0.2
You will see how many are using it. What have you got to lose?

Besides... I also talked about Fraps and Dxtory. They happen to limit the framerate as well. Which is the point of it all.
Do you distrust those programs as well?


-fox

#8
kamal_

kamal_
  • Members
  • 5 250 messages
You might now know who peachykeen is. He's the guy who wrote the improved shader mods for nwn1,2 morrowind, oblivion etc. So if you ever downloaded mods to improve things like adding light rays and better water for let's say Morrowind, you're using his work. I suspect peachy knows a thing or two about graphics programming, in fact you might want to check out his voodoo shader project, since it improves the graphics experience in a whole host of games including nwn1 and 2.

As for my comment, well, it's abundantly clear that things don't work the way you describe. In fact, it's effectively the opposite, as peachy elaborated upon. The nwn2 engine performs poorly because it's highly <I>in</I>efficient.

#9
kamal_

kamal_
  • Members
  • 5 250 messages
Effectively, you are saying that for example Skyrim, which both looks better and has higher framerates than nwn2, does so because it is a less advanced and less efficient game engine. That's why I only needed a two word response.

#10
-Semper-

-Semper-
  • Members
  • 2 256 messages

pkpeachykeen wrote...

As you turn the settings down, framerate increases and temperature decreases because less work is done. High stress and temperatures come with high settings and cause low framerate.


actually that's wrong. a graphic card doesn't know efficient work therefore it always draws the maximum of frames possible if there's no engine or external limit. the frames per second are only limited by the power of the card. to make it very simple:

10000 polys onscreen - 512x512 textures -> card is able to draw 500 fps
500000 polys onscreen - 2048x2048 textures -> card is able to draw 30 fps

the stress and therefore the heat loss in both examples is exactly the same as long as the card ain't in 2d idle mode. now if you limit the output this will lower the stress and the heat loss because the card doesn't work with full potential. in this case vsync is more than enough.

this doesn't deny the fact that nwn2's engine is poorly optimized!
btw is no software able the overheat your graphics card as long as your rig ain't full of dust and your fans are working.

so grey fox is right with his assumption that limiting your fps automatically lowers the heat loss though he's got the technical parts completely wrong.

Modifié par -Semper-, 23 janvier 2012 - 04:39 .


#11
dunniteowl

dunniteowl
  • Members
  • 1 559 messages
On balance, I recognize the intent behind the OP and applaud such an attempt to help. That said, I think, when folks disagree and call it on technical information and it's (in)accuracy, I'm inclined to think that getting free education should be thanked, not called venom.

Venom would be people calling you names, or telling you that you're not fit to post, etc. Instead, what's going on is people who KNOW WHAT THEY'RE TALKING ABOUT, are educating you as to the errors in your information. There is no harm in this, welcome it.

Again, I appreciate that the original intent was to provide help to some folks with troubles. That does NOT change the fact that the bulk of what's posted as information is just -- well -- wrong. The one thing that does make sense, if you're not going to use VSync to control the frame rate issues, then your suggestion of this limiting program might be useful for folks with less beefy cards.

If frame rates are limited to a set amount, and the card could run faster, then yes, I suppose the card could be prevented from heating up as fast in intensive areas.

Goreth Alpha has the correct principle, the Engineers are supposed to make good and efficient cards, but my experience has been that whether doctors, lawyers, Indian Chiefs, or engineers, there's a large body of mostly competent folks who don't care about making things as efficient or robust as possible as long as it works the way they figure it should. If it ain't perfect, shrug, so what, I'm still getting paid and I'm not screwing things up, so win win.

That's not how I feel about things, but I have worked in many different fields of effort and my experience has been that there's a reason only a few folks in any given discipline rise to the top. In the meantime, if you're suffering from overheating that limits you playing NW2 for any length of time, I suppose, irrespective of the technical information, a program such as is posted in the OP couldn't hurt to try -- using, of course a proper program to vette the files for virii before running. I would also offer that there are many other tried and true methods that don't require installing eclectic programs to make the game run better and I would suggest exhausting all these other methods before going for externally run programs to solve the issue.

Look through the Technical Support (Self Help) forums for threads regarding getting things running better before installing ANY 3RD PARTY software to deal with graphics issues!

dunniteowl

#12
painofdungeoneternal

painofdungeoneternal
  • Members
  • 1 799 messages

-Semper- wrote...

pkpeachykeen wrote...

As you turn the settings down, framerate increases and temperature decreases because less work is done. High stress and temperatures come with high settings and cause low framerate.


actually that's wrong.


I'd be careful arguing with peachykeen about how graphics works, he's pretty much dealing with it at the engine level and is probably the most informed person regarding how graphics cards you are going to be able to find since he's creating a plugin that can patch how the video card works at a very basic level. Hopefully his shaders will help optimize a thing or two in NWN2 but from previous discussions i don't have much hope for that.

From my experience ( laptop user with system that came out when NWN2 did ) turning settings down like he suggests is probably the best thing, but i also have optimized my PW and areas to reduce the number of shadows, visual effects, and even objects like placeables and speedtrees, and other things that push the engine. But that is how i tackle it as a developer - unlike a game like dragon age there are no training wheels making sure a developer does not abuse an end users system.

The one feature that NWN2 should have enabled was for the "low" columns in visual effects 2da to have a lower impacting visual effect and a toggle to choose that column so that an end user can choose which effects to be using ( thus sending one effect to one user, and another effect for a different user when a given row is used ). Does not really solve the problem but it would be another tactic those of us who are video card challenged can use.

#13
-Semper-

-Semper-
  • Members
  • 2 256 messages

painofdungeoneternal wrote...

I'd be careful arguing with peachykeen about how graphics works, he's pretty much dealing with it at the engine level and is probably the most informed person


besides that this has absolutely nothing to do with engine knowledge, it's more about physics and engineering.

#14
pkpeachykeen

pkpeachykeen
  • Members
  • 77 messages

-Semper- wrote...

actually that's wrong. a graphic card doesn't know efficient work therefore it always draws the maximum of frames possible if there's no engine or external limit. the frames per second are only limited by the power of the card. to make it very simple:

10000 polys onscreen - 512x512 textures -> card is able to draw 500 fps
500000 polys onscreen - 2048x2048 textures -> card is able to draw 30 fps

the stress and therefore the heat loss in both examples is exactly the same as long as the card ain't in 2d idle mode. now if you limit the output this will lower the stress and the heat loss because the card doesn't work with full potential. in this case vsync is more than enough.


You are completely correct, but that applies separately to many parts of the card. Graphics cards don't operate with a simple system, the pipeline is highly divided and far from linear, with different stages on entirely different chips. Some chips draw more power and generate more heat when under load, other portions don't; the tasks given to the systems are different.

To work from your example:

10000 polys onscreen - 512x512 textures -> card is able to draw 3000 fps (common for modern cards)
500000 polys onscreen - 512x512 textures -> card is able to draw 3000 fps (vertex processing is rarely a bottleneck)
10000 polys onscreen - 8192x8192 texture -> card is able to draw 500 fps (addressing in large textures causes cache misses)
5000 polys onscreen - 512x512 texture -> 256 op/16 sample pixel shader -> card is able to draw 20 fps (shaders have the largest hit of anything in most cases)

There are a ton of edge cases, but performance is far from linear. The more work a single stage does, the more heat it generates, in that you're right. The very important detail is that a card has many stages, generating different amounts of heat across vastly different workloads.

Basic stuff, such as geometry, is handled trivially by the hardware T&L system and dedicated vertex processors. These are the oldest and most optimized elements of the pipeline and do the least work, despite a seemingly heavier load.
The parts that cause serious heat are the shader processors, which implement a variety of virtual machines within the pipeline, and NWN2 abuses the hell out of those.

In the link at the start of this post, of the stages shown NWN2 doesn't use the HS, TS, DS, GS, SO or CS stages at all. The IA, VS and PA stages are used heavily, but are also extremely optimized and work with very little data (5,000,000 triangles can be about 50MB, on a multi-GB bus, and takes little calculation). The part NWN2 thrashes is the texture address unit (TAU, not listed) and PS stage, and driver buffer. Profiling the game will give some good numbers, if scary (I don't have graphs at hand). The biggest problem with performance comes from not batching and poor cache use.

the.gray.fox wrote:
and then come back here to -at least- rectify the part in which you claim that hooking BeginScene() -no- hooking IDirect3DDevice9::BeginScene() (the proper name -- thanks for this superior display of knowledge. I did not care to look it up on MSDN, deeming it a secondary detail) will only make the game stutter and lag.

It will, BeginScene is not the correct method to hook. "Scenes" begin any time geometry is drawn; if you wanted to limit frames (this still shouldn't be done, not like this), you would hook IDirect3DDevice9::Present, which gives a frame to the monitor. In essence, VSync acts as a pause on Present. However, it works within the API and can be properly handled by the system, particularly the timing modules, and will not introduce any artifacts in time resolution. In addition, the system's pause functionality comes primarily from Sleep, which has a minimum 15ms resolution (which, at anything between 30-60 fps, will decrease it to about 20, commonly considered unplayable). It can't go below that, except in the case of relinquishing the remaining timeslot for the process, which gives anywhere from 0-1200 fps. 

In addition, sleeping the system does very little to change framerate. The video card, due to the buffering that occurs in the API, system driver, vendor driver, and card itself, can be anywhere up to 3 frames behind the game. As if that weren't enough, pipeline bubbles can cause performance to be entirely unrelated to CPU work, making traditional timing functions useless.

As for the enabling of Vertical Sync, the toning down of the graphics settings, and the letting of the card to handle the rest... yes that is ONE way to reduce the strain asked to the card. It is also a way that makes you deceive the pretty game of pretty much everything that makes it pretty.

One OTHER way is to reduce the actual framerate, which is the whole point I wanted to make. In short: ouput even less frames than 60, so you can pump up the graphics and still keep the temperature under control (which works especially good because the quality gained by augmented graphics is outmatched by the cooling gained for having more "idle" time between frames. This is the opposite of a Diminishing Returns formula. How do you call that in english? Increasing returns?).


Pumping up the graphics at low framerates is a zero sum game: lower framerate decreases work, boosting settings increases it again, and you end up with the same work-load, or in some cases, more. 

Essentially by using FPS_Limiter you can further limit the framerate, and descend below the minimum 60 that is otherwise naturally enforced by Vertical Sync and the bare minimum refresh rate allowed by your monitor.


VSync does not lock refresh rate to 60, it locks it to a multiple of your monitor's rate and no higher than the monitor. If you can't do 60, vsync will drop to 30, then 20, then 10. Even multiples allow a frame to stay on the monitor for a full cycle. If the card provides a new frame while the monitor is drawing an old one, the monitor will draw half and half, causing tearing. The main purpose of vsync is to prevent this, giving a smoother image, but secondarily it can cap framerate.

Modifié par pkpeachykeen, 24 janvier 2012 - 12:25 .


#15
the.gray.fox

the.gray.fox
  • Members
  • 127 messages
Never let it be said that the.gray.fox can not take a beating with style. You judge me from a forum post, you make a big mistake. But feel free to retain whatever opinion of me. Like I said, I am after no e-Medal.

With that out of the way, I have edited the opening post. Hopefully this revision will attract less debate, maybe a smile, but (more importantly) more people wishing to grant me the benefit of the doubt and just see if what I proposed does work for them -- in spite of the displeasing accident that has occurred here.

Speaking of people, I just have to thank -Semper- and dunniteowl for their effort at pointing out what little good they found in my post. Rest assured, I do learn from my mistakes.

Now I hope that -Semper- and pkpeachykeen will not go to war because of me.

As for DNO. Someone once told me that this forum pretty much has only him (DNO) as active moderator, and he is not even around all that much. Looks to me he was just around the corner, instead. I would not ask for better.


-fox

#16
pkpeachykeen

pkpeachykeen
  • Members
  • 77 messages
On my part at least, there is absolutely no judgement of you, which is why I kept my previous posts to only technical details. I am judging those details, perhaps harshly, but it is not personal at all (not even if you wrote the app).

I don't necessarily agree with all of the other comments here, as I am no less fallible than you or DNO or anyone, and to keep this away from being about me in any way, I tried to link more than enough reference material. The only things I see in your opening post that I still take complaint with are the bit about not know what you're talking about (if you don't, just read up on it) and butter being bad for you (it's quite delicious). ;)

Again, I have no personal qualm and there was no venom intended, nor do I mean to go to war, just adding some technical notes on why this won't work (right).

Seeing a need for something of this sort has inspired me to try and figure out a "correct" take on it and work that into my Voodoo/Shard project, so people who need to control framerate can without worry. :)

Until then, just be careful with apps that muck around inside the engine. It's enough of a mess as is. :P

Modifié par pkpeachykeen, 25 janvier 2012 - 11:45 .


#17
Rex Radar

Rex Radar
  • Members
  • 46 messages
I was following this thread with great interest. I have only played NWN2 on a laptop that I had purchaced just when it came out. And although the specs met the min requirements (2.0 gHz, 1.5 MB ram, Nvidia Geforce Go 7600 that has 256 MB ram dedicated + 256 shared) at release it still melted down with only sparadic play (it would start to slow up after 30 mins of play or so). I had tried various drivers and all of the tech recommendations that were recommended at the time (preety much same as now). However in the end, the game just over worked the system and it burnt up my vid card, mother board and the LCD power/output ribbon. In the end they also replaced the LCD. Fortunatly it was was on warentee.

At the time I did not use any auxillary cooling, I have since bought a cooling pad, which helps. As for myself since that event has been very wary of temps and always monitor them. With the cooling pad and running min settings now I can run 8-12 hour sessions with no impact to the game System temps stay below 60 deg C (Steam SOZ ed) with exception of a few notible areas.

Because it was a minimum rated spec machine the highest I have tried pushing it for any sessions was with med res textures, and some shadows (18-35 fps). Otherwise I had AA either off ot at 2x, no point lights, bloom or water effects. Res always been at 1200x 800 as this was my sceens natural res and down grading it seemed to make no differance acording to FRAPS. I have of course pushed it to max (game looks great if you dont mind 7 fps) and tried all the recommened fixes to improve fps, with not much improvment.

I also took intrest into PK's first post on the shader mods, and think that this could be the way forward. But I also think that what Grey fox said could have merit if it really is reduceing temps that much. ( more scientific approch would need to be done to get me to by in, and I may try this to let people know what my results are) Although I remain skeptical becuse I would have to agree with most of the rebutal.

BTW I also have played Dragon Age through to is completion. NOw running it under typical recommended settings (low-medish but I dont remmember the specifics) I was getting 15-25 FPS, game looked good, but barrly playable. Then I went into the settings again and changed just on parameter (I will look this up because I forget what it was) and my FPS whent up to 60 fps but the grafix wer down graded significantly (similarish to Dungeon Seige quality). Obviously this made the game very playable. And honistly if there was ever to be a grafix fix for NWN2 I hope that is is. If I want to take a pick of a nice sceen I can still do that (changethe settings back), but for the most part I want the liquid smooth performance that provided.

I wil try to look it up so PK or some other proper code people can see if this would be replicatable in the NWN2 engine.

#18
NWN DM

NWN DM
  • Members
  • 1 126 messages
Not sure why there's this propensity to take feedback on the internet as a personal attack.

Is it because we're essentially all anonymous to each other?

If your card is overheating, get better cooling and/or turn down some options and/or make sure you clean all the crap that accumulates inside your case.

If this still doesn't work, and your card can't cut the mustard, time to start researching an upgrade.

#19
the.gray.fox

the.gray.fox
  • Members
  • 127 messages

NWN DM wrote...

If your card is overheating, get better cooling and/or turn down some options and/or make sure you clean all the crap that accumulates inside your case.


Hello.
If you read all the posts here you can see that it has been pointed out already.
Which earns you one of these:

150x116http://images2.wikia.nocookie.net/__cb20080202231409/uncyclopedia/images/1/11/Beating-a-dead-horse.gif[/img]

^^ It is cute -- Come on, smile :-)


NWN DM wrote...

If this still doesn't work, and your card can't cut the mustard, time to start researching an upgrade.

The goal of this thread was to suggest a way to keep the temperature under control _while_ retaining good (if not even high -- provided that your hardware can meet the demand) graphics quality. And this is supposed to be useful to those who (like me) have experienced bad temperatures even though they turn down the graphics options && they make use of vertical sync && their case is dustfree.

I think I am repeating myself now.
Since all I had to say is up there (you only need read), I believe it is best that I stop replying to this thread.


-fox

Modifié par the.gray.fox, 30 janvier 2012 - 03:21 .


#20
painofdungeoneternal

painofdungeoneternal
  • Members
  • 1 799 messages
Careful getting too personal with advice where you perceive disagreement as an attack, i'm sure what you are doing is effective in some situations, but it's not going to be the best option for everyone. It is always good to have another option. However it is wise to heed the advice of those who know a bit more about the subject, and since peachykeen is a programmer actively modding the graphics card and pipeline himself, his advice is to be respected as he has relevant expertise. I do not think that your solution is in itself the only means of solving things, and probably assumes you cannot get a proper graphics card which can handle things.


Here is a number of options, not to attack yours but to allow a end user to read this and see what their options are:
  • Adjust settings for graphics per NWN 2 Tweak guides which has a lot of ini adjustments you can do. If you are having trouble this guide really should be your first stop regardless.
  • Less Obtrusive Spell Buffs and other wise adjust the game itself. ( note you said you cannot do this, but in fact you actually can modify things via the override folder ). A way to allow a PW user to choose to use specific VFX which appear different than what other users have would be very nice. ( so some can see the light emitting effects, others get trimmed down less expensive vfx )  Module builders should do things like remove shadows being cast from objects and painting shadows on the ground on non-critical objects which is what dragon age forces you to do.
  • Limit the framerate externally via FPS_Limiter v0.2, FRAPS or other tool as described in initial post.
  • Turn on Vsync which locks the framerate to a multiple of the monitors resolution ( which lowers it to 60, 30, 20, 10 basically rounding it down ) as recommended by peachykeen. Has advantage in that its easy to do and does not involve external programs.
  • Replace your video card, is your video card capable of doing the job.
  • Get a cooling pad for a laptop, or more fans for your desktop aimed at video card.
  • Get a tool to monitor GPU temperature. I remember using one of these to lower the clock rate or some other setting on my video card, and adjust when the fans kick on and at what rate.  Perhaps someone else remembers more about this. I stopped this though after my cooling pad really solved the issue for me.

All options are good ones, but of course if you can afford to fix the issue with a new graphics card that is really the best option presented. Other wise it's up to each user to really figure out what works for them. Hopefully peachykeen or skywing come up with a better solution.

Modifié par painofdungeoneternal, 30 janvier 2012 - 05:41 .


#21
Rex Radar

Rex Radar
  • Members
  • 46 messages
OK as promised I found the option that really made the difference foe me while playing Dragon Age. It was disabling the Frame Buffer Effects. This ended up getting me about 15FPS alone in the beginning Dalish area. Not sure if something like this is available in NWN2, but it helped immensely in DA.

I also agree with everything pain wrote up as helping with possible exception of the v sync, but that is only because I did not try that. (Reminds me I need to give the old lappy a good cleaning.