J95 Posted March 4, 2013 Share Posted March 4, 2013 Timer Resolution (NtSetTimerResolution)interferes with in-game sleep functions, in most cases speeding up CPU frame preparation process for the GPU. Crysis 3 +6-9 fps - FXAA - Highest settings - VSync disabled - Motion Blur off - GTX 680M. Sets timer resolution to 0.500 milliseconds. Thanks to mbk1969 Guru3D.com Forums.TimerResolution_2.exe enhanced + batch file (taskkill) compiled C# source myself using .NET csc.exe. Console app, run .exe and check current max resolution (console window), minimize button.Hidden start : create TimerResolution_2.exe shortcut>right click>properties>select run minimized>apply>pin shortcut to taskbar (select icon).Current 5000 = 0.500 ms.<img src="http://imageshack.us/a/img401/7189/timerresolution2execons.jpg" alt="Image Hosted by ImageShack.us"/>Killing it w/ task manager or .bat restores defaults. @echo offtaskkill /f /IM TimerResolution_2.exe Pin batch file to toolbar : create .bat (I) shortcut>create folder>name it "batch_folder">copy .bat shortcut>properties>select run minimized>change icon>select icon>apply>right click taskbar>unlock taskbar>toolbars>new toolbar>select batch_folder>right click taskbar set no text/title>lock taskbar. using System;using System.Diagnostics;using System.Runtime.InteropServices;namespace SetTimerRes{ class TimerRes { [DllImport("ntdll.dll", SetLastError=true)] public static extern int NtSetTimerResolution(uint DesiredResolution, bool SetResolution, out uint CurrentResolution); [DllImport("ntdll.dll", SetLastError=true)] static extern int NtQueryTimerResolution(out uint MinimumResolution, out uint MaximumResolution, out uint ActualResolution); static void Main(string[] args) { var tb = new Taskbar(); tb.DeleteTab(); uint CurrentResolution = 0; uint MininumResolution = 0; uint MaximumResolution = 0; NtQueryTimerResolution(out MininumResolution, out MaximumResolution, out CurrentResolution); bool SetResolution = true; uint DesiredResolution = MaximumResolution; NtSetTimerResolution(DesiredResolution, SetResolution, out CurrentResolution); Console.WriteLine("Minimum={0}; Maximum={1}; Current={2}", MininumResolution, MaximumResolution, CurrentResolution); Console.WriteLine("Press <Enter> to exit..."); Console.ReadLine(); } } class Taskbar { public void AddTab() { GetTaskbarList().AddTab(GetMainWindowHandle()); } public void DeleteTab() { GetTaskbarList().DeleteTab(GetMainWindowHandle()); } ITaskbarList GetTaskbarList() { var taskbarList = (ITaskbarList)new CoTaskbarList(); taskbarList.HrInit(); return taskbarList; } IntPtr GetMainWindowHandle() { return Process.GetCurrentProcess().MainWindowHandle; } [ComImport] [Guid("56fdf344-fd6d-11d0-958a-006097c9a090")] class CoTaskbarList { } [ComImport, Guid("56fdf342-fd6d-11d0-958a-006097c9a090"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface ITaskbarList { /// <summary> /// Initializes the taskbar list object. This method must be called before any other ITaskbarList methods can be called. /// </summary> void HrInit(); /// <summary> /// Adds an item to the taskbar. /// </summary> /// <param name="hWnd">A handle to the window to be added to the taskbar.</param> void AddTab([In] IntPtr hWnd); /// <summary> /// Deletes an item from the taskbar. /// </summary> /// <param name="hWnd">A handle to the window to be deleted from the taskbar.</param> void DeleteTab([In] IntPtr hWnd); /// <summary> /// Activates an item on the taskbar. The window is not actually activated; the window's item on the taskbar is merely displayed as active. /// </summary> /// <param name="hWnd">A handle to the window on the taskbar to be displayed as active.</param> void ActivateTab([In] IntPtr hWnd); /// <summary> /// Marks a taskbar item as active but does not visually activate it. /// </summary> /// <param name="hWnd">A handle to the window to be marked as active.</param> void SetActiveAlt([In] IntPtr hWnd); } }} updated - without cycleupdated - without thread sleepupdated - with info outputC# source Guru3D.com Forums - View Single Post - Another look at HPET High Precision Event Timer TimerResolution_2.zip TimerResolution_3.zip Quote Link to comment Share on other sites More sharing options...
albertovasilon Posted March 11, 2013 Share Posted March 11, 2013 something to world of warcraft mist of pandaria? i have bottleneck and 50% gpu load Quote Link to comment Share on other sites More sharing options...
J95 Posted March 11, 2013 Author Share Posted March 11, 2013 something to world of warcraft mist of pandaria? i have bottleneck and 50% gpu loadTry it out. Run TimerResolution.exe>minimize console window. Quote Link to comment Share on other sites More sharing options...
J95 Posted April 3, 2013 Author Share Posted April 3, 2013 TimerResolution_3 Quote Link to comment Share on other sites More sharing options...
Khenglish Posted April 4, 2013 Share Posted April 4, 2013 I get the following when running version 3:http://i.imgur.com/m2mcRli.pngNot sure if that means it's working or not. I have not seen any fps improvements. Quote Link to comment Share on other sites More sharing options...
J95 Posted April 4, 2013 Author Share Posted April 4, 2013 Crysis 3 default 10 ms this sets to 0.500 ms run and minimize it; closing or pressing enter restores defaults.Crysis 3 10.001 ms3DMark11 1.001 msDragon Chromium 1.001 msMonitor CPU usage in demanding scenes>check fps, alt/tab taskkill (batch file) and compare results. Quote Link to comment Share on other sites More sharing options...
weloxcris Posted May 19, 2013 Share Posted May 19, 2013 works for me + 5-10 fps Quote Link to comment Share on other sites More sharing options...
J95 Posted May 23, 2013 Author Share Posted May 23, 2013 Compiled it yourself ? Crysis 3 latest patch ? Quote Link to comment Share on other sites More sharing options...
Shrimpy266 Posted June 2, 2013 Share Posted June 2, 2013 How much of an improvement are people getting? Quote Link to comment Share on other sites More sharing options...
Coca Posted June 17, 2013 Share Posted June 17, 2013 6-7 fps in Crysis 3 for example, in other applications, the effect is smaller because they expose timer resolution almost max. Quote Link to comment Share on other sites More sharing options...
anavar Posted April 28, 2014 Share Posted April 28, 2014 i gain +3 fps using m670gtx.. thanks Quote Link to comment Share on other sites More sharing options...
R0st0ck Posted August 16, 2014 Share Posted August 16, 2014 will that work also with other games? that would be awesome Quote Link to comment Share on other sites More sharing options...
Gorgiaxx Posted August 17, 2014 Share Posted August 17, 2014 works for me + 20-30 fps Quote Link to comment Share on other sites More sharing options...
Themperror Posted September 16, 2014 Share Posted September 16, 2014 I'd say probably yes, but only in games were the timer hasn't been set lower already, I would assume Unreal Engine already does this to max performance so that would rule out and Unreal Engine games (Though this is only a thought, not a fact). Feel free to try though, It won't break anything and you could report this back to us. See it as a little experiment Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.