Low FPS problem with TF2


Recommended Posts

Hey Guys,

I was wondering if anyone has any suggestions for me to improve my FPS with TF2. Right now I have a Geforce 8800GTS and my FPS normally is about 20-30 and in groups is about 10. My settings are almost all the way on the bottom.

I have enabled multicore rendering as I have a 2.67ghz dual core processor. I have 2 gigs of high quality ram.

When I play Left 4 Dead, I have great graphics and FPS. I know the game has a much larger world and interactive parts to it, but it's annoying to have it be such a ****ty contrast.

Anyone have a suggestion of how to relieve my bottleneck and get an average of atleast 30+ FPS for a game like that?

Thanks for any tips.

Link to comment
https://www.neowin.net/forum/topic/767308-low-fps-problem-with-tf2/
Share on other sites

I would guess it's your processor, I play a lot of TF2 and L4D and L4D is a lot better in terms of performace/quality. They only just recently added multicore processor support for orange box, I guess it's still in development so you can't expect the same performance.

I use an fps config which makes the game look ok, but is also good for getting a fps boost, so you could try that as a last resort if no one can help you here.

  Minimoose said:
I would guess it's your processor, I play a lot of TF2 and L4D and L4D is a lot better in terms of performace/quality. They only just recently added multicore processor support for orange box, I guess it's still in development so you can't expect the same performance.

I use an fps config which makes the game look ok, but is also good for getting a fps boost, so you could try that as a last resort if no one can help you here.

Want to share that fps config?

There isn't really a bottleneck tbh. That system is more than enough for this game. It's just that valve refuses to do any optimization and, as such, the game runs like crap as you are seeing. And only gets worse as more updates come.

This is the updated version of the config I'm using (I don't recommend copying everything though, some are settings for hud and net settings which you shouldn't really change if everything is fine in terms of ping/lerp): http://more.pp.fi/tf2/configs/autoexec.cfg

This is the config I use at the moment, it is a edited version of m0re's to suit me, I didn't include net settings since I don't what to mess other people's settings up.

Copy the code into Steam\steamapps\<username>\team fortress 2\tf\cfg\autoexec.cfg

Back up your old autoexec.cfg if you have one and backup your config.cfg (config.cfg is in the same folder as autoexec.cfg)! If you want to revert back to TF2's default settings delete your config.cfg and the autoexec.cfg containing this configuration, if you want to go back to your backup files just replace the config ones with your old ones. (If you didn't have an old autoexec.cfg and you want to revert to your old settings then make sure you remove the config.cfg and autoexec.cfg and just put your backup of config.cfg back in the folder).

