// Unexplained crashes? Try changing mat_queue_mode to `-1'.

// ----------------------------------------------------------------------------
// Chris' dx9frames config, designed to get you a large performance boost
// v2.016 | 25 January 2013 | fakkelbrigade.eu/chris/configs/
// ----------------------------------------------------------------------------
// Problems or questions? Contact me at #christf2 on QuakeNet.
// ----------------------------------------------------------------------------
// Launch options:
// IMPORTANT: Remove -dxlevel 95 from the launch options after the first launch!
//
// Fullscreen: -dxlevel 95 -full -w WIDTH -h HEIGHT -console -novid -useforcedmp
arms -noforcemaccel -noforcemspd
// Windowed: -dxlevel 95 -sw -w WIDTH -h HEIGHT -console -noborder -novid -use
forcedmparms -noforcemaccel -noforcemspd
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// FPS cap
// ----------------------------------------------------------------------------
// The primary benefit of an FPS cap is to make the FPS more stable, other than
// that, it doesn't do a lot. A moderate, consistent framerate is much more
// desirable than a variable but sometimes high framerate. A common
// misconception is that if any more frames are generated than your monitor can
// display, they are useless. This is wrong -- frames are used for much more
// than mere display, and affect the way the game feels well past your
// refresh rate.
//
// This FPS cap should *always* be set to a value higher than `cl_cmdrate' in
// any case, or the discrepancy between clientside frame generation and frames
// to be sent to the server will no doubt cause you many a headache, especially
// when it comes down to hit registration. Other than that, I recommend
// for everyone to use the value `132' (2*66), as long as you can generally
// keep that value stable without regular drops.
// ----------------------------------------------------------------------------
cl_showfps 1 // Show unsmoothed FPS meter
//fps_max 132 // Commented due to 2011-09-02 update causing jittering when fps i
s capped for some
fps_max 0
// ----------------------------------------------------------------------------
// Net settings
// ----------------------------------------------------------------------------
// Whilst net settings perhaps aren't an integral part of an FPS config, they
// are a fact of life in competitive TF2, and as such, they are included here.
//
// A common question I am asked -- what defines whether a good connection is
// good or bad? Mostly personal preference. If you're not willing to make the
// choice, try both and see which is better for you.
//
// Generally, meeting both of the following conditions would classify it as a
// good connection:
//
// - Ping of <80 to the average server you join
// - Generally no/negligible choke/loss (can be checked with `net_graph')
//
// There's some pretty good documentation on this here:
// http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
//
// Uncomment (remove the `//' from) one of the groups if you want to use them.
// ----------------------------------------------------------------------------
// Good connection
cl_cmdrate 66
cl_interp 0.0152
cl_interp_ratio 1
cl_lagcompensation 1
cl_pred_optimize 2
cl_smooth 0
cl_smoothtime 0.01
cl_updaterate 66
rate 60000
// Bad connection
//cl_cmdrate 40
//cl_interp 0
//cl_interp_ratio 2
//cl_lagcompensation 1
//cl_pred_optimize 2
//cl_smooth 0
//cl_smoothtime 0.01
//cl_updaterate 40
//rate 35000
// ----------------------------------------------------------------------------
// Sprays
// ----------------------------------------------------------------------------
// Bear in mind that these are disabled on war servers due to `sv_pure 2'
// anyway, so if you play competitive TF2, this won't help you.
// ----------------------------------------------------------------------------
// Disable sprays
//cl_playerspraydisable 1
//r_spray_lifetime 0
// Enable sprays -- uncomment this section if you want these settings
cl_playerspraydisable 0
r_spray_lifetime 2
// ----------------------------------------------------------------------------
// Shadows
// ----------------------------------------------------------------------------
// Disable shadows
mat_shadowstate 0
r_shadowmaxrendered 0
r_shadowrendertotexture 0
r_shadows 1
// Enable shadows -- uncomment this section if you want these settings
//mat_shadowstate 1
//r_shadowmaxrendered 11
//r_shadowrendertotexture 1 // Non-blobby shadows. Sometimes turned on by
// competitive TF2 players to see opponents standing
// near the other side of a wall. You may see some
// performance loss from setting this to `1'.
//r_shadows 1
// ----------------------------------------------------------------------------
// Facial features
// ----------------------------------------------------------------------------
// Disable facial features
//r_eyes 0
//r_flex 0
//r_lod 0
//r_rootlod 0
//r_teeth 0
// Enable facial features -- uncomment this section if you want these settings
r_eyes 1
r_flex 1
r_lod 1 // Needs to be set to 1, otherwise they will still be disabled.
r_rootlod 0
r_teeth 1
// ----------------------------------------------------------------------------
// Ragdolls
// ----------------------------------------------------------------------------
// You will have reduced performance on deaths which produce ragdolls.
// ----------------------------------------------------------------------------
// Disable ragdolls
//cl_ragdoll_fade_time 0
//cl_ragdoll_forcefade 1
//cl_ragdoll_physics_enable 0
//g_ragdoll_fadespeed 0
//g_ragdoll_lvfadespeed 0
//ragdoll_sleepaftertime 0
// Enable ragdolls -- uncomment this section if you want these settings
cl_ragdoll_fade_time 15
cl_ragdoll_forcefade 0
cl_ragdoll_physics_enable 1
g_ragdoll_fadespeed 600
g_ragdoll_lvfadespeed 100
ragdoll_sleepaftertime "5.0f"
// ----------------------------------------------------------------------------
// Gibs
// ----------------------------------------------------------------------------
// You will have reduced performance on deaths which produce gibs.
// ----------------------------------------------------------------------------
// Disable gibs
//cl_phys_props_enable 0
//cl_phys_props_max 0
//props_break_max_pieces 0
//r_propsmaxdist 1
//violence_agibs 0
//violence_hgibs 0
// Enable gibs -- uncomment this section if you want these settings
cl_phys_props_enable 1
cl_phys_props_max 128
props_break_max_pieces -1
r_propsmaxdist 1000
violence_agibs 1
violence_hgibs 1
// ----------------------------------------------------------------------------
// Graphical
// ----------------------------------------------------------------------------
// Now we come to the main brunt of the config. You probably don't want to mess
// with this.
// ----------------------------------------------------------------------------
cl_detaildist 0
cl_detailfade 0
cl_drawmonitors 0
cl_ejectbrass 0
cl_jiggle_bone_framerate_cutoff 0 // Turns off jigglebones
cl_new_impact_effects 0
cl_show_splashes 0
func_break_max_pieces 0
glow_outline_effect_enable 1 // Cart glow effect.
lod_transitiondist 0
mat_antialias 0
mat_bumpmap 1 // Controls bumpmapping. Setting this to 0 on dx9 will cause
// a strange `shine' effect to appear on all players.
mat_colcorrection_disableentities 1
mat_colorcorrection 1
mat_disable_bloom 0
mat_disable_fancy_blending 1
mat_disable_lightwarp 1
mat_envmapsize 8
mat_envmaptgasize 8
mat_filterlightmaps 1
mat_filtertextures 1
mat_forceaniso 2
mat_hdr_level 2
mat_max_worldmesh_vertices 512
mat_monitorgamma 2.0 // Controls brightness, try 1.8 to make it brighter or 2.2
// to get it darker. Only works in fullscreen.
mat_motion_blur_enabled 0
mat_parallaxmap 0
mat_picmip -1 // Higher = more mipmapping. Without `sv_cheats 1', you're looking
// at a range from -1 to 2, -1 being the best quality, 2 being the
// worst.
mat_reducefillrate 1
mat_reduceparticles 1
mat_specular 1 // Controls specularity. Setting this to 0 will make ubers
// non-shiny, and will remove some specular effects from in-game
// entities which support it. Setting this to 1 on dx8 will
// result in some strange `fire' textures replacing their
// appropriate counterparts, especially on medals, and certain
// hats.
mat_trilinear 1
mat_viewportscale 1 // Almost no performance gain from viewport upscaling.
mat_viewportupscale 1
mat_wateroverlaysize 1
mp_decals 100 // `9' is a good value to still see the spread pattern from a
// scattergun without any real performance loss.
r_3dsky 0
r_ambientboost 0
r_ambientfactor 0
r_ambientmin 0
r_avglight 0
r_cheapwaterend 1
r_cheapwaterstart 1
r_decals 9
r_decalstaticprops 0
r_decal_cullsize 15
r_drawdetailprops 0
r_drawmodeldecals 0
r_drawflecks 0
r_dynamic 0
r_flashlightdepthtexture 0
r_forcewaterleaf 1
r_lightaverage 0
r_maxnewsamples 2
r_maxsampledist 1
r_propsmaxdist 0
r_renderoverlayfragment 0
r_staticprop_lod 4
r_waterdrawreflection 0
r_waterdrawrefraction 1
r_waterforceexpensive 0
r_waterforcereflectentities 0
rope_averagelight 0
rope_collide 0
rope_rendersolid 0
rope_shake 0
rope_smooth 0
rope_subdiv 0
rope_wind_dist 0
tf_particles_disable_weather 1 // Disable weather effects on maps supporting
// it, for example, setting this to `1'
// disables rain effects on *_sawmill.
tracer_extra 0
violence_ablood 1 // Setting ablood/hblood to 1 actually improves perf usually
violence_hblood 1
// ----------------------------------------------------------------------------
// Misc
// ----------------------------------------------------------------------------
in_usekeyboardsampletime 0
mat_clipz 1 // FX card users should set this to 0
mat_forcehardwaresync 0
mat_levelflush 1
m_rawinput 1 // Turn on raw mouse input. Commented out by default due to
// silly incompatibility with the Xfire overlay. You should use
// it if you can!
mat_vsync 0 // Turn off vsync to avoid nasty I/O latency.
r_fastzreject -1 // Values >1 enable a fast Z rejection algorithm, to be
// performed on the GPU (as opposed to on the CPU). The
// value `-1' autodetects hardware support for this
// feature, which is safer than forcing it.
// ----------------------------------------------------------------------------
// Sound
// ----------------------------------------------------------------------------
// I'd be hesitant to say that you would see a great deal of performance
// improvement from lowering the sound quality, but in my experience as a
// competitive TF2 player, lowering the sound quality makes determination of
// directionality and distance that much easier. You may see a small FPS gain
// with these settings, or you may not, either way will likely have a
// negligible effect on performance.
// ----------------------------------------------------------------------------
//dsp_enhance_stereo 0
//dsp_slow_cpu 1
//snd_async_fullyasync 1 // Having the sound run fully asynchronous has been
// helpful in the past, as it seems to (for whatever
// reason) reduce the number of TDRs experienced during
// gameplay. There's some pretty good information on
// TDRs (nerds only) here:
// http://forums.nvidia.com/index.php?showtopic=65161
//snd_pitchquality 0
//snd_spatialize_roundrobin 1
// ----------------------------------------------------------------------------
// Threading
// ----------------------------------------------------------------------------
mat_queue_mode 2 // mat_queue mode is another frequently asked about cvar, it
// defines the threading method to be used by the material
// system. It has been unstable to use in the past, but
// nowadays it's generally okay.
//
// Here are the possible values:
// -2 legacy default
// -1 default
// 0 synchronous single thread
// 1 queued single thread
// 2 queued multithreaded
//
// If you have problems with the value `2', try setting it to
// `-1'.
//
// As an aside, there are quite a few bugs in the demo system
// that occur when mat_queue_mode is set to a value that is
// not `-1'. If you intend to do work with the demo system,
// maybe you should change this.
cl_threaded_bone_setup 0
cl_threaded_client_leaf_system 0
r_queued_decals 0
r_queued_ropes 1
r_queued_post_processing 0
r_threaded_client_shadow_manager 1
r_threaded_particles 1
r_threaded_renderables 1
// ----------------------------------------------------------------------------
// Misc
// ----------------------------------------------------------------------------
cl_forcepreload 1 // Force preloading
// ----------------------------------------------------------------------------
// Print to console
// ----------------------------------------------------------------------------
echo "-------------------------------------------------------"
echo " Chris' dx9frames config loaded. "
echo "-------------------------------------------------------"
echo "Please direct all comments/queries/whatnot to"
echo "#christf2 on QuakeNet."