Implement Logical Operation registers and functionality (#1380)

* Implement Logical Operation registers and functionality.

* Address Feedback 1
This commit is contained in:
riperiperi 2020-07-10 18:23:15 +01:00 committed by GitHub
parent 189c0c9c72
commit f224769c49
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 110 additions and 0 deletions

View file

@ -252,6 +252,11 @@ namespace Ryujinx.Graphics.Gpu.Engine
UpdateBlendState(state);
}
if (state.QueryModified(MethodOffset.LogicOpState))
{
UpdateLogicOpState(state);
}
CommitBindings();
}
@ -875,6 +880,17 @@ namespace Ryujinx.Graphics.Gpu.Engine
}
}
/// <summary>
/// Updates host logical operation state, based on guest state.
/// </summary>
/// <param name="state">Current GPU state</param>
public void UpdateLogicOpState(GpuState state)
{
LogicalOpState logicOpState = state.Get<LogicalOpState>(MethodOffset.LogicOpState);
_context.Renderer.Pipeline.SetLogicOpState(logicOpState.Enable, logicOpState.LogicalOp);
}
/// <summary>
/// Storage buffer address and size information.
/// </summary>