Last Warning - config.cfg contains all of your game settings (if you haven't got an autoexec.cfg), so please make sure you back it up, I don't want to be blamed for anything ^^

// MATERIAL vars_
mat_mipmaptextures								"0" // texture quality decreases with distance
mat_antialias									 "0" // disables antialiasing
mat_bufferprimitives							  "1"
mat_clipz										 "1"
mat_colorcorrection							   "0"
mat_compressedtextures							"1"
mat_disable_bloom								 "1"
mat_debugdepthval								 "0" 
mat_debugdepthvalmax							  "0"
mat_filterlightmaps							   "0"
mat_forceaniso									"0"
mat_forcehardwaresync							 "0"
mat_fastspecular								  "1" // Enable/Disable specularity for visual testing.  Will not reload materials and will not affect perf.
mat_hdr_enabled								   "0" // Report if HDR is enabled for debugging
mat_hdr_level									 "0" // Set to 0 for no HDR, 1 for LDR+bloom on HDR maps, and 2 for full HDR on HDR maps.
mat_parallaxmap								   "0"
mat_shadowstate								   "1"
mat_use_compressed_hdr_textures				   "1"
mat_specular									  "0" // Enable/Disable specularity for perf testing.  Will cause a material reload upon change.
mat_trilinear									 "1" // Disables the use of Trilinear mipmapping.
mat_wateroverlaysize							  "0" // Sets the resolution of water distortion. Must be multiple of 8.
mat_aaquality									 "0"
mat_reducefillrate								"1"
mat_softwarelighting							  "0"
mat_autoexposure_max							  "0"
mat_autoexposure_min							  "0"
mat_bloomscale									"0"
mat_disable_fancy_blending						"1"
mat_disable_lightwarp							 "1"
mat_disable_ps_patch							  "1"
mat_envmapsize									"0"
mat_envmaptgasize								 "0"
mat_fastnobump									"1"
mat_fastspecular								  "1"
mat_filterlightmaps							   "0"
mat_force_bloom								   "0"
mat_forcemanagedtextureintohardware			   "0"
mat_framebuffercopyoverlaysize					"0"
mat_leafvis									   "0"
mat_norendering								   "0"
mat_parallaxmap								   "0"

// GIBS
violence_agibs									"0" // Show alien gib entities
violence_hgibs									"0" // Show human gib entities
violence_hblood								   "0" // Draw human blood
violence_ablood								   "0" // Draw alien blood

// R vars
r_avglight										"1" // disables average lighting
r_lightaverage									"1" // disables average lighting
r_lightinterp									 "0" // disables light interpolation
r_unloadlightmaps								 "0" // 0 because of alt tabbing causes black walls
r_drawflecks									  "0"
r_decals										  "0"
r_dynamic										 "0"
r_queued_decals								   "0" // Offloads a bit of decal rendering setup work to the material system queue when enabled.
r_decal_cullsize								  "0" // Decals under this size in pixels are culled // _lower texture quality at distance_
r_drawmodeldecals								 "0"
r_decalstaticprops								"0" // Decal static props test
r_dopixelvisibility							   "0"
r_eyes											"0"
r_fastzreject									 "-1" // Activate/deactivates a fast z-setting algorithm to take advantage of hardware with fast z reject. Use -1 to default to hardware
r_lod											 "2" // _adjusts model quality--set between -5 and 5_
r_occlusion									   "1" // Activate/deactivate the occlusion system.
r_rootlod										 "2" // Root LOD
r_renderoverlayfragment						   "0"
r_spray_lifetime								  "0" // Number of rounds player sprays are visible
r_teeth										   "0"
r_waterdrawreflection							 "0" // Enable water reflection
r_worldlights									 "0" // number of world lights to use per vertex
r_waterforceexpensive							 "0"
r_shadowmaxrendered							   "12" // Max shadows the game will render.
r_shadowrendertotexture						   "1" // Rendered the shadow texture causing it to match the player model.
r_shadows										 "1" // Enables shadows (Change be disabled for additional performance.)
r_3dnow										   "0" // Enable/disable 3DNow code (amd prossulla k?yt? 1)
r_3dsky										   "0" // Enable the rendering of 3d sky boxes
r_sse2											"1" // Enable/disable SSE2 code 
r_ambientboost									"0"
r_ambientmin									  "0.3"
r_ambientfactor								   "1"
r_drawmodelstatsoverlaymin						"0.1"
r_drawmodelstatsoverlaymax						"1.5"
r_ropetranslucent								 "0"
r_drawdetailprops								 "0" 
r_threaded_client_shadow_manager				  "0" 
r_threaded_particles							  "1" 
r_threaded_renderables							"0"
r_queued_decals								   "0"
r_queued_post_processing						  "0"

// CL vars
cl_clearhinthistory							   "1" // Clear memory of client side hints displayed to the player
cl_detailfade									 "0"
cl_drawmonitors								   "0" // Disables the rendering of ingame "monitors" which contain 3d rendered images.
cl_ejectbrass									 "0" // Disables brass ejection
cl_forcepreload								   "1" // Forces the game to load all texture and model information into memory on map load.
cl_muzzleflash_dlight_1st						 "0"
cl_phys_props_max								 "0" // Maximum amount of physics props allowed.
cl_predictweapons								 "1" // perform client side prediction of weapon effects.
cl_predict										"1" // Perform client side prediction.
cl_ragdoll_collide								"0"
cl_ragdoll_fade_time							  "0" // dead models disappear instant
cl_ragdoll_physics_enable						 "0" // Enable/disable ragdoll physics.
cl_showhelp									   "0" // Set to 0 to not show on-screen help
cl_showpluginmessages							 "0" // Allow plugins to display messages to you
cl_show_splashes								  "0"
cl_rumblescale									"0" // Scale sensitivity of rumble effects (0 to 1.0)
cl_debugrumble									"0" // Turn on rumble debugging spew
cl_threaded_bone_setup							"0" 
cl_threaded_client_leaf_system					"0" 

// ROPES
rope_averagelight								 "0" // Makes ropes use average of cubemap lighting instead of max intensity.
rope_collide									  "0" // Collide rope with the world
rope_smooth_enlarge							   "0" // How much to enlarge ropes in screen space for antialiasing effect
rope_smooth									   "0" // Do an antialiasing effect on ropes
rope_subdiv									   "0" // Rope subdivision amount
rope_wind_dist									"0" // Don't use CPU applying small wind gusts to ropes when they're past this distance.

// _Set various settings_
sv_alternateticks								 "0" // If set, server only simulates entities on even numbered ticks.
sv_forcepreload								   "1" // forces preload to help increase performance
jpeg_quality									  "100" // jpeg screenshot quality.
commentary										"0" // Desired commentary mode state.
budget_show_history							   "0" // turn history graph off and on. . good to turn off on low end
flex_smooth									   "1" // Applies smoothing/decay curve to flex animation controller changes.
props_break_max_pieces							"-1" // Maximum prop breakable piece count (-1 = model default)
func_break_max_pieces							 "3"
showhitlocation								   "1"
mp_decals										 "0" // How many player sprays will be shown.
gl_clear										  "0"
muzzleflash_light								 "0"
lod_transitiondist								"0"
overview_mode									 "0" // Sets overview map mode off,small,large: &lt;0|1|2&gt;
adsp_debug										"0"
mp_usehwmmodels								   "-1" 
mp_usehwmvcds									 "-1" 


clear
echo " ___ "
echo "|  _|_ _"
echo "|  _| | |"
echo "|_| |___|"
echo "More's config loaded"
echo "#thematsi @ qnet"

Edited by Minimoose

How is it dodgy? It is the same as changing the graphics in the normal settings, except you have more options, turning off unecessary cvars etc... Also it can be reverted any time you want, so I don't see the problem. TF2 obviously won't run fine on every computer with a 8800gts since he is having slow downs.

Try using triple buffering in your nvidia drivers, that sometimes helps, also turn off vertical sync. If you don't want to use an fps config then I can still recommend one command which will help:

1) Create an autoconfig.cfg in the same folder as I said in my last post.

