From 4770cfa920b606b1496ca9348c3dd69b476dbbbf Mon Sep 17 00:00:00 2001 From: gdkchan Date: Tue, 20 Apr 2021 07:33:54 -0300 Subject: Only enable clip distance if written to on shader (#2217) * Only enable clip distance if written to on shader * Signal InstanceId use through FeatureFlags * Shader cache version bump --- .../Cache/Definition/HostShaderCacheEntryHeader.cs | 28 +++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs') diff --git a/Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs b/Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs index 9b1af8fb..7f27124f 100644 --- a/Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs +++ b/Ryujinx.Graphics.Gpu/Shader/Cache/Definition/HostShaderCacheEntryHeader.cs @@ -41,10 +41,15 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache.Definition [MarshalAs(UnmanagedType.I1)] public bool InUse; + /// + /// Mask of clip distances that are written to on the shader. + /// + public byte ClipDistancesWritten; + /// /// Reserved / unused. /// - public short Reserved; + public byte Reserved; /// /// Create a new host shader cache entry header. @@ -54,14 +59,21 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache.Definition /// Count of texture descriptors /// Count of image descriptors /// Set to true if the shader uses instance id - public HostShaderCacheEntryHeader(int cBuffersCount, int sBuffersCount, int texturesCount, int imagesCount, bool usesInstanceId) : this() + public HostShaderCacheEntryHeader( + int cBuffersCount, + int sBuffersCount, + int texturesCount, + int imagesCount, + bool usesInstanceId, + byte clipDistancesWritten) : this() { - CBuffersCount = cBuffersCount; - SBuffersCount = sBuffersCount; - TexturesCount = texturesCount; - ImagesCount = imagesCount; - UsesInstanceId = usesInstanceId; - InUse = true; + CBuffersCount = cBuffersCount; + SBuffersCount = sBuffersCount; + TexturesCount = texturesCount; + ImagesCount = imagesCount; + UsesInstanceId = usesInstanceId; + ClipDistancesWritten = clipDistancesWritten; + InUse = true; } } } -- cgit v1.2.3