Solving Dota 2 Lag / FPS drop / Latency issues / High ping / Spikes
Last update : 08/06/14
There are easy, simple things you can do to dramatically improve lag issues in Dota 2! (in terms of both latency issues and client lag due to lack of hardware power)
1. Setting launch options
This is pretty much telling the computer to do certain things when you start up the game.
In your Steam libary, right click Dota 2 and go to Properties
Click on Launch Properties in the first tab
Write out the instructions you wish to give (separated by space). Effective ones are as follows :
-novid : This doesn’t show the intro video (bald valve guy)
-console : This give access to dev console when you press `(on default)
-nod3d9ex : Disable DX9 Rendering. Improves performance significantly if your GPU is not strong enough. Setting graphic option windowed full screen or exiting to desktop cause freezing in Windows 7/Vista.
-dxlevel 81 : Forces use of DX8.1, significantly increase fps.
-high : Makes sure DOTA 2 is high priority in Windows. This can lead to mouse lag, crashing during game or post game.
-noforcemaccel : Disable Mouse acceleration
cfg files are configuration files that allows you to set all those small little things in game, which actually improves the performance dramatically.
This is valid only for Source Engine games, which includes Dota 2!
There are key configurations that actually have effects in real-life situations
1. Go to Steam\steamapps\common\dota 2 beta\dota\cfg\
2. Create a file named autoexec.cfg
This is where you type out the configurations you want to make.
Key configurations :
mem_level "3" // lowest setting for max fps gpu_level "3" // lowest setting for max fps gpu_mem_level "3" // lowest setting for max fps cpu_level "3" // lowest setting for max fps cl_interp_ratio "2" // Interp modifier. Although there are debates about 1 vs 2, Keep it 2 since we all play Dota 2 in official Valve server. cl_interp "0.05" // cl_interp_ratio / cl_updaterate. Please do edit this if you have altered interpratio or updaterate cl_cmdrate "40" // 40 is maximum for Dota 2 cl_updaterate "40" // 40 is maximum for Dota 2 cl_smooth "0" // Smooth view/eye origin after pridiction errors. cl_smoothtime "0" // Smooth client's view after prdiciton error over this may seconds. 0 for instant update. cl_lagcompensation "1" // Perform server side lag compensation. Keep this 1. cl_pred_optimize "2" // Optimize for not copying data if didnt receive network update. 2 default. cl_threaded_bone_setup "1" // If you have a processor with multiple cores leave this command if not delete it cl_threaded_init "1" // If you have a processor with multiple cores leave this command if not delete it cl_forcepreload "1" // Preload assests on your computer, longer inital loadings, better gameplay. Optimized. rate "80000" // Max bytes/sec host can recieve data from server. This is maximum for Dota 2 r_renderoverlayfragment "0" // increases fps r_threaded_shadow_clip "1" // if you have a processor with multiple cores leave this command if not delete it r_queued_decals "1" // if you have a processor with multiple cores leave this command if not delete it r_queued_post_processing "1" // if you have a processor with multiple cores leave this command if not delete it mat_queue_mode "2" // if you have a processor with multiple cores leave this command if not delete it snd_mix_async "1" // Multithreaded sound sv_forcepreload "1" // Theoretically, this command forces game server to preload the assets for you. May cause longer loading. dota_embers "0"//no animated dota2 background
Copy all the configurations above and paste it in autoexec.cfg!
To keep thing simple, I’ve already optimized the configurations for the general public.
However, please do take your time to read up the configurations and make any necessary changes. I know these can be a bit overwhelming, but please do it for your best performance.
CFG’s possibilites do not end here. You can make the courier boost, pick your items, deliver it to you and tell your teammates that you’re using courier by pressing a single key. Trouble remembering when the Roshan will spawn? Simply use roshan timer script to keep yourself concentrated in game. You can even track fps and ping status real time on your display during game! Settings which are not available in in-game settings are all made in CFGs too.
I’ve made a useful CFG file with all the mentioned features and much more. If you are interested, feel free to check this post for more cfg!
3. Mudfish – This used to be the final solution because it used to be free. Since its no more, I will just replace the topic with VPN service for games
3. VPN for games!
YES! Such thing exists!
Using dedicated VPN servers to connect to games will dramatically improve ping problems, especially when playing in oversea servers.
One of the services is provided by Mudfish – Solving latency issues in games using MUDFISH . I have tried, and it works like wonders!
Another famous alternative is WTFast and BattlePing. Although I have never tried any of those, they have numerous famous reviews and solid user base.
I cannot suggest any other VPN solutions since there hardly is any free VPN for games and I have not tried any of the paid services (not willing to pay for such thing.. yet!).
4. Leatrix Latency Fix
Originally intended for WoW, works for all.
It is easy and simple to install, does not bug up your internet connection, purely does what it is supposed to do.
5. Fixing various problems for Nvidia GPU users!
This is a solution suggested by DRiVER. I have personally tested it for a while, it worked for me. Thank you DRiVER for the solution!
There seems to be some problem for some Nvdia cards (with CUDA) having trouble running games and rendering textures as it is supposed to.
This results in error message “Failed to lock vertex buffer in CMeshDX8::LockVertexBuffer”, bad textures, spikes and other problems that eventually leads the game to crash.
Although the problem has not been recognized by Nvidia or Valve and there seems to be some strong debate ongoing between the community and Nvida. However, this is not a post to fire shots on Nvidia or debate over CUDA, I will just provide the solution which fixed the problem (spikes and “Failed to lock vertex buffer in CMeshDX8::LockVertexBuffer”) for me.
1. Go to Nvidia Control Panel
2. Click on Manage 3D Settings and go to Program Settings
3. Set the program as Dota 2. Find it from the drop box. If there isn’t one, add dota.exe
4. CUDA – GPUs : Off (Uncheck all the GPUs)
5. Threaded Optimization : Off
I hope I was able to help you out solving lag issues! Feel free to contact me for any questions!
How does the computer save Real Numbers?
How does the computer save real numbers?
Lets look at only 2 bytes. (in reality, the computer uses more than 4 bytes to save real numbers.)
The computer uses the following equation to save real numbers
Why use this equation?
setting ‘m’ as numbers before ‘.’ and setting ‘e’ as numbers after ‘.’ is inefficient and takes a lot of memory to save real numbers.
However, using the equation, the computer is able to save real numbers efficiently, no matter how complicated they are.
Still, the computer cannot save wide range of real numbers and cannot save them accurately. It simply saves the data closest possible to the value we want to save. This is called float-point error.
for(i=0; i<100; i++)
printf(“%f “, f);
the following is a good example of float error.
Variable f is declared,
until ‘i’ becomes 100, 0.1 is added to ‘f’
since ‘i++’ is used, ‘f’ is added by 0.1 100 times
The output must be 10, however you will see slight difference in the value. For example,
My SCII Strats [v1]
2bit, 8bit, 10bit, 16bit
What is 2bit, 8bit, 10bit, 16bit?
2 bit (binary) means that only 2 digits are used to express numbers.
it goes same for 8,10,16.
8 bit (octect) uses 8 digits to express numbers,
10 bit (decimal) uses 10 digits to express numbers and same goes for 16(hexadecimal).