2) Add this line (It forces the game to load everything before you enter the server, so you don't get any loading while your in game, extends loading times a tiny bit, but it worth it)

cl_forcepreload 1

Also on large servers something else can also help, but it does have a trade off:

cl_ragdoll_collide								"0"
 cl_ragdoll_fade_time							  "0" // dead models disappear instant
 cl_ragdoll_physics_enable						 "0" // Enable/disable ragdoll physics.

Physics is puts a lot of strain on hardware, so if you don't mind models dissapearing instantly then this will boost fps significantly, especially on large servers with a lot of deaths. I actually prefer it because it shows you very clearly that someone is dead.

What processor are you using? (Out of interest)

Edited by Minimoose

Most leagues and cvar checking tools would agree thats a dodgy config, also triple buffering won't do **** if vsync is turned of. I ran TF2 with my 8800GTX at 1920x1200 without a hicup, his 8800GTS should handle it fine. The only hardware issue I can think of that might affect performance is if you use a Wireless USB Network adapter or you have surround sound enabled which is killing your CPU. Overall though his system should handle it fine without resorting to configing. Theres clearly an issue somewhere, either a TF2 config issue or driver related.

btw, you could spend a week sorting out the best config possible and the extra fps you gain is barely noticeable, it's not like the old CS beta days where you needed high end hardware to get 100fps.

  SIE said:
Most leagues and cvar checking tools would agree thats a dodgy config, also triple buffering won't do **** if vsync is turned of. I ran TF2 with my 8800GTX at 1920x1200 without a hicup, his 8800GTS should handle it fine. The only hardware issue I can think of that might affect performance is if you use a Wireless USB Network adapter or you have surround sound enabled which is killing your CPU. Overall though his system should handle it fine without resorting to configing. Theres clearly an issue somewhere, either a TF2 config issue or driver related.

btw, you could spend a week sorting out the best config possible and the extra fps you gain is barely noticeable, it's not like the old CS beta days where you needed high end hardware to get 100fps.

Well that's blatantly not true for everyone, because the config has improved my fps considerably (and many other in the 6v6 leagues) and doesn't make the game look awful.

Do you play in any TF2 leagues? The guy who made this is well known in the largest European TF2 league and has whole threads about this, and the admins have done nothing to ban the config, or even say it is frowned upon, many of them even use similar configs if not the same one. I have also used this in 2 other 6v6 leagues and many others have as well. It's not like its a script config...

I realise that the 8800gts is not much worse than the gtx, and in usual cases it should be able to run TF2 with ease, but in this case it is not. I only suggested the config as a last resort, and I made sure he knew what the different parts did, and how to reverse the process.

One last thing, don't you think the reason your running it so well is not just because of your graphics card, but also because you have a very powerful computer overall? For all you know his processor could be a pentium dual core, which would be a bottleneck even if he had a 4890, it could even be that his motherboard is a bottleneck. I think there needs to be more information, just saying a dual core at 2.67Ghz isn't much to go on.

I agree with your point though, he should try and resolve the problem with other suggestions before resorting to a config.

Edited by Minimoose

I use to have a 6400 c2d with the 8800GTX, both of which are now in my sons PC and the game still runs fine. By changing config settings to adjust the game quality, will only make a difference if the GPU is not up to the job which is this case I believe not to be the case. His CPU is also fine unless something else is taxing it and my bets are on something network side due to the amount of packets being sent and received, as said maybe a poor wireless adapter.

Also if you have an AMD cpu, you might want to get the latest driver from AMD and try turning of Cool'n'Quiet

I might not play in any TF2 leagues but I have played in CS leagues for almost 10 years, the cvars have not changed that much.

Yes but seeing as the admins of the biggest and most popular european league of TF2 allow it (+2 of the next most popular leagues in Europe), I think they are the larger governing power over your opinion of the config being 'dodgy' in TF2 and what do you actually mean by dodgy?

It looks as if it is the E6700 which should be by far good enough. (I didn't know that the pentium dual cores didn't have clocks like 2.67 rather than just 2.6 so I was not sure how good the CPU would actually be, since he just said dual core). Since TF2 is CPU dependent like many source games then it will be the cause of the problems rather than the 8800gts.

What graphics settings are you actually using and at what resolution icefinger? Anyhow, when I had problems I could change my texture settings to low, mid or high and still notice no changes/improvements in framerate, I believe this indicates it is a CPU problem rather than most other things, try it out.

The point I was trying to make was that by dropping the graphics quality won't make any difference because his gpu is not the bottleneck Ok maybe it's just my opinion, but as far as leagues go, you shouldn't be allowed to change any cvars not in the gui, you can't do it on LAN so whats the point in doing it online? You can't moan about being at a disadvantage because your FPS is crap, if the game means that much to you upgrade your pc, as said you don't need to spend thousands to get TF2 running good. You could get a paper round to pay for a GPU and CPU to run TF2 at 60+ fps.

Well I don't mind as long as the leagues allow it, with the config TF2 looks a lot better than it would on low graphics and runs better than it would on those low graphics as well. I'm not planning on spending a lot of money on a computer upgrade just to play TF2 (seeing as games such as COD4/L4D run fine), I have the money to do it, just I would rather save my money for things that are more important, if a few lines of text can help me do that then I'm going to use them :)

  • 4 weeks later...
  Minimoose said:
This is the updated version of the config I'm using (I don't recommend copying everything though, some are settings for hud and net settings which you shouldn't really change if everything is fine in terms of ping/lerp): http://more.pp.fi/tf2/configs/autoexec.cfg

This is the config I use at the moment, it is a edited version of m0re's to suit me, I didn't include net settings since I don't what to mess other people's settings up.

Copy the code into Steam\steamapps\<username>\team fortress 2\tf\cfg\autoexec.cfg

Back up your old autoexec.cfg if you have one and backup your config.cfg (config.cfg is in the same folder as autoexec.cfg)! If you want to revert back to TF2's default settings delete your config.cfg and the autoexec.cfg containing this configuration, if you want to go back to your backup files just replace the config ones with your old ones. (If you didn't have an old autoexec.cfg and you want to revert to your old settings then make sure you remove the config.cfg and autoexec.cfg and just put your backup of config.cfg back in the folder).

