Dismiss Notice
This Section is READ ONLY - All Posts Are Archived

Hitching keeps getting worse for me

Discussion in 'Release 57 Feedback' started by Sorthious, Aug 30, 2018.

Thread Status:
Not open for further replies.
  1. Feeyo

    Feeyo Avatar

    Messages:
    1,718
    Likes Received:
    2,524
    Trophy Points:
    113
    Location:
    Aelasar’s Forest
    I fully understand you. You could try using wine with DXVK. :(
     
  2. Barugon

    Barugon Avatar

    Messages:
    14,384
    Likes Received:
    22,551
    Trophy Points:
    153
    Gender:
    Male
    I supported SotA because they have a Linux version. I would rather cut my support and move on than go down the Windows path.
     
    Sorthious and Feeyo like this.
  3. Feeyo

    Feeyo Avatar

    Messages:
    1,718
    Likes Received:
    2,524
    Trophy Points:
    113
    Location:
    Aelasar’s Forest
    So nVidia added a new OpenGL caching feature somewhere in May, that has a garbage clean up thing going on cached bigger then 120MB or 170MB.
    You could try forcing the caching for SotA to its own directory, and forcing the option to not automatically clean (creating stutter/hitches) up the caches.
    Code:
    __GL_SHADER_DISK_CACHE_PATH=~/.nv/SOTA/
    __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1
    
    Or Disable the caching entirely (It is on default):
    Code:
    __GL_SHADER_DISK_CACHE=false
    Could you give that a try @Barugon ?

    I am currently away from the PC and did not have time to play around with it fully.

    Also @Chris :
    Are u guys using any caching on disk with SotA at all? As it seems I can not find anything in my home directory and or SotA directory.
    As if you do not use caching on disk, then I can stop that trail right away with searching.
     
    Barugon likes this.
  4. Barugon

    Barugon Avatar

    Messages:
    14,384
    Likes Received:
    22,551
    Trophy Points:
    153
    Gender:
    Male
    I'll try this tonight.
     
  5. Barugon

    Barugon Avatar

    Messages:
    14,384
    Likes Received:
    22,551
    Trophy Points:
    153
    Gender:
    Male
    @Feeyo
    Do you remember what the environment variable is to get correct keyboard input on Linux is?
     
  6. Alley Oop

    Alley Oop Bug Hunter Bug Moderator

    Messages:
    13,249
    Likes Received:
    17,998
    Trophy Points:
    153
    Feeyo and Barugon like this.
  7. Barugon

    Barugon Avatar

    Messages:
    14,384
    Likes Received:
    22,551
    Trophy Points:
    153
    Gender:
    Male
  8. Feeyo

    Feeyo Avatar

    Messages:
    1,718
    Likes Received:
    2,524
    Trophy Points:
    113
    Location:
    Aelasar’s Forest
    some brain food for the devs:


    While average frame time is the most commonly investigated aspect of game performance, frame spikes (also known as “stutters” or “hitches”) are also very much worth our attention. Very long single frames or groups of frames are most usually caused by spikes in CPU workload. This could be, for example: Gameplay code, physics, loading assets, or “spawning” assets after loading them. When displaying a loading screen these frame spikes aren’t objectionable, but during gameplay they cause disruption to animation and input, severely degrading the user experience.

    Ideally the extra workload caused by loading assets during gameplay should be carefully spread out over multiple frames so the per-frame CPU impact is low, and by using threads on a multi-core CPU the additional work is kept out of the critical path of game simulation and rendering. This should cause even a CPU-bound game to have minimal spikes. Game developers are justifiably spending a lot of effort architecting their engines to minimize these hitches and provide a smooth uninterrupted experience. However, on PC the resource model of the rendering API (such as DirectX) has to be taken into consideration because naïve implementations will cause hitching.

    Measuring spikes
    Before you are able to effectively address stutter in your application, you should implement a way of measuring it. Virtually all games have some way of showing average frame times and Frames Per Second, but measuring frame spikes is just as important. Logging and graphing frame times over time is a useful visualization which will highlight the occurrences of stutter. Once the worst frames have been identified, investigation can begin into what is causing the stutter to take place.

    Another handy tool to visualize the smoothness of the game experience is to graph the frame times using percentiles. A graph of the top 10 percentile of frame times can be tracked during development to keep a finger on the pulse of stutter.

    [​IMG]
    For more information on measuring stutter and graphing percentiles please take a look at Iain Cantlay’s post: Analysing Stutter – Mining More from Percentiles
     
    Sorthious and Barugon like this.
  9. Barugon

    Barugon Avatar

    Messages:
    14,384
    Likes Received:
    22,551
    Trophy Points:
    153
    Gender:
    Male
    Unfortunately, none of that helped. :(
     
  10. Feeyo

    Feeyo Avatar

    Messages:
    1,718
    Likes Received:
    2,524
    Trophy Points:
    113
    Location:
    Aelasar’s Forest
  11. Barugon

    Barugon Avatar

    Messages:
    14,384
    Likes Received:
    22,551
    Trophy Points:
    153
    Gender:
    Male
    I would think that page flipping would be the fastest method of updating the display and as long as they're using triple buffering, there shouldn't be any performance degradation for syncing with vblank. At any rate, it doesn't seem like it would cause hitching.
     
  12. Feeyo

    Feeyo Avatar

    Messages:
    1,718
    Likes Received:
    2,524
    Trophy Points:
    113
    Location:
    Aelasar’s Forest
    Actually as soon as my FPS drops about 10 fps the hitching occurs. It looks like the vsync is trying to catch the huge drop in FPS and creates the hitching. Also the SotA vsync is forced to 30fps on my system with best settings enabled. But the FPS jumps all over the place, pretty unstable. I will do some more testing.
     
    Sorthious, Jaesun and Barugon like this.
  13. Feeyo

    Feeyo Avatar

    Messages:
    1,718
    Likes Received:
    2,524
    Trophy Points:
    113
    Location:
    Aelasar’s Forest
    @Sorthious @Barugon
    You guys wanted to know the difference in release and QA right? Release uses BLIT vsync, QA uses SPLIT vsync.
     
    Sorthious likes this.
  14. Sorthious

    Sorthious Avatar

    Messages:
    1,136
    Likes Received:
    1,361
    Trophy Points:
    113
    So, if this is the case, is there any reason why Split Vsync can't be implemented on Live?
     
    Feeyo likes this.
  15. Feeyo

    Feeyo Avatar

    Messages:
    1,718
    Likes Received:
    2,524
    Trophy Points:
    113
    Location:
    Aelasar’s Forest
    I am not sure which QualitySettings.vSyncCount = ? triggers BLIT or SPLIT. The devs should know I guess. I am still in favor for QualitySettings.vSyncCount = 0; and let us users enable vsync on the drivers.
    They could (if not already) use Application.targetFrameRate to set a target fps to 120 or 60 I guess. As we are not a First person shooter where the highest FPS possible is needed. SotA running Application.targetFrameRate=30 should be fine... Maybe even 60 to make everyone happy.

    Devs please do correct me on any BS I am talking lol.
     
    Last edited: Sep 26, 2018
    Sorthious and Mishikal like this.
Thread Status:
Not open for further replies.