From bbb24d8c7e6ccc61ceda1f4223fd68feee3b2f20 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Mon, 5 Dec 2022 16:11:32 -0300 Subject: Restrict shader storage buffer search when match fails (#4011) * Restrict storage buffer search when match fails * Shader cache version bump --- Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs') diff --git a/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs b/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs index 12cd4cd1..85b56b51 100644 --- a/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs +++ b/Ryujinx.Graphics.Shader/Translation/ShaderConfig.cs @@ -65,6 +65,8 @@ namespace Ryujinx.Graphics.Shader.Translation public UInt128 NextInputAttributesComponents { get; private set; } public UInt128 ThisInputAttributesComponents { get; private set; } + public int AccessibleStorageBuffersMask { get; private set; } + private int _usedConstantBuffers; private int _usedStorageBuffers; private int _usedStorageBuffersWrite; @@ -98,6 +100,8 @@ namespace Ryujinx.Graphics.Shader.Translation GpuAccessor = gpuAccessor; Options = options; + AccessibleStorageBuffersMask = (1 << GlobalMemory.StorageMaxCount) - 1; + UsedInputAttributesPerPatch = new HashSet(); UsedOutputAttributesPerPatch = new HashSet(); @@ -400,6 +404,11 @@ namespace Ryujinx.Graphics.Shader.Translation UsedFeatures |= flags; } + public void SetAccessibleStorageBuffersMask(int mask) + { + AccessibleStorageBuffersMask = mask; + } + public void SetUsedConstantBuffer(int slot) { _usedConstantBuffers |= 1 << slot; -- cgit v1.2.3