Fixed DirectX 11 : the stuttering makes the game unplayable

Discussion in 'Bug Reports' started by Feochadan the Savior, Jan 17, 2024.

  1. Peter_The_great Elder

    I agree.

    My PC:
    7900XT 20GB vRAM
    5600X
    B550
    32GB RAM
    2TB NVME Gen 4

    Everquest is stuttering like mad, even more than before.
    Amex111 likes this.
  2. Kenuven Lorekeeper

    I was able to resolve the issues on my machine. I followed all the possible solutions in this thread and none of them helped at all. The last two changes I made were to turn Mip Mapping on and turn off Luclin models. When I logged in, all my issues were resolved. However, I don't like playing with O.G. models so I turned Luclin models back on and the problems stayed resolved. Below are my ini settings. No hitching, stuttering, or lag at the meat pile.

    eqclient.ini
    Code:
    [Defaults]
    MemoryIni=Resources\Memory512.ini
    MipMapping=TRUE
    UseD3DTextureCompression=TRUE
    UseWASDDefault=1
    GraphicsMemoryModeSwitch=1
    GraphicsMemoryMode=2
    APVOptimizations=TRUE
    Sound=1
    ClientCore0=-1
    TextureQuality=1
    VertexShaders=TRUE
    20PixelShaders=TRUE
    MultiPassLighting=1
    PostEffects=1
    UseLitBatches=TRUE
    ItemPlacementShowOverlay=TRUE
    WindowedMode=TRUE
    Maximized=1
    ChatFontSize=3
    ShowNamesLevel=4
    MousePointerSpeedMod=0
    ShowSpellEffects=1
    MixAhead=8
    TrackPlayers=1
    TrackSortType=NORMAL
    TrackFilterType=0
    Sound44k=0
    HidePlayers=3
    HidePets=3
    HideMercs=3
    AllLuclinPcModelsOff=0
    UseLuclinHumanMale=1
    UseLuclinHumanFemale=1
    UseLuclinBarbarianMale=1
    UseLuclinBarbarianFemale=1
    UseLuclinEruditeMale=1
    UseLuclinEruditeFemale=1
    UseLuclinWoodElfMale=1
    UseLuclinWoodElfFemale=1
    UseLuclinHighElfMale=1
    UseLuclinHighElfFemale=1
    UseLuclinDarkElfMale=1
    UseLuclinDarkElfFemale=1
    UseLuclinHalfElfMale=1
    UseLuclinHalfElfFemale=1
    UseLuclinDwarfMale=1
    UseLuclinDwarfFemale=1
    UseLuclinTrollMale=1
    UseLuclinTrollFemale=1
    UseLuclinOgreMale=1
    UseLuclinOgreFemale=1
    UseLuclinHalflingMale=1
    UseLuclinHalflingFemale=1
    UseLuclinGnomeMale=1
    UseLuclinGnomeFemale=1
    UseLuclinIksarMale=1
    UseLuclinIksarFemale=1
    UseLuclinVahShirMale=1
    UseLuclinVahShirFemale=1
    DefaultChannel=8
    LastCharSel=6
    Music=4
    SoundVolume=5
    BrightnessBias=20.000000
    SpellParticleOpacity=1.000000
    EnvironmentParticleOpacity=1.000000
    ActorParticleOpacity=1.000000
    NoNameApprove=1
    ClaimMessageTimestamp=1706303763
    LeftClickTargetHelp=0
    AutoAFKOn=0
    UseNewUIEngine=0
    WindowedModeXOffset=0
    WindowedModeYOffset=0
    AllowResize=1
    RestoredXOffset=0
    RestoredYOffset=0
    RestoredWidth=800
    RestoredHeight=600
    AlwaysOnTop=0
    CombatMusic=0
    ShowGrass=0
    SkyCubemapSize=4
    SkyUpdateInterval=60000
    TerrainTextureQuality=3
    Bloom=1
    DisableTattoos=1
    Log=1
    Memory512.ini
    Code:
    [MemoryMode2]
    TextureLoadsPerFrame=10
    AnimationLoadsPerFrame=6
    BitmapsPerFrame=20
    DownsamplesPerFrame=1
    DownsampleDistance1=300.0f
    DownsampleDistance2=600.0f
    UpsamplesPerFrame=5
    UpsampleDistance=150.0f
    TimeoutNearDistance=150.0f
    TimeoutNearTime=60000
    TimeoutFarDistance=1200.0f
    TimeoutFarTime=10000
    MaxTextureQuality=0
    MinTextureQuality=2
    TextureDistance1=250
    TextureDistance2=500
    MaxHighQualityTextureMem=1024
    DownsampleTextureMem=256
    Wulerdar and I_Love_My_Bandwidth like this.
  3. Dreamstalker New Member


    I-7 12700 - Asus 4070TI OC - 64GB Ram - WIN 11
    Went from 3-5% per eq client. Now running 7-10% with some high spikes above that. May not sound like much but when trying to play several toons it adds up. My temps have gone up from it as well about 9-10c on average. My GPU only running around 55% utilization with ram around 40%. Could be something entirely unrelated but as I had looked at it a couple weeks back and then glanced at it a few days ago I noticed the big change. The only major change that I can recall was the DX upgrade so was wondering if anyone else had noticed.
  4. I_Love_My_Bandwidth Mercslayer

    Your CPU usage increases align with what I am seeing. My GPU usage is about the same. I will also say that the UI seems to be consuming more CPU than it was previously. Maybe due to some emulation overhead they had to put in place since the UI engine migration is not finished?

    In any case, I expect CPU/GPU resource consumption to decrease as the team gets their arms wrapped around DX11 features. I am hoping for at least two or three engine optimization passes this year.
  5. Lodestar The Undefeated

    Finalized results/testing now being provided, as I don't want to test this for more than a whole week. Daybreak has other DX11 enhancements on test and are working the issues, there will be progress. This testing only addresses hitching and very minimally FPS (mostly just added frames that take the place of hitching), and works equally well on both systems listed below. Read and understand this guide, and you will eliminate your hitching. Or just set BitmapsPerFrame=1, and you will eliminate a majority of your hitching.

    Tested Systems:
    Ultra-high end desktop: 7950X @ 5.9ghz, RTX 4090 @ 3.1ghz, T700 PCIE 5.0 SSD, DDR5 CAS28 max custom timings tREFI 65535 1T
    Comet Lake-era laptop: i7-10750H @ 4.5ghz, RTX 2070, PM991 Samsung SSD, DDR4 CAS21 2T

    Conclusive summarized takeaways (quick version):
    1. The culprit of hitching, that's solvable through the memory.ini process outlined by Cairbrae in prior posts, is due primarily to the BitmapsPerFrame setting. When BitmapsPerFrame is run at default or higher amounts in synchronicity with TextureLoadsPerFrame, one will incur hitching regardless of any other settings.
      1. Therefore, set BitmapsPerFrame=1 to start with.
      2. If you want to eliminate further hitching, set TextureLoadsPerFrame=1.
      3. The only tangible drawback to BitmapsPerFrame=1 is that original PC models and some mounts will take a significantly long duration to load high quality variants of themselves.
      4. FPS impact on these systems is not statistically significant, around -5% delta if any at all.
      5. You can also set MaxHighQualityTextures==DownsampleTextureMem (e.g., if they're both set to 1000 then you'll never have downsampling occur, therefore eliminating any potential for memory thrashing due to downsampling texture quality). This is because the Downsample setting sets the threshold at which downsampling will begin occurring, and since you will likely never exceed 1000MB of GPU memory used, then you will never downsample.
      6. However, be cognizant of GPU memory available on your GPU through task manager. I've seen one instance of EQ consume close to 1GB of GPU memory. Depending on how many instances/boxes you run, you won't be able to increase this setting too high without running out of GPU memory. Good news is that this seems to be an upper threshold setting for memory (memory will gradually increase)--it's not a static forced setting.
    2. Therefore, I can recommend 3 types of settings for people to try:
      1. "I'm-sick-and-tired-of-hitching-nothing-else-matters" (least amount of hitching, potential minor FPS impact):
        1. TextureLoadsPerFrame=1
        2. AnimationLoadsPerFrame=1
        3. BitmapsPerFrame=1
        4. DownsamplesPerFrame=1
        5. DownsampleDistance1=300.0f
        6. DownsampleDistance2=600.0f
        7. UpsamplesPerFrame=1
        8. UpsampleDistance=150.0f
        9. TimeoutNearDistance=150.0f
        10. TimeoutNearTime=60000
        11. TimeoutFarDistance=1200.0f
        12. TimeoutFarTime=10000
        13. MaxTextureQuality=0
        14. MinTextureQuality=2
        15. TextureDistance1=250
        16. TextureDistance2=500
        17. MaxHighQualityTextureMem=512
        18. DownsampleTextureMem=1
      2. "I'm-tired-of-hitching-but-don't-want-to-lose-much-FPS" (decreased hitching, normal FPS):
        1. TextureLoadsPerFrame=10
        2. AnimationLoadsPerFrame=1
        3. BitmapsPerFrame=1
        4. DownsamplesPerFrame=1
        5. DownsampleDistance1=300.0f
        6. DownsampleDistance2=600.0f
        7. UpsamplesPerFrame=1
        8. UpsampleDistance=150.0f
        9. TimeoutNearDistance=150.0f
        10. TimeoutNearTime=60000
        11. TimeoutFarDistance=1200.0f
        12. TimeoutFarTime=10000
        13. MaxTextureQuality=0
        14. MinTextureQuality=2
        15. TextureDistance1=250
        16. TextureDistance2=500
        17. MaxHighQualityTextureMem=512
        18. DownsampleTextureMem=1
      3. High-end system with large GPU memory pool, significantly decreased hitching, maintain all quality (my current settings):
        1. TextureLoadsPerFrame=1
        2. AnimationLoadsPerFrame=1
        3. BitmapsPerFrame=10
        4. DownsamplesPerFrame=1
        5. DownsampleDistance1=300.0f
        6. DownsampleDistance2=600.0f
        7. UpsamplesPerFrame=1
        8. UpsampleDistance=150.0f
        9. TimeoutNearDistance=150.0f
        10. TimeoutNearTime=60000
        11. TimeoutFarDistance=1200.0f
        12. TimeoutFarTime=10000
        13. MaxTextureQuality=0
        14. MinTextureQuality=2
        15. TextureDistance1=250
        16. TextureDistance2=500
        17. MaxHighQualityTextureMem=2000
        18. DownsampleTextureMem=2000
    Extended trial-and-error testing (long version):
    Here's the 6-hour testing methodology in determining all of these results, if anyone cares.
    *Testing on Bristlebane through POK, Guild Lobby, and a detailed Palatial Guild Hall
    *Checked Extreme values on both ends to discern implications to changes of lesser degrees
    *Ensured to control for number of dynamic PC models within frame, NPCs/pet within frame, and consistency of the frame positioning itself
    *Hitching is able to be determined by engaging mouselook and avatar motion at continually consistent speeds
    *Hitching was always stress tested first upon loading into zones, and FPS once hitching was complete thereafter
    *FPS was tracked using FRAPS (non-invasive program with minimal overlay)
    *Hitching: 0% in the below methodology refers to the best non-hitching state obtainable, and 100% refers to the worst.

    § Lagpile POK FPS: All settings at “1” = 18
    § Lagpile POK FPS: All settings at mode 2 defaults = 17
    § POK FPS: All settings at “1” = 140-145
    § POK FPS: All settings at mode 2 defaults = 145-150
    -------------
    // Test Extremes at “1”
    § Set all settings shown below for #1-#5 to “1”
    o Eliminates hitching, minimal FPS decreases if any (-~5.0%). Only artifact from Bitmaps limiting is that pre-luclin models and some mounts don’t load higher-quality versions for extended periods.

    // Test TextureDistances individually (isolate)
    § TextureDistance1 & 2 to default values (“250/500”)
    o No impact to hitching and minimum unfavorable FPS impact (-~5%). Will keep this setting throughout remaining testing to ensure texture quality is not impacted.

    //1. Test TextureLoads individually (isolate)
    § TextureLoadsPerFrame = “10” (Mode Two Default)
    o 2-5% unfavorable increase in hitching, and +5-10% FPS in Guild Lobby
    § TextureLoadsPerFrame = “100”
    o ~10% unfavorable increase in hitching, no increase in FPS beyond setting “10”

    //2. Test Animations individually (isolate)
    § Reset TextureLoadsPerFrame = “1”
    § AnimationLoadsPerFrame= “6” (Mode Two Default)
    o No impact to hitching and FPS
    § Did not test an extreme value due to no FPS/hitching change vs. default value, and given likely unimportance

    //3. Test Bitmaps individually (isolate)
    § Reset AnimationLoadsPerFrame = “1”
    § BitmapsPerFrame = “250” (Mode Two Default)
    o 10-20% unfavorable increase in hitching and FPS inconsistency, no static FPS change
    § BitmapsPerFrame =”1000”
    o 20%-30% unfavorable increase in hitching and additional FPS inconsistency, no static FPS change

    //4. Test Upsamples individually (isolate)
    § Reset BitmapsPerFrame =”1”
    § UpsamplesPerFrame= “5” (Mode Two Default)
    o No impact to hitching and FPS
    § UpsamplesPerFrame = “100”
    o No impact to hitching, -~5% decrease to FPS

    //5. Test DownsampleMem individually (isolate)
    § Reset UpsamplesPerFrame =”1”
    § DownsampleTextureMem = “60” (Mode Two Default)
    o 0-5% unfavorable increase in hitching and FPS inconsistency, no static FPS change
    § DownsampleTextureMem = “500”
    o No impact to hitching and FPS (so default setting “60” default likely closer to 0% impact)

    //// Compounding testing to identify root cause of Mode Two Default’s hitching
    § Reset DownsampleTextureMem = “1” (all isolated variables from above now set to 1)
    § AnimationLoadsPerFrame = “6”(Mode Two Default)
    o No impact to hitching and FPS
    § UpsamplesPerFrame = “5”(Mode Two Default)
    o No impact to hitching and FPS
    § DownsampleTextureMem= “60” (Mode Two Default)
    o 0-5% unfavorable increase in hitching, potential 5-10% FPS increase
    § TextureLoadsPerFrame = “10” (Mode Two Default)
    o 0-5% unfavorable increase in hitching, no static FPS change
    § BitMapsPerFrame = “250” (Mode Two Default)
    o 100% increase in hitching to currently worst levels on DX11 live, no static FPS change
    § Reset AnimationLoadsPerFrame = “1”
    o 100% increase in hitching remained
    § Reset UpsamplesPerFrame= “1”
    o 100% increase in hitching remained
    § Reset DownsampleTextureMem = “1”
    o 100% increase in hitching remained
    § Reset BitmapsPerFrame = “1”
    o Only ~10% hitching remained: Monumental improvement when eliminating default bitmap setting, even when TextureLoadsPerFrame remains at “10” (Mode Two Default)
    § Reset TextureLoadsPerFrame = “1”
    o Hitching returns to (0%), but FPS drop by 5% potentially
    § TextureLoadsPerFrame = “10” (Mode Two Default)
    o 5-10% hitching returns, along with a 5-10% FPS increase
    § TextureLoadsPerFrame = “5”
    o 2-4% hitching, 2-5% FPS increase
    § TextureLoadsPerFrame = “1”
    o 0% hitching, clear improvement, hard to discern +/- on FPS, less than 5% delta
    § AnimationLoadsPerFrame = “6”(Mode Two Default)
    § UpsamplesPerFrame = “5”(Mode Two Default)
    o Potential increase of hitching ~5%, no discernable FPS change
  6. Windance Augur

    Machine: i7 6700k @ 4 Ghz - Nvidia 1070 - 32 GB ram - 1 TB SSD, etc.

    I've reset made various changes to the resources/memory512 and my eqclient.ini in general. I've lost track of how many things I've tweaked over the last week.

    I've been able to get rid of most of the stuttering when first zoning in via the memory512 settings, however:

    I'm having to hide player/pet models when raiding due to low FPS while raiding. I pan the camera with my mouse and find the video lag is still worse since the DX11 patch. Before the patch I could raid with all the models turned on, now I need to hide models/pets or I'll notice a lag spike when I pan the camera through the raid.

    Not looking forward to doing more tweaking this weekend ....
  7. Lodestar The Undefeated

    Unfortunately if you've been able to eliminate hitching as result of memory512.ini process, then you should not expect further FPS improvements from this file too. You likely would have already experienced them or noticed your FPS shift +/- as result of using it.

    You could try increasing TextureLoadsPerFrame=10 and keep Bitmaps at 1, but beyond that the solution will exist elsewhere. DX11 has had a noticable FPS decrease for most players, so hopefully other enhancements from Daybreak will soon help.

    Other very quick adjustments to boost your FPS would be to set UseLitBatches=0 in eqclient.ini, along with reducing clip plane.
    mercury890 likes this.
  8. newc322 Lorekeeper

    FUTURE UPDATE. are you for real? arent you embarrassed at yet again releasing a half cocked "update" that does nothing but break things? seriously is this a joke? graphics issues, severe lag issues, no preemptive warning that the game may now be unplayable for players with older pc's. I and many others have had busted chat channels that wont work for more than 5 minutes for weeks. and this is what we get ? Absolutely unreal.
    Derek likes this.
  9. Scila Augur

    In Cair's defense - I worked with them for a long time yesterday trying to get to the bottom of things. They are reaching out beyond their environment to make things work for players.
    Cairbrae, minimind and Svann2 like this.
  10. Peter_The_great Elder



    You don't want to upload your ini.file so we simply can copy paste yours?

    Thanks!
  11. Lodestar The Undefeated

    No, because using memory.ini accordingly doesn't involve just one .ini file. It's also not a single setup fits all solution.

    Cairbrae provided instructions on using the files, and I provided 3 recommended sets of settings and spent an entire week testing. The good news is you can spend 20 minutes reading to acquire all of that knowledge.
    Windance and Scila like this.
  12. Andarriel Everquest player since 2000

    Yea stuttering is annoying i dont raid rarely group and im getting this in the baz and my housing zone before i ran very smmothly.
  13. Dreamstalker New Member


    Are all of these proposed setting changes are in the MemoryMode2 section only? Want to confirm I am reading it correctly. Thanks!
  14. Lodestar The Undefeated

    Yes. Create a copy of memory.ini, name it memory512.ini. Then only edit section 2 as your baseline in memory.ini, because it already has all the other ideal variables set. You just have to make sure that's also the mode you're calling through your primary eqclient.ini as well ("GraphicsMemoryMode=2").
  15. Randel Flag Elder

    if my in game settings are already set to most memory usage do i still need to add the GMM=2?
  16. Lodestar The Undefeated

    You will already have GMM=2 if you're set to Most memory usage in-game: Those are equivalent. You should already see that in your eqclient.ini file.
    Randel Flag likes this.
  17. Cairbrae Developer

    Thanks again for working with me on this topic. One note on your testing results follows.

    UpsamplesPerFrame can't really be isolated because, in order to up-sample an image, it first must be down-sampled. That test won't measure a difference unless some down-sampling is also happening. These five variables control that resampling behavior:

    BitmapsPerFrame
    DownsamplesPerFrame
    UpsamplesPerFrame
    DownsampleTextureMem
    MaxHighQualityTextureMem

    The main purpose of image resampling is to manage GPU memory usage. If your machine has plenty of GPU memory, like 500 MB per EQ instance running, there isn't a strong need to do this processing. In that case, I recommend throttling resampling entirely with a high threshold, like so:

    DownsampleTextureMem=512
    MaxHighQualityTextureMem=512
    Metanis and Nennius like this.
  18. kevvlar New Member

    You are not alone,,,,,
    Cloud739 and Scila like this.
  19. kevvlar New Member

    I really am not surprised at the number of players with really good systems having problems including me and feel DP/DB isn't taking this serious. I think the 4 developers are hoping the community solves this massive screwup mainly because I'm not seeing any post of progress from them nor a hint of even a revert. I do see many sad players posting their lose/lack of functionality.
    though.
    I imagine it will take the huge first quarter loss of earnings to come out for them to realize they should have listened to their cash cows, kept it in Beta and solved KNOWN issues before going live. REVERT!

    I can barely play, definitely won't pay another red cent, Heck, I cant even perform the basic of functions the ability to Alt tab to desktop or between toons.which many of us relied on when boxing..
    mercury890 and TB_AB like this.
  20. Lodestar The Undefeated


    Thanks Cairbrae, understood. I wanted to isolate each variable regardless of each variable's intention of how it should work, to see how it really works to identify unlikely and unexpected symptoms. Thereafter, that's why I tested all variables in combination with each other, knowing that there are clearly relationships amongst.

    As you explained separately, I also now have my own computer set to halt resampling with DownsampleTextureMem=2000 and MaxHighQualityTextureMem=2000 being set to identical values. I chose these values because in monitoring GPU memory, I saw two individual game instances come just under 1GB each, which is why I wanted to extend beyond 1GB as the threshold to an amount that wouldn't ever be reached of 2GB (given that I have 24GB available anyhow).

    Very excited to see enhancements for DX11 rollout given devs' continued understanding of all dynamics at play far beyond just memory.ini.