Anyone else get awful stuttering when using DX12? Is there a fix or are the games/API just broken?

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by BlindBison, Jan 14, 2020.

  1. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,419
    Likes Received:
    1,146
    GPU:
    RTX 3070
    @Astyanax I don't know what exactly is occurring, but in DX12 for BFV -- and I've tested this a few different times now -- loading in and out of different levels/restarting the PC between even this is still what happens for me.

    In DX12 mode the first play through of a level stutters a metric ton -- but then if I replay those levels, the stutters no longer occur (though I've only tested this in conjunction with the security exclusions/cfg exclusion recommended elsewhere online -- I'm uncertain if that's relevant or not though -- need to do more testing with/without there).

    In DX11, I would agree it seems like it is precompiling, but in DX12 it seems you have to play the level first then everything is compiled for the next time bizarrely.

    Perhaps the issue is something other than shaders, I'm just saying this is what is happening in my own tests with DX12 for that title.
     
  2. S3r1ous

    S3r1ous Member Guru

    Messages:
    152
    Likes Received:
    25
    GPU:
    Sapphire RX 6700
    I can provide direct example, when i was playing Shadow of the Tomb Raider, when you reach that section with the city, with dx11 it lags while dx12 its way smoother
    i suspect before the latest patches (i played it very early on) way dx12 natively culls tons of objects and geometry is incredibly efficient, but only if utilized properly, you can make this work in dx11,
    it just takes more work, i suspect heres where the real difference is,
    is your engines dx11 implementation already super optimized? it will be harder to gain anything significant by quick port,
    but if you are rebuilding from scratch and/or making substancial overhaul (a lot of effort), you will gain a lot from the features you can take advantage of in this api, it has some really sweet native stuff built in that in theory will pass dx11 in its implementation, but it cant be done without massive effort
     
    BlindBison likes this.
  3. janos666

    janos666 Ancient Guru

    Messages:
    1,653
    Likes Received:
    407
    GPU:
    MSI RTX3080 10Gb
    When I started playing Rise Of The Tomb Raider in DX12 (late last year, so last patch in place), I had a few freezes (lasting several seconds) on the first level but it was smooth later (I didn't finish the game though, so there could be more of this coming but I had a few error free hours).
     
  4. rafaelgpc_rj_br

    rafaelgpc_rj_br Guest

    Messages:
    1
    Likes Received:
    0
    GPU:
    RX 5700 XT
    [QUOTE = "EerieEgg, post: 5751683, membro: 273323"] [USER = 273678] [USER = 273678] [USER = 273678] @Astyanax [/ USER] [/ USER] [/ USER] [/ USER] Não sei exatamente o que está ocorrendo, mas não o DX12 para BFV - e teste agora em alguns momentos diferentes - carregamento e saída de diferentes níveis / reiniciar ou PC entre esses itens ainda é o que acontece comigo.

    No modo DX12, a primeira reprodução de um nível gagueja uma tonelada métrica - mas, se eu exibir esses níveis, como as gagas já não ocorrem (embora você só tenha testado isso em conjunto com exclusões de segurança / exclusão de cfg recomendadas em outros locais) ) on-line - - Não tenho certeza se isso é relevante ou não - preciso fazer mais testes com / sem lá).

    No DX11, eu concordo que parece estar pré-compilando, mas o DX12 parece que você precisa executar o nível primeiro, depois tudo é compilado pela próxima vez em que é bizarra.

    Talvez o problema não seja shaders, estou apenas dizendo o que está acontecendo nos meus testes com o DX12 para esse título. [/ CITAÇÕES]
    Amigo, li todos os seus relatórios e enfrenta o mesmo problema. Apenas o meu VGA é AMD, 5700 XT. Observe que o BFV no DX12 carrega os sombreadores durante o jogo, abre o console e monitora o uso da CPU e VGA (PerfOverlay.DrawGraph 1) e durante o jogo há picos mais altos no uso da CPU, onde não há gagueira, mas depois Eu passo pelo mesmo local no mapa, a gagueira está ficando menor, mas ainda existe. Mas foi o que você disse: o DX12 é implementado no BFV, mas o mesmo é o melhor jogo executado no DX12, porque o uso do vga está sempre cheio e o processador está baixo e eu tenho fps acima de 90 jogando no 1440p Ultra. Problema que atualiza o driver vga e o problema pior. Você conseguiu resolver?
    Sinto muito pelo meu inglês, sou brasileiro.

    Tenho R7 2700@3.9Ghz, 16GB de RAM e 5700 XT Sapphire Nitro.
     

  5. n3v3rm1nd

    n3v3rm1nd Active Member

    Messages:
    60
    Likes Received:
    18
    GPU:
    Aus Strix RTX 2070
    Look in any surface that is a mirror. You can see yourself and anything behind you reflecting. Puddles on the ground still reflect wat is above them when you look at the ground. Not possible at all with SSR.
     
    Maddness and BlindBison like this.
  6. lukas_1987_dion

    lukas_1987_dion Master Guru

    Messages:
    702
    Likes Received:
    167
    GPU:
    RTX 4090 Phantom GS
    It's not that bad for me, but I still prefer to use DX11 if I can, seems more polished overall.
     
    BlindBison likes this.
  7. Hardc0rHamburger

    Hardc0rHamburger Member

    Messages:
    34
    Likes Received:
    9
    GPU:
    AMD 6800
    A few things to reduce stutter, 1. Disable exploit protections, 2. Disable defender through registry (https://support.symantec.com/us/en/article.tech246523.html), 3. Limit FPS, 4. Enable Nvidia Low latency mode, 5. disable any unneeded services that may be using resources in the background (ex. sysmain which is cortana search), 6. Tweak the system responsiveness https://www.overclock.net/forum/132...ws-10-system-gaming-responsiveness-tweak.html , 7. Put GPU in msi mode, 8. Switch off the Gamebar and Turn on Game mode in the control panel, 9. Once Windows 10 v2004 comes out, enable Hardware accelerated GPU scheduling. , 10. Try one of the standby list cleaners.
    Also make sure that the GPU and or CPU are not thermal throttling.
     
    Last edited: Jan 29, 2020
    Smough and Kolt like this.
  8. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,419
    Likes Received:
    1,146
    GPU:
    RTX 3070
    @Hardc0rHamburger Ooh, I didn't realize you could permanently disable defender through registry -- will look into doing that later today after work, thanks!

    For #4 though, why would enabling Low Latency mode reduce stutter? iirc, the default flip queue values were there to "help out" the cpu where stuttering often comes from the CPU being "tapped out" according to Digital Foundry's 2080S video at least.

    AMD has also stated within one of their tools that reducing the size of the flip queue can cause more stuttering (I can look up the link for that since I have it documented if you don't believe me there so just ask if you need -- I don't recall the name off the top of my head, sorry).

    Will give what you recommend there a shot, thanks! I have 32 GBs of RAM at this point so for me the Wagnersoft Standbylist cleaner didn't seem to do much, but I may give it another go if it doesn't hurt anything.
     
  9. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,419
    Likes Received:
    1,146
    GPU:
    RTX 3070
    @n3v3rm1nd Thanks for pointing out those examples, I went back and watched some "demos" for the RTX features and it clearly has an effect in some scenes.

    In the moment/during gameplay and on certain maps lacking a lot of reflective surfaces though I "usually" don't see much of a difference unless I'm looking for it.

    ScreenSpaceReflections(SSR) + Cube Maps can actually work pretty well imo considering their large perf increase. Of course those don't reflect as much and aren't as accurate, but my fps is almost halved by the "Medium" RTX reflections in BFV for example (at 1440p). Sadly from the Digital Foundry test I saw, DLSS in BFV is quite poor (though in Control/YounbBlood it's really good they had said) or I would use it to increase perf. I am really happy that DLSS has gotten better since image reconstruction seems pretty awesome if it works well.

    Now, in Minecraft though, that game really looks like it has a trasnformative difference between RTX On and Off -- the older games that are getting it seem to benefit more imo -- perhaps because their lighting is a lot less modern so there's more of a big difference, but I'm just guess there.
     
  10. janos666

    janos666 Ancient Guru

    Messages:
    1,653
    Likes Received:
    407
    GPU:
    MSI RTX3080 10Gb
    In Frostbite3 games, limiting the renderaheadqueue value to 1 can easily cause/increase stutter (partially as a side effect of causing lower fps in general), however it might still feel better overall (in case you already had some stutter anyways), I guess it's because the halts are shorter or at least feel so due to the lower latency (you appear to regain the control sooner).
     
    BlindBison likes this.

  11. Himitsu

    Himitsu Member

    Messages:
    41
    Likes Received:
    0
    GPU:
    GTX 1080 G1 Gaming
    Yeah, I have a 2080 Ti, 7700k 16gb 3000mhz and a lot of stutter in a lot of games... even when it`s not even close to 80% cpu or gpu, I have stutters.... I just think they don`t care about games on pc...

    Fresh Windows install, tested on new builds and old builds, temps are normal (my gigabyte 2080 TI works at 83º, it`s just a bad card, but not a faulty card.....), disabled Windows Defender and some other stuff and nothing....
     
  12. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,419
    Likes Received:
    1,146
    GPU:
    RTX 3070
    @Himitsu Interestingly when I moved from the 8700K over to the Ryzen 3900X, despite overall framerates being roughly comparable it seems (with 3900X having the edge in my experience), I get less stuttering now than I used to at 1440p -- it still happens ofc, especially in BFV as I described above, but generally stuttering has been less frequent in my experience on the 3900X. All of this is just anecdotal of course so take that with a grain of salt since I haven't done any "hard" testing.

    I wonder if it has something to do with Core/Thread count perhaps? I'm just totally speculating there of course and could definitely be wrong, but maybe having 12 cores/24 threads means the game won't stall due to running out of available threads or some such. Again, I could be way off, just a guess.

    For me, Stuttering/hitching is the greatest evil of gaming -- even moreso than input lag which is itself also a great evil in gaming lol. So many games stutter with uncapped fps has been my experience -- Witcher 3 for example stutters like mad at 1440p with uncapped fps and Digital Foundry in their tests basically said it was probably because the game is so CPU limited at 1440p (with the 2080S).

    In hindsight, I wish I'd gone with a 4K monitor because if you're always GPU limited then you shouldn't get CPU-based stuttering as often as I understand it.

    In your case, if you're playing with a 2080 Ti paired with that CPU at anything less than 4K, I definitely would expect you'd get stuttering a lot since you aren't going to be limited by your GPU, but rather your CPU. If nothing else, I would definitely leave the flip queue/max prerendered frames at default in your case so you don't starve your GPU/to help your CPU out.

    You also have 16 gigs of RAM rather than 32, so it may be possible that you should try Wagnersoft's StandbyList Cleaner too -- I don't know if it will help, but it seems that it helped some people at least.

    Link to that DF video where at certain points he talks about stutter and its relation to being CPU vs GPU bound:
     
    Last edited: Jan 28, 2020
  13. Hardc0rHamburger

    Hardc0rHamburger Member

    Messages:
    34
    Likes Received:
    9
    GPU:
    AMD 6800
    The Low Latency setting on ultra limits the GPU usage to something around 98%. If the GPU reaches 99 to 100% the input delay skyrockets and is inconsistent. Also 99% usage causes stuttering and it's the biggest reason why people limit FPS in the first place. If you limit FPS for every game you really don't need Low latency mode on.

    Disabling Defender with reg will reclaim quite a bit of CPU resources. For me Defender always used 5 to 10% of my CPU while gaming.
     
  14. Himitsu

    Himitsu Member

    Messages:
    41
    Likes Received:
    0
    GPU:
    GTX 1080 G1 Gaming
    But my CPU or GPU are not in 100% all the time!

    Cpu is mostly 50% if so!
     
  15. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,419
    Likes Received:
    1,146
    GPU:
    RTX 3070
    @Hardc0rHamburger Oh wow, does it actually limit the GPU load to 98%? I had not heard this previously, only that it reduce the flip queue size and delivered the frame from the CPU "just in time" -- do you have a source for that I could look at? I'm very curious to read more about this if so since it's just not what I'd heard previously there. I will definitely try disabling Defender though -- I was annoyed that you couldn't permanently turn it off from the settings menu so I appreciate the link there to do so with reg files or what not.

    Ideally, it would be great if I could keep the Flip Queue size at the default value then also keep the GPU below ~97% utilization or what have you I would think if the goal is to prevent all types of stuttering then going off what you'd said there. I really would love if they added that GPU "load throttle" as its own setting for this separate from the flip queue size. Notably though I would expect GPU load to decrease if you drop the size of the flip queue since then the GPU won't be as well constantly kept with things to do therefore dropping overall GPU utilization as I understand it. Higher flip queue size normally leads to higher CPU and GPU utilization as I understand it (based off of CaptaPraelium's FFR writeup on the BFV subreddit from aways back on how Flip queue works).

    @Himitsu Are you looking at overall CPU usage? Or individual cores? Some games pretty much only max out one or two cores/threads iirc so overall usage "looks" low since you have a lot of cores/threads sitting round unused by the game itself. This is probably an area someone with more know-how should step in since I'm pretty much just basing my assumption that you could be getting CPU stutter on that DF video and the fact that you're pairing a 2080 Ti with the 7700K (though at what resolution I am unsure -- if you're at 4k, you're probably totally fine with respect to being CPU bound would be my bet). Anyway, if I'm wrong hopefully someone else will reply -- I don't want to mislead anybody if I got something wrong here.
     
    Last edited: Jan 29, 2020

  16. Himitsu

    Himitsu Member

    Messages:
    41
    Likes Received:
    0
    GPU:
    GTX 1080 G1 Gaming
    I play at 4k and 1440p at 60 fps, it can`t be a cpu problem, but I`ll check if each core are going 100%...
     
  17. Hardc0rHamburger

    Hardc0rHamburger Member

    Messages:
    34
    Likes Received:
    9
    GPU:
    AMD 6800
    Battlenonsense on youtube has a good video showing what low latency mode does. You can also see it yourself through afterburner. There are two different low latency modes and I think only the ultra setting limits the flip queue to 1.
     
  18. janos666

    janos666 Ancient Guru

    Messages:
    1,653
    Likes Received:
    407
    GPU:
    MSI RTX3080 10Gb
    On limits it to 1, Ultra aims to virtually eliminate it (rather than preparing 1 in advance, it tries to prepare and send it "just in time"). And it's not a "flip queue" (or presentation queue) but a "pre-render queue" (or render-ahead queue). Opposite sides...
     
    Hardc0rHamburger and BlindBison like this.
  19. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,419
    Likes Received:
    1,146
    GPU:
    RTX 3070
    @janos666 Thanks for your comment, that's helpful -- yeah, sorry about that, I was referring to the pre-render queue as "Flip Queue" since iirc that was the AMD name for it (at least awhile back -- I'm actually not sure if they still refer to it as such today).
     
  20. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,419
    Likes Received:
    1,146
    GPU:
    RTX 3070
    Leaving another comment on this thread since I've noticed what seems like an odd interaction between RTSS and DX12 titles. I have seen this in Battlefield V and in Metro Exodus and I've not seen this occur with DX11 games or Vulkan games.

    Basically for Battlefield V or Metro Exodus if I enable DX11 then set a RTSS cap then simply pan the camera slowly in a scene (campaign) -- if that fps cap is maintained without drops there are no perceivable stutters and it all plays out really smoothly.

    However, if I enable DX12 then repeat that same test with the RTSS fps cap in place then despite a perfectly flat frametime graph, the games occasionally microstutter and it's pretty perceivable tracking an object in the distance as the camera pans for example.

    I'm not sure yet if this is unique to those game's implementations of DX12, but I want to see if this also happens in other titles with a DX11 and DX12 mode. I can't remember if Control even has a DX11 mode and I don't think the new CoD does either, but I may see if this happens for those games too soon just out of curiosity.

    Fortunately for Metro Exodus which I'm playing through now, simply disabling DX12 and using DX11 appears to eliminate this microstuttering when RTSS is used for a framecap.

    EDIT: This behavior does NOT happen in the campaign for the new CoD Modern Warfare (which only has a DX12 mode) so it's probably just an implementation thing.

    In CoD Modern Warfare if I cap fps to a consistently achievable value with RTSS then pan the camera, it does not stutter like metro exodus and bfv do.
     
    Last edited: Jun 5, 2020
    Kamil950 likes this.

Share This Page