aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.GAL/Multithreading/Resources
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.GAL/Multithreading/Resources')
-rw-r--r--Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs13
-rw-r--r--Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedShader.cs38
2 files changed, 3 insertions, 48 deletions
diff --git a/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs b/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs
index d808fe22..7c5f0363 100644
--- a/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs
+++ b/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs
@@ -6,10 +6,10 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources.Programs
{
public ThreadedProgram Threaded { get; set; }
- private IShader[] _shaders;
+ private ShaderSource[] _shaders;
private ShaderInfo _info;
- public SourceProgramRequest(ThreadedProgram program, IShader[] shaders, ShaderInfo info)
+ public SourceProgramRequest(ThreadedProgram program, ShaderSource[] shaders, ShaderInfo info)
{
Threaded = program;
@@ -19,14 +19,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources.Programs
public IProgram Create(IRenderer renderer)
{
- IShader[] shaders = _shaders.Select(shader =>
- {
- var threaded = (ThreadedShader)shader;
- threaded?.EnsureCreated();
- return threaded?.Base;
- }).ToArray();
-
- return renderer.CreateProgram(shaders, _info);
+ return renderer.CreateProgram(_shaders, _info);
}
}
}
diff --git a/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedShader.cs b/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedShader.cs
deleted file mode 100644
index dcbecf38..00000000
--- a/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedShader.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using Ryujinx.Graphics.GAL.Multithreading.Commands.Shader;
-using Ryujinx.Graphics.GAL.Multithreading.Model;
-using Ryujinx.Graphics.Shader;
-
-namespace Ryujinx.Graphics.GAL.Multithreading.Resources
-{
- class ThreadedShader : IShader
- {
- private ThreadedRenderer _renderer;
- private ShaderStage _stage;
- private string _code;
-
- public IShader Base;
-
- public ThreadedShader(ThreadedRenderer renderer, ShaderStage stage, string code)
- {
- _renderer = renderer;
-
- _stage = stage;
- _code = code;
- }
-
- internal void EnsureCreated()
- {
- if (_code != null && Base == null)
- {
- Base = _renderer.BaseRenderer.CompileShader(_stage, _code);
- _code = null;
- }
- }
-
- public void Dispose()
- {
- _renderer.New<ShaderDisposeCommand>().Set(new TableRef<ThreadedShader>(_renderer, this));
- _renderer.QueueCommand();
- }
- }
-}