aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Shader/Cache/CacheHelper.cs
diff options
context:
space:
mode:
authorriperiperi <rhy3756547@hotmail.com>2020-12-01 23:13:27 +0000
committerGitHub <noreply@github.com>2020-12-02 00:13:27 +0100
commit461c24092ae6e148d896c18aa3e86220c89981f8 (patch)
tree109060d3254bf2b5b0ae5ba91fb413cfb2db251c /Ryujinx.Graphics.Gpu/Shader/Cache/CacheHelper.cs
parente383c41b6e04d941788221e39bb3a68656d28138 (diff)
Implement Force Early Z Register (#1755)
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Shader/Cache/CacheHelper.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Shader/Cache/CacheHelper.cs18
1 files changed, 18 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Gpu/Shader/Cache/CacheHelper.cs b/Ryujinx.Graphics.Gpu/Shader/Cache/CacheHelper.cs
index 1d492214..d10e4671 100644
--- a/Ryujinx.Graphics.Gpu/Shader/Cache/CacheHelper.cs
+++ b/Ryujinx.Graphics.Gpu/Shader/Cache/CacheHelper.cs
@@ -333,6 +333,23 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache
}
/// <summary>
+ /// Builds gpu state flags using information from the given gpu accessor.
+ /// </summary>
+ /// <param name="gpuAccessor">The gpu accessor</param>
+ /// <returns>The gpu state flags</returns>
+ private static GuestGpuStateFlags GetGpuStateFlags(IGpuAccessor gpuAccessor)
+ {
+ GuestGpuStateFlags flags = 0;
+
+ if (gpuAccessor.QueryEarlyZForce())
+ {
+ flags |= GuestGpuStateFlags.EarlyZForce;
+ }
+
+ return flags;
+ }
+
+ /// <summary>
/// Create a new instance of <see cref="GuestGpuAccessorHeader"/> from an gpu accessor.
/// </summary>
/// <param name="gpuAccessor">The gpu accessor</param>
@@ -347,6 +364,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache
ComputeLocalMemorySize = gpuAccessor.QueryComputeLocalMemorySize(),
ComputeSharedMemorySize = gpuAccessor.QueryComputeSharedMemorySize(),
PrimitiveTopology = gpuAccessor.QueryPrimitiveTopology(),
+ StateFlags = GetGpuStateFlags(gpuAccessor)
};
}