diff options
| author | TSR Berry <20988865+TSRBerry@users.noreply.github.com> | 2023-04-08 01:22:00 +0200 |
|---|---|---|
| committer | Mary <thog@protonmail.com> | 2023-04-27 23:51:14 +0200 |
| commit | cee712105850ac3385cd0091a923438167433f9f (patch) | |
| tree | 4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.Graphics.Gpu/Shader/ComputeShaderCacheHashTable.cs | |
| parent | cd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff) | |
Move solution and projects to src
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Shader/ComputeShaderCacheHashTable.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Shader/ComputeShaderCacheHashTable.cs | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/ComputeShaderCacheHashTable.cs b/Ryujinx.Graphics.Gpu/Shader/ComputeShaderCacheHashTable.cs deleted file mode 100644 index a6718211..00000000 --- a/Ryujinx.Graphics.Gpu/Shader/ComputeShaderCacheHashTable.cs +++ /dev/null @@ -1,70 +0,0 @@ -using Ryujinx.Graphics.Gpu.Shader.HashTable; -using System.Collections.Generic; - -namespace Ryujinx.Graphics.Gpu.Shader -{ - /// <summary> - /// Compute shader cache hash table. - /// </summary> - class ComputeShaderCacheHashTable - { - private readonly PartitionedHashTable<ShaderSpecializationList> _cache; - private readonly List<CachedShaderProgram> _shaderPrograms; - - /// <summary> - /// Creates a new compute shader cache hash table. - /// </summary> - public ComputeShaderCacheHashTable() - { - _cache = new PartitionedHashTable<ShaderSpecializationList>(); - _shaderPrograms = new List<CachedShaderProgram>(); - } - - /// <summary> - /// Adds a program to the cache. - /// </summary> - /// <param name="program">Program to be added</param> - public void Add(CachedShaderProgram program) - { - var specList = _cache.GetOrAdd(program.Shaders[0].Code, new ShaderSpecializationList()); - specList.Add(program); - _shaderPrograms.Add(program); - } - - /// <summary> - /// Tries to find a cached program. - /// </summary> - /// <param name="channel">GPU channel</param> - /// <param name="poolState">Texture pool state</param> - /// <param name="computeState">Compute state</param> - /// <param name="gpuVa">GPU virtual address of the compute shader</param> - /// <param name="program">Cached host program for the given state, if found</param> - /// <param name="cachedGuestCode">Cached guest code, if any found</param> - /// <returns>True if a cached host program was found, false otherwise</returns> - public bool TryFind( - GpuChannel channel, - GpuChannelPoolState poolState, - GpuChannelComputeState computeState, - ulong gpuVa, - out CachedShaderProgram program, - out byte[] cachedGuestCode) - { - program = null; - ShaderCodeAccessor codeAccessor = new ShaderCodeAccessor(channel.MemoryManager, gpuVa); - bool hasSpecList = _cache.TryFindItem(codeAccessor, out var specList, out cachedGuestCode); - return hasSpecList && specList.TryFindForCompute(channel, poolState, computeState, out program); - } - - /// <summary> - /// Gets all programs that have been added to the table. - /// </summary> - /// <returns>Programs added to the table</returns> - public IEnumerable<CachedShaderProgram> GetPrograms() - { - foreach (var program in _shaderPrograms) - { - yield return program; - } - } - } -}
\ No newline at end of file |
