aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.GAL/Multithreading/Resources
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2022-02-16 19:15:39 -0300
committerGitHub <noreply@github.com>2022-02-16 23:15:39 +0100
commit3bd357045f7581ee10d6c86ed8049bcebe35eda0 (patch)
treeaa2d243843f2d31d3afa690f26352713ddac4349 /Ryujinx.Graphics.GAL/Multithreading/Resources
parentab5d77c0c4925955180dc51e9f289187ce6f2901 (diff)
Do not allow render targets not explicitly written by the fragment shader to be modified (#3063)
* Do not allow render targets not explicitly written by the fragment shader to be modified * Shader cache version bump * Remove blank lines * Avoid redundant color mask updates * HostShaderCacheEntry can be null * Avoid more redundant glColorMask calls * nit: Mask -> Masks * Fix currentComponentMask * More efficient way to update _currentComponentMasks
Diffstat (limited to 'Ryujinx.Graphics.GAL/Multithreading/Resources')
-rw-r--r--Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs8
-rw-r--r--Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs6
2 files changed, 10 insertions, 4 deletions
diff --git a/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs b/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs
index 96bfedf8..b4c6853f 100644
--- a/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs
+++ b/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/BinaryProgramRequest.cs
@@ -5,17 +5,21 @@
public ThreadedProgram Threaded { get; set; }
private byte[] _data;
+ private bool _hasFragmentShader;
+ private ShaderInfo _info;
- public BinaryProgramRequest(ThreadedProgram program, byte[] data)
+ public BinaryProgramRequest(ThreadedProgram program, byte[] data, bool hasFragmentShader, ShaderInfo info)
{
Threaded = program;
_data = data;
+ _hasFragmentShader = hasFragmentShader;
+ _info = info;
}
public IProgram Create(IRenderer renderer)
{
- return renderer.LoadProgramBinary(_data);
+ return renderer.LoadProgramBinary(_data, _hasFragmentShader, _info);
}
}
}
diff --git a/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs b/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs
index 8e4cd1d4..d808fe22 100644
--- a/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs
+++ b/Ryujinx.Graphics.GAL/Multithreading/Resources/Programs/SourceProgramRequest.cs
@@ -7,12 +7,14 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources.Programs
public ThreadedProgram Threaded { get; set; }
private IShader[] _shaders;
+ private ShaderInfo _info;
- public SourceProgramRequest(ThreadedProgram program, IShader[] shaders)
+ public SourceProgramRequest(ThreadedProgram program, IShader[] shaders, ShaderInfo info)
{
Threaded = program;
_shaders = shaders;
+ _info = info;
}
public IProgram Create(IRenderer renderer)
@@ -24,7 +26,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading.Resources.Programs
return threaded?.Base;
}).ToArray();
- return renderer.CreateProgram(shaders);
+ return renderer.CreateProgram(shaders, _info);
}
}
}