Input lag decreasing, dpc latency decreasing.

Discussion in 'Game Tweaks and Modifications' started by turu1337, Mar 5, 2016.

  1. cookieboyeli

    cookieboyeli Master Guru

    Messages:
    304
    Likes Received:
    47
    GPU:
    Gigabyte 1070 @2126
    I've expanded on my previous recommendations here:
    http://forums.guru3d.com/showpost.php?p=5298570&postcount=14
    Check it out, lots of new goodies! :D

    I'm very sorry for abandoning the thread for so long. I suffer with insane levels of insomnia and generally feel like this smiley without the coffee :coffee:. I finally slept after 60 hours awake and happened to see a post about DPC latency earlier. Before I know it the post was done. That's just how I work.

    Also, I was wrong!:
    This is incorrect, I hadn't realized the LatencyMon is ONLY MEASURING DPC LATENCY ON CORES 0 & 1! That was why it appeared as if all the interrupts were going to those cores when they are probably going to all cores. I wonder if there is a sort of "scheduler' that decides which cores handle what DPC/ISR routines or if the program decides. Being able to manage which go where would be EXTREMELY advantageous in the fight against latency! :D



    MORE ON WINDOWS MEMORY MANAGEMENT!


    @johnathonm
    Sorry I dropped the ball on the Memory Management tweaks!

    I've been sitting on this for a while, I don't have enough information to say this is the best configuration, and in fact I cannot find a CLEAR ANSWER THAT MAKES SENSE on how to correctly calculate the IoPageLockLimit value for your amount of RAM, so I've disincluded that tweak from the recommended configuration entirely.

    That means this configuration is UNIVERSAL! You can use it on any PC with any amount of RAM.

    However, for a system running primarily as a server it MAY be better enable large system cache. And on a system where security is paramount it may be better to enable deletion of pagefile on shutdown at the cost of potentially increased shutdown time. (It may increase by almost nothing on a good SSD, but I've also seen some systems with SSD's take 3 or more minutes to shut down after enabling this setting).

    Don't be afraid to try smaller/larger values and experiment a little after reading from the links below!


    Most of the answers I've found on IoPageLockLimit conflict with each other or even themselves!
    Take for example this post by Onna. (Just above #8).

    What he says and the values he posts give us THREE DIFFERENT ANSWERS FOR THE SAME AMOUNT OF RAM!! I've PM'd back and forth with him and due to the language barrier have gotten no further in understanding what the fuc'k kind of logic he's using to set this value.
    If we follow these instructions from him for 16GB: "Your RAM MB* 1024 * 0.125 *2 = ??", we end up with a decimal value of 4194304. We enter this value and select Hexidecimal which turns it into a value of 400000.
    That's what I'm using. - "IoPageLockLimit"=dword:00400000
    I put it on the line below DisablePagingExcutive.

    Yet even though he says his configuration is for 16GB ONLY, his value looks like this:
    Code:
    "IoPageLockLimit"=dword:0040e100
    Then he throws another curve ball at us with even more conflicting information that gives us two more different values for the same amount of RAM RIGHT THERE ON THE SAME LINE: :bang:
    So from this single post has already given us three separate "correct answers" for what value to use if youhave 16GB:
    Code:
    "IoPageLockLimit"=dword:00400000
    "IoPageLockLimit"=dword:0040e100
    "IoPageLockLimit"=dword:7cf83000
    Which one is it Onna? Which one is the REAL value for 16GB? :bang:

    Feel free to quote me and ask him yourself. I give up. He doesn't understand that we don't understand, if he did I'm sure he would just simply write the answers for 4, 8, 16, and 32GB to get it over with. The language barrier makes it impossible. :(

    Here are the links to most of the information I used to help me find the best values for everything else, and get a little more confused with IoPageLockLimit (Yes there are EVEN MORE ways to calculate the value, such as the "Your RAM amount -64MB" rule from Microsoft, but they didn't date the article so it could be from 2006 and entirely inapplicable).

    (On another note, yes I have read plenty of negative things claiming IoPageLockLimit dos not do what we think it does, but these claims are extremely outdated and have no sources or logical reasons as to why this is the case).

    There are a lot of conflicts. My exact recommended configuration doesn't match any of these guides exactly. But that's because no guide I've read has all the best answers.
    http://www.registryrecycler.com/blog/2013/07/enhance-windows-memory-management-through-registry/
    https://technet.microsoft.com/en-us/library/cc951698.aspx
    http://forums.laptopvideo2go.com/topic/23980-registry-database-tweaks-optimizations/

    Anyway, to merge these changes simply create a text file and rename it with a .reg extension.
    This is my latest configuration and I recommend it over the ones posted above!

    Code:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
    "ClearPageFileAtShutdown"=dword:00000000
    "DisablePagingExecutive"=dword:00000001
    "LargeSystemCache"=dword:00000000
    "NonPagedPoolQuota"=dword:00000000
    "NonPagedPoolSize"=dword:00000000
    "PagedPoolQuota"=dword:00000000
    "PagedPoolSize"=dword:00000000
    "PhysicalAddressExtension"=dword:00000001
    "PoolUsageMaximum"=dword:00000060
    "SecondLevelDataCache"=dword:00000c00
    "SessionPoolSize"=dword:00000080
    "SessionViewSize"=dword:00000060
    "SystemPages"=dword:00000000
    
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
    "EnablePrefetcher"=dword:00000003
    "EnableSuperfetch"=dword:00000003
    "SfTracingState"=dword:00000001
    For now if you want to try to use a value for IoPageLockLimit I'm going to say calculate it like this:
    [Your RAM in MB] * 1024 * 0.125 * 2 = [IoPageLockLimit Value in Decimal. Enter into regedit first then select hexidecimal so it converts.]

    Here are the values already converted to hexadecimal for your convenience! Simply copy and paste the corresponding line into the main configuration and merge. No need to even open regedit.

    2GB: "IoPageLockLimit"=dword:0080000
    4GB: "IoPageLockLimit"=dword:00100000
    6GB: "IoPageLockLimit"=dword:00180000
    8GB: "IoPageLockLimit"=dword:00200000
    12GB: "IoPageLockLimit"=dword:00300000
    16GB: "IoPageLockLimit"=dword:00400000
    24GB: "IoPageLockLimit"=dword:00600000
    32GB: "IoPageLockLimit"=dword:00800000
    64GB: "IoPageLockLimit"=dword:01000000
    128GB: "IoPageLockLimit"=dword:02000000

    *NOTE* I may be completely and entirely wrong about this method! Don't worry, Windows sets any incorrect/incompatible values back to default.
     
    Last edited: Jul 1, 2016
  2. venhyor

    venhyor Guest

    Messages:
    62
    Likes Received:
    0
    GPU:
    8GB
    Lookin forward for dat video tut :)
     
  3. johnathonm

    johnathonm Member Guru

    Messages:
    127
    Likes Received:
    3
    GPU:
    Nvidia 2080 ti 12GB
    Can someone verify my math?

    Hey,

    The iopagelocklimit needs to be calulcated in bytes as per the technet article: https://technet.microsoft.com/en-us/library/cc959494.aspx

    So it's a pain in the ass calculation but can be done with http://www.matisse.net/bitcalc/ - I could be wrong but maybe someone can double check the numbers.

    If, I am, I apologize, and I hope these numbers are correct becuse I too have been trying to get this value right for a long time now.

    They dictate the following:

    Amount of physical memory
    Maximum lock limit
    Less than 64 MB - Physical memory minus 7 MB
    64 MB–500 MB - Physical memory minus 16 MB
    512 MB and greater - Physical Memory minus 64 MB

    So 32 GB, since a byte is 1024, would be 34359738368 bytes and you would subtract 64 MB which is 67108864 bytes.

    So the locklimit would be 34292629504 bytes, regedit converts it to cc666666 as hex.

    I have the dumb so my calculations could be wrong. Can someone verify?
     
    Last edited: Jul 16, 2016
  4. Agent-A01

    Agent-A01 Ancient Guru

    Messages:
    11,631
    Likes Received:
    1,124
    GPU:
    4090 FE H20
    Hex should be 0x7FC000000 for 32gb - 64mb
    So put in regedit as 7fc00000 in the box.

    Edit: Didn't they say this no longer works after Windows 2000 SP1 or something?
     
    Last edited: Jul 17, 2016

  5. akbaar

    akbaar Master Guru

    Messages:
    426
    Likes Received:
    55
    GPU:
    ASUS TUFF 3080 12Gb
    Thank you very nice @cookieboyeli
     
  6. johnathonm

    johnathonm Member Guru

    Messages:
    127
    Likes Received:
    3
    GPU:
    Nvidia 2080 ti 12GB
    Well I just had a moment of zen after being like why dis no work. The max value according to MSDN is 0xFFFFFFFF. That makes it impossible for a dword value to address over 32-bit values. That would place the ceiling at 4294967295 bytes.

    Makes sense this is an obsolete entry in this instance aka 2016 :)
     
  7. crankz

    crankz Guest

    Messages:
    18
    Likes Received:
    0
    GPU:
    gtx 960
    are those out yet?
     
  8. fliperpl

    fliperpl Guest

    Messages:
    66
    Likes Received:
    0
    GPU:
    gtx660 gigabyte 2gb OC
    ^ please?
     
  9. AsiJu

    AsiJu Ancient Guru

    Messages:
    8,808
    Likes Received:
    3,369
    GPU:
    KFA2 4070Ti EXG.v2
    Just wanted to drop a post to subscribe to this interesting thread and thank the tweaker Gurus for all the info provided!
     
  10. Hello friend can you make the tutorial plz? thank you
     

  11. bizuka

    bizuka Guest

    Messages:
    6
    Likes Received:
    0
    GPU:
    GTX1060 @ 2130/4800
    man you are a god i'm following this thread, +1 can you make more tutorials? the community thanks you! i registered today on this forum because of you!
     
  12. No update on the tutorials anyone?

    Happy New Year everyone!
     
  13. bnaanafratman88

    bnaanafratman88 Guest

    Messages:
    1
    Likes Received:
    0
    GPU:
    980
    Can u pls finally show / tell us??

    you obv. have HPET disabled in BIOS since the test interval is 976 ms but what else??
     
  14. I'm waiting for answer too but for windows 8.1
     
  15. crankz

    crankz Guest

    Messages:
    18
    Likes Received:
    0
    GPU:
    gtx 960
    Could somebody help me?

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
     

  16. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    LatencyMon can copy its text report into clipboard (look in menu) so that you can paste it here (as a text).

    Which OS?
    Which components - CPU, GPU, audio card, network card, USB 2/3 controllers, SATA controllers?

    I see on pictures that most problematic drivers are network ones.
     
  17. crankz

    crankz Guest

    Messages:
    18
    Likes Received:
    0
    GPU:
    gtx 960
    CPU: Intel Core i5 4460 3.2GHz 6MB

    Memory: Kingston HyperX Savage DDR3 1600MHz 8GB

    Video Card: Gigabyte GTX 960 WF2 2GB

    Motherboard: MSI B85-G43 GAMING

    Mouse: Steelseries Rival

    Monitor: BenQ XL2411Z 144 Hz

    OS: Windows 10

    [​IMG]
     
  18. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    Aaaa, notorious Killer NIC. This brand was culprit begind the same troubles for years. I remember that in the past guys were enable to workaround this problem by deinstalling all Killer`s software and installing only driver (probably modded one). Try to search internet.

    Edit: Or even better solution would be to disable Killer NIC in BIOS and buy decent Intel NIC.
     
    Last edited: Jan 27, 2017
  19. crankz

    crankz Guest

    Messages:
    18
    Likes Received:
    0
    GPU:
    gtx 960
    I dont use the software, installed the driver via inf
    But it should be using that much irqs?
     
  20. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    These are not IRQs. If IRQ number in parentheses is negative then device works in MSI mode without IRQ. You can call such case "a message". Nevertheless you can limit amount of messages device utilizes in MSI mode.

    https://msdn.microsoft.com/en-us/library/windows/hardware/ff544246(v=vs.85).aspx

    Find Killer`s registry key. Then find its "MessageSignaledInterruptProperties" subkey and create/edit property "MessageNumberLimit" with REG_DWORD value 1 (or 2, or 4).
    Or you can disable MSI mode by setting "MSISupported" value to 0.

    Don`t forget to reboot after you edit those registry values.
     
    Last edited: Jan 27, 2017

Share This Page