aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Gpu/Engine/Threed/DrawState.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2023-08-29 21:10:34 -0300
committerGitHub <noreply@github.com>2023-08-29 21:10:34 -0300
commitf09bba82b9366e5912b639a610ae89cbb1cf352c (patch)
tree4811ffa52206eed7cf8aa200c64deb7410e5c56b /src/Ryujinx.Graphics.Gpu/Engine/Threed/DrawState.cs
parent93d78f9ac4a37a50f0cc2e57addd330d072af742 (diff)
Geometry shader emulation for macOS (#5551)1.1.1002
* Implement vertex and geometry shader conversion to compute * Call InitializeReservedCounts for compute too * PR feedback * Set clip distance mask for geometry and tessellation shaders too * Transform feedback emulation only for vertex
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Engine/Threed/DrawState.cs')
-rw-r--r--src/Ryujinx.Graphics.Gpu/Engine/Threed/DrawState.cs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Engine/Threed/DrawState.cs b/src/Ryujinx.Graphics.Gpu/Engine/Threed/DrawState.cs
index 12099aef..cb43b002 100644
--- a/src/Ryujinx.Graphics.Gpu/Engine/Threed/DrawState.cs
+++ b/src/Ryujinx.Graphics.Gpu/Engine/Threed/DrawState.cs
@@ -1,4 +1,5 @@
using Ryujinx.Graphics.GAL;
+using Ryujinx.Graphics.Gpu.Shader;
namespace Ryujinx.Graphics.Gpu.Engine.Threed
{
@@ -61,5 +62,20 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
/// Index buffer data streamer for inline index buffer updates, such as those used in legacy OpenGL.
/// </summary>
public IbStreamer IbStreamer = new();
+
+ /// <summary>
+ /// If the vertex shader is emulated on compute, this should be set to the compute program, otherwise it should be null.
+ /// </summary>
+ public ShaderAsCompute VertexAsCompute;
+
+ /// <summary>
+ /// If a geometry shader exists and is emulated on compute, this should be set to the compute program, otherwise it should be null.
+ /// </summary>
+ public ShaderAsCompute GeometryAsCompute;
+
+ /// <summary>
+ /// If the vertex shader is emulated on compute, this should be set to the passthrough vertex program, otherwise it should be null.
+ /// </summary>
+ public IProgram VertexPassthrough;
}
}