From cee712105850ac3385cd0091a923438167433f9f Mon Sep 17 00:00:00 2001 From: TSR Berry <20988865+TSRBerry@users.noreply.github.com> Date: Sat, 8 Apr 2023 01:22:00 +0200 Subject: Move solution and projects to src --- .../Shader/DiskCache/BackgroundDiskCacheWriter.cs | 138 --------------------- 1 file changed, 138 deletions(-) delete mode 100644 Ryujinx.Graphics.Gpu/Shader/DiskCache/BackgroundDiskCacheWriter.cs (limited to 'Ryujinx.Graphics.Gpu/Shader/DiskCache/BackgroundDiskCacheWriter.cs') diff --git a/Ryujinx.Graphics.Gpu/Shader/DiskCache/BackgroundDiskCacheWriter.cs b/Ryujinx.Graphics.Gpu/Shader/DiskCache/BackgroundDiskCacheWriter.cs deleted file mode 100644 index 568fe968..00000000 --- a/Ryujinx.Graphics.Gpu/Shader/DiskCache/BackgroundDiskCacheWriter.cs +++ /dev/null @@ -1,138 +0,0 @@ -using Ryujinx.Common; -using Ryujinx.Common.Logging; -using System; -using System.IO; - -namespace Ryujinx.Graphics.Gpu.Shader.DiskCache -{ - /// - /// Represents a background disk cache writer. - /// - class BackgroundDiskCacheWriter : IDisposable - { - /// - /// Possible operation to do on the . - /// - private enum CacheFileOperation - { - /// - /// Operation to add a shader to the cache. - /// - AddShader - } - - /// - /// Represents an operation to perform on the . - /// - private readonly struct CacheFileOperationTask - { - /// - /// The type of operation to perform. - /// - public readonly CacheFileOperation Type; - - /// - /// The data associated to this operation or null. - /// - public readonly object Data; - - public CacheFileOperationTask(CacheFileOperation type, object data) - { - Type = type; - Data = data; - } - } - - /// - /// Background shader cache write information. - /// - private readonly struct AddShaderData - { - /// - /// Cached shader program. - /// - public readonly CachedShaderProgram Program; - - /// - /// Binary host code. - /// - public readonly byte[] HostCode; - - /// - /// Creates a new background shader cache write information. - /// - /// Cached shader program - /// Binary host code - public AddShaderData(CachedShaderProgram program, byte[] hostCode) - { - Program = program; - HostCode = hostCode; - } - } - - private readonly GpuContext _context; - private readonly DiskCacheHostStorage _hostStorage; - private readonly AsyncWorkQueue _fileWriterWorkerQueue; - - /// - /// Creates a new background disk cache writer. - /// - /// GPU context - /// Disk cache host storage - public BackgroundDiskCacheWriter(GpuContext context, DiskCacheHostStorage hostStorage) - { - _context = context; - _hostStorage = hostStorage; - _fileWriterWorkerQueue = new AsyncWorkQueue(ProcessTask, "GPU.BackgroundDiskCacheWriter"); - } - - /// - /// Processes a shader cache background operation. - /// - /// Task to process - private void ProcessTask(CacheFileOperationTask task) - { - switch (task.Type) - { - case CacheFileOperation.AddShader: - AddShaderData data = (AddShaderData)task.Data; - try - { - _hostStorage.AddShader(_context, data.Program, data.HostCode); - } - catch (DiskCacheLoadException diskCacheLoadException) - { - Logger.Error?.Print(LogClass.Gpu, $"Error writing shader to disk cache. {diskCacheLoadException.Message}"); - } - catch (IOException ioException) - { - Logger.Error?.Print(LogClass.Gpu, $"Error writing shader to disk cache. {ioException.Message}"); - } - break; - } - } - - /// - /// Adds a shader program to be cached in the background. - /// - /// Shader program to cache - /// Host binary code of the program - public void AddShader(CachedShaderProgram program, byte[] hostCode) - { - _fileWriterWorkerQueue.Add(new CacheFileOperationTask(CacheFileOperation.AddShader, new AddShaderData(program, hostCode))); - } - - public void Dispose() - { - Dispose(true); - } - - protected virtual void Dispose(bool disposing) - { - if (disposing) - { - _fileWriterWorkerQueue.Dispose(); - } - } - } -} -- cgit v1.2.3