From 99445dd0a63f4a6fcb53e7818cda689d8299453b Mon Sep 17 00:00:00 2001 From: gdkchan Date: Thu, 28 Oct 2021 19:53:12 -0300 Subject: Add support for fragment shader interlock (#2768) * Support coherent images * Add support for fragment shader interlock * Change to tree based match approach * Refactor + check for branch targets and external registers * Make detection more robust * Use Intel fragment shader ordering if interlock is not available, use nothing if both are not available * Remove unused field --- Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs | 2 ++ Ryujinx.Graphics.Shader/IntermediateRepresentation/TextureFlags.cs | 1 + 2 files changed, 3 insertions(+) (limited to 'Ryujinx.Graphics.Shader/IntermediateRepresentation') diff --git a/Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs b/Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs index e04e61a7..791c8f11 100644 --- a/Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs +++ b/Ryujinx.Graphics.Shader/IntermediateRepresentation/Instruction.cs @@ -62,6 +62,8 @@ namespace Ryujinx.Graphics.Shader.IntermediateRepresentation EmitVertex, EndPrimitive, ExponentB2, + FSIBegin, + FSIEnd, FindFirstSetS32, FindFirstSetU32, Floor, diff --git a/Ryujinx.Graphics.Shader/IntermediateRepresentation/TextureFlags.cs b/Ryujinx.Graphics.Shader/IntermediateRepresentation/TextureFlags.cs index 0cc938a3..6c20e856 100644 --- a/Ryujinx.Graphics.Shader/IntermediateRepresentation/TextureFlags.cs +++ b/Ryujinx.Graphics.Shader/IntermediateRepresentation/TextureFlags.cs @@ -14,6 +14,7 @@ namespace Ryujinx.Graphics.Shader.IntermediateRepresentation LodLevel = 1 << 5, Offset = 1 << 6, Offsets = 1 << 7, + Coherent = 1 << 8, AtomicMask = 15 << 16, -- cgit v1.2.3