SHARE
TWEET

benchmark.cfg

aveyo Dec 14th, 2016 (edited) 1,371 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ////--------------------------------------------------------------------------------------------------------------------------------
  2. ////
  3. ////     AveYo's DOTA 2 BENCHMARK.CFG v3.1
  4. ////     Previous D-OPTIMIZER V2 cfg engine based script got this job done using clever pseudo schedule / wait cmds
  5. ////     Now Valve finally added exec_async and a suite of useful commands featured in their perftest.cfg
  6. ////     This is a quick mix of the two scripts
  7. ////
  8. ////     1: remove .txt extension and copy this file to \Steam\steamapps\common\dota 2 beta\game\dota\cfg\benchmark.cfg
  9. ////     2: change Dota 2 launch options (-dx11 / -dx9 / -vulkan / -nod3d9ex / -nosound )
  10. ////     3: open Dota 2 and go to Watch - Replays - enter 2844309781 in Search for MatchIDs then download it
  11. ////        credits for the matchid goes to dev.dota user: jstq
  12. ////     4: to start, enter into console:  EXEC_ASYNC BENCHMARK
  13. ////     Zip file including replay available at: https://1drv.ms/f/s!AhH0pZaDBUFEgU6MJbUMugaQZuFw
  14. ////
  15. ////     Demo overlay and spectator menu cannot be closed by script anymore, feel free to do it manually in the Warm up phase
  16. ////     Try not to press any keys or move the mouse in the red Running performance tests phase ( takes ~2 minutes )
  17. ////     Results are pretty printed to console when finished
  18. ////     Can be saved to \dota 2 beta\game\dota\condumpxxx.txt file after entering into console: CONDUMP
  19. ////
  20. ////     v2 Changes:
  21. ////     - initial short warmup now uses normal demo playback
  22. ////     - removed demo_goto usage (caused Source2Bench.csv not writing fps number - it was reported fine in console)
  23. ////     - timedemo now runs uninterrupted for more reliable results
  24. ////     - added particle usage reporting
  25. ////     - improved ui feedback
  26. ////     v2.1 Changes:
  27. ////     - added a better alias filter to facilitate resetting timedemo_start / timedemo_end when done / intrerrupted with FF
  28. ////     - added pimpmuckl's demo alternative
  29. ////     - added a few more stats to the console report (video memory usage, sound cache usage)
  30. ////     v3 Changes:
  31. ////     - adapted Valve's perftest.cfg for more specific / grouped stats and extra machine info
  32. ////     - single replay load with several warm up stages implemented for more accurate and reproducible results
  33. ////     v3.1 Changes:
  34. ////     - split into live test (repeated once) and 7x static tests, overall duration reduced
  35. ////     - added 'Interpreting the static test results' by gdrewb-valve
  36. ////
  37. ////--------------------------------------------------------------------------------------------------------------------------------
  38. //// Last updated: 21:40 UTC FEB 28
  39.  
  40. //// BACKUP CVARS? ( ASSUMING IT SHOULD DO THAT, IT'S ONLY PARTIAL )
  41. push_var_values
  42.  
  43. //// LOADING REPLAY GUI HINT
  44. hideconsole
  45. activategameui
  46. top_bar_message "[Dota 2 Benchmark]  Loading replays/2844309781, please wait a minute.." 0
  47. sleep 5000
  48. gameui_hide
  49.  
  50. //// LOADING REPLAY OPTIONS
  51. sv_log 0
  52. sv_alternateticks 0
  53. dota_spectator_use_broadcaster_stats_panel 0
  54. dota_spectator_mode 0
  55. dota_spectator_hero_index ""
  56. cl_showdemooverlay 0; // still broken, no other command usable to hide demo overlay
  57. demo_usefastgoto 1
  58. @panorama_show_fps 1
  59. //demo_pauseatservertick 104200
  60.  
  61.  
  62. ////  REPLAY TARGET                                                                                 DEFAULT: replays\2844309781
  63. alias #replay_target "playdemo replays\2844309781";  // reused by LIVE TEST 3
  64. #replay_target;
  65.  
  66. ////  REPLAY LOAD TIME - DEFAULT 60 SECONDS SHOULD BE ENOUGH ( COULD USE 30 FOR FASTER SYSTEMS OR 90 FOR SLOWER ONES )
  67. sleep 60000
  68. //sleep 30000
  69. //sleep 90000; // sleep can't be aliased..
  70.  
  71.  
  72. ////--------------------------------------------------------------------------------------------------------------------------------
  73. //// CFG INTERNALS: CONSOLE OUTPUT / CANCEL / D-OPTIMIZER BASED SCHEDULER ENGINE REPLACED BY EXEC_ASYNC SLEEP
  74. ////--------------------------------------------------------------------------------------------------------------------------------
  75. //// CONSOLE ECHO ALTERNATIVE WITH ON-THE-FLY COLORS! - FINALLY VALVE (RE)ADDED ECHOLN SO USE THAT INSTEAD
  76. alias #echo_off "log_flags Console General +donotecho | grep %";alias #echo_on "log_flags Console General -donotecho | grep %";
  77. alias #color_none "log_color General C0C0C000 | grep %"; // invisible color - text can still be selected/copied/pasted
  78. alias #color_default "log_color General 00000000 | grep %;alias #color #color_default";//ip "";// using echoln instead of ip for newline
  79. alias #echo "#color_none;echoln;#color";// basically sets invisible color, prints newline (v2: ip = ) then restores previous color
  80. //// COLOR PRESETS! - WORKS THE SAME WITH BUILT-IN ECHOLN
  81. alias #color_cyan "log_color General 00FFFFFF | grep %;alias #color #color_cyan";
  82. alias #color_yellow "log_color General FFFF00FF | grep %;alias #color #color_yellow";
  83. alias #color_green "log_color General 00FF00FF | grep %;alias #color #color_green";
  84. //// FILTER
  85. alias `~` "";
  86. //// DISABLE ALL CONSOLE SPEW SOURCES FOR A CLEAN SCRIPT OUTPUT ( VALVE PLZ GIFF SINGLE CMD FOR IT )
  87. log_flags Console +DoNotEcho | grep %
  88. log_flags General Developer DeveloperConsole Panel Panorama PanoramaScript VScript VScriptDbg VScriptScripts CustomUI CustomGameCache CustomNetTable +DoNotEcho
  89. log_flags AnimationGraph AnimationSystem AnimGraphManager AnimResource Assert "BitBuf Error" BoneSetup Client "Combat Analyzer" CommandLine D3D Decals Demo DeveloperVerbose DotaGuide DOTAHLTVCamera +DoNotEcho
  90. log_flags DOTAHLTVDirector DOTA_CHAT DownloadManager EmitSound EngineInitialization EngineServiceManager "Entity Dump" "Entity Load Unserialize" "Entity System" Filesystem GameEventSystem GCClient GlobalState HangWatchdog "HLTV Server" Host +DoNotEcho
  91. log_flags HostStateManager IME InputService InputSystem InstantReplay LOADING MaterialSystem MeshSystem ModelCombiner modellib NavMesh NetworkClientService Networking "Networking Reliable" NetworkP2PService NetworkServerService +DoNotEcho
  92. log_flags NetworkService Particles ParticlesLib Physics PostProcessing PostProcessPipeline RenderPipelineDota RenderPipelineVr RenderService RenderSystem ResourceSystem SaveRestore SaveRestoreIO Scaleform "Scaleform IME" ScaleformAS +DoNotEcho
  93. log_flags ScaleformParse ScaleformScript SceneSystem SchemaSystem SchemaSystemUtils Server ServerLog SignonState SndEmitterSystem SndOperators SoundOperatorSystem SoundOpGameSystem SoundSystem SoundSystemLowLevel SpawnGroup SplitPacket +DoNotEcho
  94. log_flags SplitScreen Steam SteamDatagramClient SteamDatagramServer SteamUnifiedMessages ToneMapping ToolGameSimulation TypeManager Vfx VguiCallQueue VolumetricFog VProf VR WeekendTourney Workshop WorldRenderer +DoNotEcho
  95.  
  96. ////--------------------------------------------------------------------------------------------------------------------------------
  97. ////  BENCHMARK MAIN - SYSTEM INFO, THEN 5 x 30 seconds performance tests
  98. ////--------------------------------------------------------------------------------------------------------------------------------
  99.  
  100. //// PERFORMANCE TESTS GUI HINT
  101. activategameui
  102. top_bar_message "[DOTA 2 BENCHMARK]  Running performance tests - ETA: 2 minutes" 1
  103. sleep 5000
  104. gameui_hide
  105.  
  106. //// CONSOLE LOGO
  107. clear
  108. #color_cyan
  109. #echo_on
  110. echoln ;// DispatchAsyncEvent spew in the General channel is so lame.. killing it would also kill echoln.. question is why is set like that?
  111. #echo_on; echoln "  _______             ______    ______    ________   __   ___  ___   __   ________   _______   ______   "; #echo_off
  112. #echo_on; echoln " |   __  \           /      \  |   _  \  |        | |  | |   \/   | |  | |       /  |   ____| |   _  \  "; #echo_off
  113. #echo_on; echoln " |  |  |  |         |  ,~~,  | |  |_)  | `~~|  |~~` |  | |  \  /  | |  | `~~~/  /   |  |__    |  |_)  | "; #echo_off
  114. #echo_on; echoln " |  |  |  | AVEYO`S |  |  |  | |   ___/     |  |    |  | |  |\/|  | |  |    /  /    |   __|   |      /  "; #echo_off
  115. #echo_on; echoln " |  `~~`  |         |  `~~`  | |  |         |  |    |  | |  |  |  | |  |   /  /~~~, |  |____  |  |\  \  "; #echo_off
  116. #echo_on; echoln " |_______/           \______/  |__|         |__|    |__| |__|  |__| |__|  /_______| |_______| |__| \__\ "; #echo_off
  117. echoln
  118. #echo_off
  119. #color_default
  120.  
  121. //// CONSOLE MACHINE INFO
  122. #color_yellow
  123. #echo_on
  124. echoln
  125. echoln -------------------------------------------------------------
  126. echoln [DOTA 2 BENCHMARK]  Machine info
  127. echoln -------------------------------------------------------------
  128. echoln
  129. #echo_off
  130. #color_default
  131. log_flags Console -consoleonly | grep %; // allow sys_info to be logged to file
  132. #echo_on
  133. sys_info
  134. #echo_off
  135. log_flags Console +consoleonly | grep %
  136.  
  137. //// CONSOLE TEST LABEL
  138. #color_yellow
  139. #echo_on
  140. echoln
  141. echoln
  142. echoln -------------------------------------------------------------
  143. echoln [DOTA 2 BENCHMARK]  Running performance tests - ETA: 2 minutes
  144. echoln -------------------------------------------------------------
  145. #echo_off
  146. #color_default
  147.  
  148. //// TEST ACTIVATE ( Valve's proposed method relies on cl_showfps - it should have lower overhead than D-OPTIMIZER V2 based Vprof )
  149. @panorama_show_fps 0
  150. fps_max 999
  151. cl_showfps 2
  152.  
  153. //// LIVE TEST 1. CURRENT USER SETTINGS         [DEF]  D-OPTIMIZER PRESETS:       Potato  Low  OPTIMAL  Med   High  Ultra     @
  154. ////--------------------------------------------------------------------------------------------------------------------------------
  155. //dota_portrait_animate 1;                   //   [1]  Animate Portrait             0      0      1      1      1      1      O
  156. //r_deferred_additive_pass 0;                //~  [1]  Additive Light Pass          0      0      0      1      1      1      M
  157. //r_deferred_simple_light 1;                 //   [1]  World Lighting               0      1      1      1      1      1      L
  158. //r_ssao 0;                                  //   [0]  Ambient Occlusion            0      0      0      0      0      1      U
  159. //r_dota_normal_maps 0;                      //   [0]  Normal Maps                  0      0      0      1      1      1      M
  160. //r_dota_allow_parallax_mapping 0;           //   [0]  Ground Parallax              0      0      0      0      1      1      H
  161. //dota_ambient_creatures 0;                  //   [0]  Ambient Creatures            0      0      0      0      0      1      U
  162. //dota_ambient_cloth 1;                      //   [0]  Ambient Cloth Simulation     0      0      1      1      1      1      M
  163. //r_grass_quality 1;                         //   [0]  Grass                        0      0      1      2      3      4      O
  164.  
  165. //r_dota_fxaa 0;                             //   [0]  Anti-Aliasing                0      0      0      0      1      1      H
  166. //r_deferred_specular 1;                     //   [0]  Specular                     0      0      1      1      1      1      O
  167. //r_deferred_specular_bloom 0;               //   [0]  Specular and Light Blooms    0      0      0      1      1      1      M
  168. //dota_cheap_water 1;                        //   [1]  !High Quality Water          1      1      1      1      0      0      H
  169. //r_deferred_height_fog 1;                   //   [1]  Atmospheric Fog              0      0      1      1      1      1      O
  170. //r_dashboard_render_quality 1;              //   [1]  High Quality Dashboard       -      -      -      -      -      -      -
  171. //r_dota_allow_wind_on_trees 0;              //   [0]  Tree Wind                    0      0      0      0      1      1      H
  172.  
  173. //r_texture_stream_mip_bias 1;               //   [1]  Texture Quality              2      1      1      1      0      0      L
  174. //cl_particle_fallback_base 4;               //~  [2]  Effects Quality              4      4      4      2      0      0      M
  175. //cl_globallight_shadow_mode 2;              //   [2]  Shadow Quality               0      1      2      2      2      3      L
  176. //mat_viewportscale 1.0;                     //   [1]  Render Quality             0.8    0.9    1.0    1.0    1.0    1.0      L
  177. //fps_max 60.0f;                             // [120]  Maximum frames per second   60     60     60    120    144    240      M
  178.  
  179. //// Reset live scene
  180. demo_resume
  181. dota_spectator_mode 3
  182. dota_spectator_hero_index 0
  183. demo_goto 102800 pause
  184. sleep 1000
  185. dota_spectator_hero_index 2
  186. stat_dropdown 0
  187. demo_resume
  188. #color_green
  189. #echo_on
  190. echoln LIVE TEST 1. CURRENT USER SETTINGS
  191. #echo_off
  192. #color_default
  193. //// Let new state settle.
  194. sleep 1000
  195. cl_resetfps
  196. sleep 30000
  197. #echo_on
  198. cl_printfps
  199. #echo_off
  200.  
  201. //// LIVE TEST 2. CURRENT USER SETTINGS
  202. //// Reset live scene
  203. demo_resume
  204. dota_spectator_mode 3
  205. dota_spectator_hero_index 0
  206. demo_goto 102800 pause
  207. sleep 1000
  208. dota_spectator_hero_index 2
  209. stat_dropdown 0
  210. demo_resume
  211. #color_green
  212. #echo_on
  213. echoln LIVE TEST 2. CURRENT USER SETTINGS
  214. #echo_off
  215. #color_default
  216. //// Let new state settle.
  217. sleep 1000
  218. cl_resetfps
  219. sleep 30000
  220. #echo_on
  221. cl_printfps
  222. #echo_off
  223.  
  224. //// STATIC SCENE SETUP
  225. demo_resume; demo_pauseatservertick 104081; demo_goto 102800
  226. dota_spectator_mode 3
  227. dota_spectator_hero_index 0
  228. sleep 1000
  229. dota_spectator_hero_index 5
  230. stat_dropdown 0
  231. sleep 30000
  232.  
  233. //// STATIC TEST 1. CURRENT USER SETTINGS
  234. #color_yellow
  235. #echo_on
  236. echoln
  237. echoln STATIC TEST 1. CURRENT USER SETTINGS
  238. #echo_off
  239. #color_default
  240. //// Let new state settle.
  241. sleep 1000
  242. cl_resetfps
  243. sleep 5000
  244. #echo_on
  245. cl_printfps
  246. #echo_off
  247.  
  248. //// STATIC TEST 2. BASELINE MEASUREMENT
  249. mat_viewportscale 1
  250. cl_globallight_shadow_mode 2
  251. dota_cheap_water 0
  252. r_drawparticles 1
  253. cl_particle_simulate 1
  254. r_drawblankworld 0
  255. r_drawpanorama 1
  256. #color_yellow
  257. #echo_on
  258. echoln STATIC TEST 2. BASELINE MEASUREMENT
  259. #echo_off
  260. #color_default
  261. //// Let new state settle.
  262. sleep 1000
  263. cl_resetfps
  264. sleep 5000
  265. #echo_on
  266. cl_printfps
  267. #echo_off
  268.  
  269. //// STATIC TEST 3. HALF RESOLUTION
  270. mat_viewportscale 0.5;//1
  271. cl_globallight_shadow_mode 2
  272. dota_cheap_water 0
  273. r_drawparticles 1
  274. cl_particle_simulate 1
  275. r_drawblankworld 0
  276. r_drawpanorama 1
  277. #color_yellow
  278. #echo_on
  279. echoln STATIC TEST 3. HALF RESOLUTION
  280. #echo_off
  281. #color_default
  282. //// Let new state settle.
  283. sleep 1000
  284. cl_resetfps
  285. sleep 5000
  286. #echo_on
  287. cl_printfps
  288. #echo_off
  289.  
  290. //// STATIC TEST 4. REDUCED DRAWING
  291. mat_viewportscale 1
  292. cl_globallight_shadow_mode 1;//2
  293. dota_cheap_water 1;//0
  294. r_drawparticles 1
  295. cl_particle_simulate 1
  296. r_drawblankworld 0
  297. r_drawpanorama 1
  298. #color_yellow
  299. #echo_on
  300. echoln STATIC TEST 4. REDUCED DRAWING
  301. #echo_off
  302. #color_default
  303. //// Let new state settle.
  304. sleep 1000
  305. cl_resetfps
  306. sleep 5000
  307. #echo_on
  308. cl_printfps
  309. #echo_off
  310.  
  311. //// STATIC TEST 5. PARTICLES DISABLED
  312. mat_viewportscale 1
  313. cl_globallight_shadow_mode 2
  314. dota_cheap_water 0
  315. r_drawparticles 0;//1
  316. cl_particle_simulate 0;//1
  317. r_drawblankworld 0
  318. r_drawpanorama 1
  319. #color_yellow
  320. #echo_on
  321. echoln STATIC TEST 5. PARTICLES DISABLED
  322. #echo_off
  323. #color_default
  324. //// Let new state settle.
  325. sleep 1000
  326. cl_resetfps
  327. sleep 5000
  328. #echo_on
  329. cl_printfps
  330. #echo_off
  331.  
  332. //// STATIC TEST 6. UI ONLY
  333. mat_viewportscale 1
  334. cl_globallight_shadow_mode 2
  335. dota_cheap_water 0
  336. r_drawparticles 1
  337. cl_particle_simulate 1
  338. r_drawblankworld 1;//0
  339. r_drawpanorama 1
  340. #color_yellow
  341. #echo_on
  342. echoln STATIC TEST 6. UI ONLY
  343. #echo_off
  344. #color_default
  345. //// Let new state settle.
  346. sleep 1000
  347. cl_resetfps
  348. sleep 5000
  349. #echo_on
  350. cl_printfps
  351. #echo_off
  352.  
  353. //// STATIC TEST 7. GAME ONLY
  354. mat_viewportscale 1
  355. cl_globallight_shadow_mode 2
  356. dota_cheap_water 0
  357. r_drawparticles 1
  358. cl_particle_simulate 1
  359. r_drawblankworld 0
  360. r_drawpanorama 0;//1
  361. #color_yellow
  362. #echo_on
  363. echoln STATIC TEST 7. GAME ONLY
  364. #echo_off
  365. #color_default
  366. //// Let new state settle.
  367. sleep 1000
  368. cl_resetfps
  369. sleep 5000
  370. #echo_on
  371. cl_printfps
  372. #echo_off
  373. r_drawpanorama 1
  374.  
  375. //// STATIC TESTS HELP
  376. #color_cyan
  377. #echo_on; echoln; echoln Interpreting the static test results (gdrewb-valve); #echo_off
  378. #echo_on; echoln * If HALF RESOLUTION FPS is significantly higher than BASELINE FPS you should reduce the Game Screen Render Quality; #echo_off
  379. #echo_on; echoln * If REDUCED DRAWING FPS is significantly higher than BASELINE FPS you should turn off High Quality Water and set Shadow Quality to Med/Off; #echo_off
  380. #echo_on; echoln * If PARTICLES DISABLED FPS is higher than BASELINE FPS you should drop Effects Quality; #echo_off
  381. #echo_on; echoln * If GAME ONLY FPS is significantly higher than BASELINE FPS you should turn off High Quality UI; #echo_off
  382. #color_default
  383.  
  384. //// TEST FINISHED
  385. #color_yellow
  386. #echo_on
  387. echoln
  388. echoln -------------------------------------------------------------
  389. echoln [DOTA 2 BENCHMARK]  Finished!
  390. echoln -------------------------------------------------------------
  391. #color_default
  392. grep . To save results into ; #color_cyan; grep . \dota 2 beta\game\dota\condumpxxx.txt ; #color_default;
  393. grep . file, enter ; #color_green; grep . CONDUMP ; #color_default; echoln; // multiple colors on a single line
  394. grep . To run benchmark again, enter short alias: ; #color_green; grep . BM; #color_default;
  395. echoln
  396. #echo_off
  397.  
  398. alias BM "exec_async benchmark.cfg"
  399. top_bar_message "[DOTA 2 BENCHMARK]  Finished!" 0
  400. cl_showfps 0
  401. dota_spectator_mode 0
  402. dota_spectator_hero_index ""
  403. VT0; // Undo Video Tweaks
  404. disconnect
  405. sleep 5000
  406. top_bar_message 0
  407.  
  408. //// RESTORE CONSOLE SPEW
  409. log_flags Console +DoNotEcho | grep %
  410. log_flags Developer DeveloperConsole Panel Panorama PanoramaScript VScript VScriptDbg VScriptScripts CustomUI CustomGameCache CustomNetTable -DoNotEcho
  411. log_flags AnimationGraph AnimationSystem AnimGraphManager AnimResource Assert "BitBuf Error" BoneSetup Client "Combat Analyzer" CommandLine D3D Decals Demo DeveloperVerbose DotaGuide DOTAHLTVCamera -DoNotEcho
  412. log_flags DOTAHLTVDirector DOTA_CHAT DownloadManager EmitSound EngineInitialization EngineServiceManager "Entity Dump" "Entity Load Unserialize" "Entity System" Filesystem GameEventSystem GCClient GlobalState HangWatchdog "HLTV Server" Host -DoNotEcho
  413. log_flags HostStateManager IME InputService InputSystem InstantReplay LOADING MaterialSystem MeshSystem ModelCombiner modellib NavMesh NetworkClientService Networking "Networking Reliable" NetworkP2PService NetworkServerService -DoNotEcho
  414. log_flags NetworkService Particles ParticlesLib Physics PostProcessing PostProcessPipeline RenderPipelineDota RenderPipelineVr RenderService RenderSystem ResourceSystem SaveRestore SaveRestoreIO Scaleform "Scaleform IME" ScaleformAS -DoNotEcho
  415. log_flags ScaleformParse ScaleformScript SceneSystem SchemaSystem SchemaSystemUtils Server ServerLog SignonState SndEmitterSystem SndOperators SoundOperatorSystem SoundOpGameSystem SoundSystem SoundSystemLowLevel SpawnGroup SplitPacket -DoNotEcho
  416. log_flags SplitScreen Steam SteamDatagramClient SteamDatagramServer SteamUnifiedMessages ToneMapping ToolGameSimulation TypeManager Vfx VguiCallQueue VolumetricFog VProf VR WeekendTourney Workshop WorldRenderer -DoNotEcho
  417. log_flags ServerLog Workshop +DoNotEcho
  418. log_flags Console -DoNotEcho | grep %
  419.  
  420. //// RESTORE CVARS? ( ASSUMING IT SHOULD DO THAT, IT'S ONLY PARTIAL )
  421. pop_var_values
  422.  
  423. //// SHOW CONSOLE
  424. showconsole
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top