Maintenance for the week of December 16:
• PC/Mac: No maintenance – December 16
• NA megaservers for patch maintenance – December 17, 4:00AM EST (9:00 UTC) - 12:00PM EST (17:00 UTC)
• EU megaservers for patch maintenance – December 17, 9:00 UTC (4:00AM EST) - 17:00 UTC (12:00PM EST)
The issues on the North American megaservers have been resolved at this time. If you continue to experience difficulties at login, please restart your client. Thank you for your patience!

Shader cache file

relentless_turnip
relentless_turnip
✭✭✭✭✭
✭✭✭
A bit of a request really from who ever may be able to fulfil it.

We all know that deleting the the shader cache file every now and again improves performance. Mainly frame rate dips etc...

Would it be possible for the developer or someone decent enough at mods to make it delete when you close the game?
Or if such a thing already exists could I get a link?

Cheers!
  • zyk
    zyk
    ✭✭✭✭✭
    ✭✭✭✭✭
    Deleting it after every play session is more likely to hurt your performance than help. It's typically something done for specific troubleshooting rather than ongoing maintenance.
  • relentless_turnip
    relentless_turnip
    ✭✭✭✭✭
    ✭✭✭
    zyk wrote: »
    Deleting it after every play session is more likely to hurt your performance than help. It's typically something done for specific troubleshooting rather than ongoing maintenance.

    How does it hurt performance doing it regularly? Excuse my ignorance. I understand how it helps by removing an excess of redundant data. Just not how that could be harmful.
  • zyk
    zyk
    ✭✭✭✭✭
    ✭✭✭✭✭
    Well, I don't know exactly how the ESO shader cache works, but after deleting it, your next ESO login will be delayed as the main shaders are processed. The game may do all processing then, but more likely it processes a list of shaders marked as global and processes the rest as they are encountered. Each new shader encountered will incur a processing cost that may be experienced as stutter, but you'll probably only notice it when it has a certain number to process at once.

    Shaders are small programs that are compiled for your GPU. They aren't precompiled by ZOS because they have to match your hardware and settings. They are saved in a cache so your GPU doesn't have to constantly compile them before they are executed.

    All cache systems may be affected by bugs and corruption, so a standard troubleshooting step is to delete them.

    edit: thanks to eKsDee for correction
    Edited by zyk on May 8, 2020 3:31PM
  • Sarousse
    Sarousse
    ✭✭✭✭✭
    Sometime ago, someone did a lot of testing on this file : https://alithlegion.com/index.php/forum/General-Help/63582-guide-tweaking-eso-performance-graphics-stutter

    To summarize, there is a cap (around 20+ Mb) that make performance a lot worse when the file is larger than this cap.

    Using ultra shadows increase a LOT this file.

    Read the article, it's full of tips to keep high FPS in most situations.
  • relentless_turnip
    relentless_turnip
    ✭✭✭✭✭
    ✭✭✭
    Sarousse wrote: »
    Sometime ago, someone did a lot of testing on this file : https://alithlegion.com/index.php/forum/General-Help/63582-guide-tweaking-eso-performance-graphics-stutter

    To summarize, there is a cap (around 20+ Mb) that make performance a lot worse when the file is larger than this cap.

    Using ultra shadows increase a LOT this file.

    Read the article, it's full of tips to keep high FPS in most situations.

    Thanks for this😁.

    I have adjusted my settings.ini file before, I have a pretty decent set up so generally don't have any fps issues apart from when the shader file gets too big.

    It would be good if it the cooked file would reset at say 19mbs? I don't know, but it does seem silly that we have to delete a game file every now and again if they know this is a fix.
  • eKsDee
    eKsDee
    ✭✭✭✭✭
    As already mentioned, deleting the shader cache will likely make performance worse, namely in the form of longer load times, and stuttering during or a delay in assets loading while the material shaders are compiled.

    Program compilation can be a pretty complicated process, and shader compilation is no different, often being fairly slow, especially due to the nature of how shaders are loaded, compiled and attached to a shader program within the rendering pipeline (see below).

    This is why graphics drivers often provide a shader cache for applications, so that compilation only needs to happen once, provided the cache is valid (an update may overwrite a shader's source code, which invalidates the cache, forcing the graphics driver to rebuild the entire cache -- this is why it often takes a while to load into a character immediately after a major update happens to ESO, the shader cache is being rebuilt).
    zyk wrote: »
    Shaders are small programs that are compiled by your GPU. They aren't precompiled by ZOS because they have to match your hardware and settings. They are saved in a cache so your GPU doesn't have to constantly compile them before they are executed.

    Shaders are actually not compiled by the GPU, rather by the graphics driver for your GPU. A GPU would make a terrible compiler for any language, just due to how GPU hardware works, and so the CPU often compiles shaders on-the-fly as a shader program is built and linked (a shader program is basically a collection of shaders that are treated as a single object, making it way easier to manage many shader programs), using calls to functions provided by the used API (DirectX, OpenGL, Vulkan, Metal, etc).
  • relentless_turnip
    relentless_turnip
    ✭✭✭✭✭
    ✭✭✭
    eKsDee wrote: »
    As already mentioned, deleting the shader cache will likely make performance worse, namely in the form of longer load times, and stuttering during or a delay in assets loading while the material shaders are compiled.

    Program compilation can be a pretty complicated process, and shader compilation is no different, often being fairly slow, especially due to the nature of how shaders are loaded, compiled and attached to a shader program within the rendering pipeline (see below).

    This is why graphics drivers often provide a shader cache for applications, so that compilation only needs to happen once, provided the cache is valid (an update may overwrite a shader's source code, which invalidates the cache, forcing the graphics driver to rebuild the entire cache -- this is why it often takes a while to load into a character immediately after a major update happens to ESO, the shader cache is being rebuilt).
    zyk wrote: »
    Shaders are small programs that are compiled by your GPU. They aren't precompiled by ZOS because they have to match your hardware and settings. They are saved in a cache so your GPU doesn't have to constantly compile them before they are executed.

    Shaders are actually not compiled by the GPU, rather by the graphics driver for your GPU. A GPU would make a terrible compiler for any language, just due to how GPU hardware works, and so the CPU often compiles shaders on-the-fly as a shader program is built and linked (a shader program is basically a collection of shaders that are treated as a single object, making it way easier to manage many shader programs), using calls to functions provided by the used API (DirectX, OpenGL, Vulkan, Metal, etc).

    So when I get stuttering the fix for me always seems to be deleting the shader.cache file and I get really steady frames after that.
    Am I doing some sort of long term harm by doing this or is it just going to make the initial loading screen longer?
  • Jakx
    Jakx
    ✭✭✭✭✭
    The performance problems are on ZOS' side and not the client.
    Joined September 2013
  • relentless_turnip
    relentless_turnip
    ✭✭✭✭✭
    ✭✭✭
    Jakx wrote: »
    The performance problems are on ZOS' side and not the client.

    Yes they are I am strictly talking about the frame rate stutter that occurs when the shader.cache file gets too large. I am not talking about the server side issues.
  • zyk
    zyk
    ✭✭✭✭✭
    ✭✭✭✭✭
    Deleting the shader cache won't cause any long term issues. The only issue is the time it takes to rebuild it.

  • relentless_turnip
    relentless_turnip
    ✭✭✭✭✭
    ✭✭✭
    zyk wrote: »
    Deleting the shader cache won't cause any long term issues. The only issue is the time it takes to rebuild it.

    Excellent 👍 I will keep deleting every few weeks then 😂
  • clocksstoppe
    clocksstoppe
    ✭✭✭✭✭
    Deleting the shader cache doesn't make any sense, it takes a lot of time to compile shaders, that's why they get put in a cache. Deleting it will only make fps worse.
  • relentless_turnip
    relentless_turnip
    ✭✭✭✭✭
    ✭✭✭
    Deleting the shader cache doesn't make any sense, it takes a lot of time to compile shaders, that's why they get put in a cache. Deleting it will only make fps worse.

    It doesnt... It culminates an over excess of data overtime and causes stutters in game. Deleting causes the shader file to be rebuilt when the client is restarted. It has apparently been a known fix since beta.
  • Hippie4927
    Hippie4927
    ✭✭✭✭✭
    ✭✭✭✭
    I've been deleting the shader cache weekly for several years now and it doesn't cause any performance issues except the one stated, which is the first load after deletion is a little longer.
    PC/NA/EP ✌️
Sign In or Register to comment.