Jump to content

Suggestion: shaders pre-compilation filename (shader_d3d11) depending on GPU


photo

Recommended Posts

Posted

Hi,

If generating shader_d3d11{_debug}.cache improve runtime exec and such file is GPU related, would it be possible to make the name related to the GPU?
Currently we're not putting it in versioning, meaning that each user needs to generate it.
But in IG mode with up to 10 similar config, that would be interesting.
Another interesting setup is using eGPU with exactly same GPU.

Would it be possible and make sens?

Kind regards,
Charles

Posted

Hi Charles,

Generated shader cache should work fine between different PCs (even if you will generate cache on AMD GPU it would work fine on nVidia), so there is no any reason to separate cache between different GPU models. There might be some small differences between GPUs, but 99% of the .cache file contents should work fine.

If you need to have fast debug / release start-up times - it's better to store shader cache in repository and commit each change. After some period of time it can be quite big, but you can always delete it and regenerate from scratch.

Shader cache also becomes invalid with SDK version switch (2.13 -> 2.14).

Thanks!

  • Thanks 1

How to submit a good bug report
---
FTP server for test scenes and user uploads:

  • 3 weeks later...
Posted

Hi,

Ok, so shader_d3d11{_debug}.cache is not GPU related?
In this case yes that worth putting it back under versioning ;-)
We removed .runtimes from versioning as well.. but it requires then to run RuntimesGenerator.. that is creating .runtimes missing, but not cleaning orphan .runtimes related to removed assets.. or?

Kind regards,
Charles

Posted

Normally there should be no issues with runtimes generator (if the project that it uses for generation has no issues as well). Otherwise you can see some error messages in console due to missing files / runtimes after.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Posted

Hi,

So, here is the use case:

- new assets created or added
- editor open or RuntimeGenerator started
- .runtimes generated
- application started -> no issue (and fast)
- some assets removed, e.g. by versioning system
- only RuntimeGenerator started
- application started -> error messages, can be many in some cases, slow down the start
ERROR:    FileSystemAssets::load_runtime(): unknown "f10056d0165a3bef2d3c38820bb39df9d2d02f04" asset guid
- to fix that -> remove all .runtimes, start again RuntimeGenerator then start application won't log error msg

Do you reproduce?
Would you suggest better way to keep consistent .runtimes, without them in versioning system?

Kind regards,
Charles

Posted

You only can remove/move/edit assets using the Editor, otherwise it's not possible to keep consistent guids.db file. So at least on a single PC all the changes should be done correctly and after that (if there is no issues inside Editor) can be commited to the repo. In this case running RuntimeGenerator after will produce the same results that you saw in Editor.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Posted

Ok, so guids.db need to be consistent with assets otherwise Runtimes Generator has consistency issue.
guids.db can be removed, opening Editor then closing it will generate it again.

What about Runtimes Genetor?
He can handle and regenerate guids.db if missing?
If so, then consistency would be back.. or?

×
×
  • Create New...