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
This commit is contained in:
gdkchan 2021-10-28 19:53:12 -03:00 committed by GitHub
parent bbd2b6da66
commit f229550167
31 changed files with 1309 additions and 179 deletions

View file

@ -361,6 +361,16 @@ namespace Ryujinx.Graphics.Shader.Translation
return context.Add(Instruction.SwizzleAdd, Local(), a, b, Const(mask));
}
public static void FSIBegin(this EmitterContext context)
{
context.Add(Instruction.FSIBegin);
}
public static void FSIEnd(this EmitterContext context)
{
context.Add(Instruction.FSIEnd);
}
public static Operand GroupMemoryBarrier(this EmitterContext context)
{
return context.Add(Instruction.GroupMemoryBarrier);