diff options
| author | Nico <Nico.Reinartz@rwth-aachen.de> | 2023-05-06 15:35:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-06 15:35:46 +0200 |
| commit | 4c3d2d5d75c46a522d55c0a3ae6820255294517c (patch) | |
| tree | 7e483befb9218f86fc6a00dec51d5afef36f55d7 /src/Ryujinx.Graphics.Gpu/Shader | |
| parent | fab11ba3f1fec3e3827a8350791d76d2fcd50173 (diff) | |
UI: Add progress bar for re-packaging shaders (#4805)
* feat: introduce new shader loading state for progress tracking when writing shaders to disk
* fix: move translation to bottom of locale file
* fix: change back to foreach and add requested spacing between lines
* style: fix formatting
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
---------
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Shader')
| -rw-r--r-- | src/Ryujinx.Graphics.Gpu/Shader/DiskCache/ParallelDiskCacheLoader.cs | 6 | ||||
| -rw-r--r-- | src/Ryujinx.Graphics.Gpu/Shader/ShaderCacheState.cs | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/ParallelDiskCacheLoader.cs b/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/ParallelDiskCacheLoader.cs index 77fb3ca4..58e5c7b1 100644 --- a/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/ParallelDiskCacheLoader.cs +++ b/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/ParallelDiskCacheLoader.cs @@ -299,10 +299,13 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache if (_programList.Count != 0) { + _stateChangeCallback(ShaderCacheState.Packaging, 0, _programList.Count); + Logger.Info?.Print(LogClass.Gpu, $"Rebuilding {_programList.Count} shaders..."); using var streams = _hostStorage.GetOutputStreams(_context); + int packagedShaders = 0; foreach (var kv in _programList) { if (!Active) @@ -311,7 +314,10 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache } (CachedShaderProgram program, byte[] binaryCode) = kv.Value; + _hostStorage.AddShader(_context, program, binaryCode, streams); + + _stateChangeCallback(ShaderCacheState.Packaging, ++packagedShaders, _programList.Count); } Logger.Info?.Print(LogClass.Gpu, $"Rebuilt {_programList.Count} shaders successfully."); diff --git a/src/Ryujinx.Graphics.Gpu/Shader/ShaderCacheState.cs b/src/Ryujinx.Graphics.Gpu/Shader/ShaderCacheState.cs index 623b73d7..b94a6c05 100644 --- a/src/Ryujinx.Graphics.Gpu/Shader/ShaderCacheState.cs +++ b/src/Ryujinx.Graphics.Gpu/Shader/ShaderCacheState.cs @@ -7,6 +7,8 @@ namespace Ryujinx.Graphics.Gpu.Shader Start, /// <summary>Shader cache is loading</summary> Loading, + /// <summary>Shader cache is written to disk</summary> + Packaging, /// <summary>Shader cache finished loading</summary> Loaded } |