Last Warning - config.cfg contains all of your game settings (if you haven't got an autoexec.cfg), so please make sure you back it up, I don't want to be blamed for anything ^^

// MATERIAL vars_
mat_mipmaptextures								"0" // texture quality decreases with distance
mat_antialias									 "0" // disables antialiasing
mat_bufferprimitives							  "1"
mat_clipz										 "1"
mat_colorcorrection							   "0"
mat_compressedtextures							"1"
mat_disable_bloom								 "1"
mat_debugdepthval								 "0" 
mat_debugdepthvalmax							  "0"
mat_filterlightmaps							   "0"
mat_forceaniso									"0"
mat_forcehardwaresync							 "0"
mat_fastspecular								  "1" // Enable/Disable specularity for visual testing.  Will not reload materials and will not affect perf.
mat_hdr_enabled								   "0" // Report if HDR is enabled for debugging
mat_hdr_level									 "0" // Set to 0 for no HDR, 1 for LDR+bloom on HDR maps, and 2 for full HDR on HDR maps.
mat_parallaxmap								   "0"
mat_shadowstate								   "1"
mat_use_compressed_hdr_textures				   "1"
mat_specular									  "0" // Enable/Disable specularity for perf testing.  Will cause a material reload upon change.
mat_trilinear									 "1" // Disables the use of Trilinear mipmapping.
mat_wateroverlaysize							  "0" // Sets the resolution of water distortion. Must be multiple of 8.
mat_aaquality									 "0"
mat_reducefillrate								"1"
mat_softwarelighting							  "0"
mat_autoexposure_max							  "0"
mat_autoexposure_min							  "0"
mat_bloomscale									"0"
mat_disable_fancy_blending						"1"
mat_disable_lightwarp							 "1"
mat_disable_ps_patch							  "1"
mat_envmapsize									"0"
mat_envmaptgasize								 "0"
mat_fastnobump									"1"
mat_fastspecular								  "1"
mat_filterlightmaps							   "0"
mat_force_bloom								   "0"
mat_forcemanagedtextureintohardware			   "0"
mat_framebuffercopyoverlaysize					"0"
mat_leafvis									   "0"
mat_norendering								   "0"
mat_parallaxmap								   "0"

// GIBS
violence_agibs									"0" // Show alien gib entities
violence_hgibs									"0" // Show human gib entities
violence_hblood								   "0" // Draw human blood
violence_ablood								   "0" // Draw alien blood

// R vars
r_avglight										"1" // disables average lighting
r_lightaverage									"1" // disables average lighting
r_lightinterp									 "0" // disables light interpolation
r_unloadlightmaps								 "0" // 0 because of alt tabbing causes black walls
r_drawflecks									  "0"
r_decals										  "0"
r_dynamic										 "0"
r_queued_decals								   "0" // Offloads a bit of decal rendering setup work to the material system queue when enabled.
r_decal_cullsize								  "0" // Decals under this size in pixels are culled // _lower texture quality at distance_
r_drawmodeldecals								 "0"
r_decalstaticprops								"0" // Decal static props test
r_dopixelvisibility							   "0"
r_eyes											"0"
r_fastzreject									 "-1" // Activate/deactivates a fast z-setting algorithm to take advantage of hardware with fast z reject. Use -1 to default to hardware
r_lod											 "2" // _adjusts model quality--set between -5 and 5_
r_occlusion									   "1" // Activate/deactivate the occlusion system.
r_rootlod										 "2" // Root LOD
r_renderoverlayfragment						   "0"
r_spray_lifetime								  "0" // Number of rounds player sprays are visible
r_teeth										   "0"
r_waterdrawreflection							 "0" // Enable water reflection
r_worldlights									 "0" // number of world lights to use per vertex
r_waterforceexpensive							 "0"
r_shadowmaxrendered							   "12" // Max shadows the game will render.
r_shadowrendertotexture						   "1" // Rendered the shadow texture causing it to match the player model.
r_shadows										 "1" // Enables shadows (Change be disabled for additional performance.)
r_3dnow										   "0" // Enable/disable 3DNow code (amd prossulla k?yt? 1)
r_3dsky										   "0" // Enable the rendering of 3d sky boxes
r_sse2											"1" // Enable/disable SSE2 code 
r_ambientboost									"0"
r_ambientmin									  "0.3"
r_ambientfactor								   "1"
r_drawmodelstatsoverlaymin						"0.1"
r_drawmodelstatsoverlaymax						"1.5"
r_ropetranslucent								 "0"
r_drawdetailprops								 "0" 
r_threaded_client_shadow_manager				  "0" 
r_threaded_particles							  "1" 
r_threaded_renderables							"0"
r_queued_decals								   "0"
r_queued_post_processing						  "0"

// CL vars
cl_clearhinthistory							   "1" // Clear memory of client side hints displayed to the player
cl_detailfade									 "0"
cl_drawmonitors								   "0" // Disables the rendering of ingame "monitors" which contain 3d rendered images.
cl_ejectbrass									 "0" // Disables brass ejection
cl_forcepreload								   "1" // Forces the game to load all texture and model information into memory on map load.
cl_muzzleflash_dlight_1st						 "0"
cl_phys_props_max								 "0" // Maximum amount of physics props allowed.
cl_predictweapons								 "1" // perform client side prediction of weapon effects.
cl_predict										"1" // Perform client side prediction.
cl_ragdoll_collide								"0"
cl_ragdoll_fade_time							  "0" // dead models disappear instant
cl_ragdoll_physics_enable						 "0" // Enable/disable ragdoll physics.
cl_showhelp									   "0" // Set to 0 to not show on-screen help
cl_showpluginmessages							 "0" // Allow plugins to display messages to you
cl_show_splashes								  "0"
cl_rumblescale									"0" // Scale sensitivity of rumble effects (0 to 1.0)
cl_debugrumble									"0" // Turn on rumble debugging spew
cl_threaded_bone_setup							"0" 
cl_threaded_client_leaf_system					"0" 

// ROPES
rope_averagelight								 "0" // Makes ropes use average of cubemap lighting instead of max intensity.
rope_collide									  "0" // Collide rope with the world
rope_smooth_enlarge							   "0" // How much to enlarge ropes in screen space for antialiasing effect
rope_smooth									   "0" // Do an antialiasing effect on ropes
rope_subdiv									   "0" // Rope subdivision amount
rope_wind_dist									"0" // Don't use CPU applying small wind gusts to ropes when they're past this distance.

// _Set various settings_
sv_alternateticks								 "0" // If set, server only simulates entities on even numbered ticks.
sv_forcepreload								   "1" // forces preload to help increase performance
jpeg_quality									  "100" // jpeg screenshot quality.
commentary										"0" // Desired commentary mode state.
budget_show_history							   "0" // turn history graph off and on. . good to turn off on low end
flex_smooth									   "1" // Applies smoothing/decay curve to flex animation controller changes.
props_break_max_pieces							"-1" // Maximum prop breakable piece count (-1 = model default)
func_break_max_pieces							 "3"
showhitlocation								   "1"
mp_decals										 "0" // How many player sprays will be shown.
gl_clear										  "0"
muzzleflash_light								 "0"
lod_transitiondist								"0"
overview_mode									 "0" // Sets overview map mode off,small,large: &lt;0|1|2&gt;
adsp_debug										"0"
mp_usehwmmodels								   "-1" 
mp_usehwmvcds									 "-1" 


clear
echo " ___ "
echo "|  _|_ _"
echo "|  _| | |"
echo "|_| |___|"
echo "More's config loaded"
echo "#thematsi @ qnet"

how do you remove the upper left console thing?

monkrenzislookinggood.jpg

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.