From 6a98c643cabeea25dc42e19fe475a687a034a532 Mon Sep 17 00:00:00 2001 From: gdk Date: Sat, 30 Nov 2019 23:53:09 -0300 Subject: Add a pass to turn global memory access into storage access, and do all storage related transformations on IR --- Ryujinx.Graphics.OpenGL/HwCapabilities.cs | 13 +++++++++++-- Ryujinx.Graphics.OpenGL/Renderer.cs | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'Ryujinx.Graphics.OpenGL') diff --git a/Ryujinx.Graphics.OpenGL/HwCapabilities.cs b/Ryujinx.Graphics.OpenGL/HwCapabilities.cs index f958946e..70112a3a 100644 --- a/Ryujinx.Graphics.OpenGL/HwCapabilities.cs +++ b/Ryujinx.Graphics.OpenGL/HwCapabilities.cs @@ -5,9 +5,13 @@ namespace Ryujinx.Graphics.OpenGL { static class HwCapabilities { - private static Lazy _astcCompression = new Lazy(() => HasExtension("GL_KHR_texture_compression_astc_ldr")); + private static Lazy _supportsAstcCompression = new Lazy(() => HasExtension("GL_KHR_texture_compression_astc_ldr")); - public static bool SupportsAstcCompression => _astcCompression.Value; + private static Lazy _storageBufferOffsetAlignment = new Lazy(() => GetLimit(All.ShaderStorageBufferOffsetAlignment)); + + public static bool SupportsAstcCompression => _supportsAstcCompression.Value; + + public static int StorageBufferOffsetAlignment => _storageBufferOffsetAlignment.Value; private static bool HasExtension(string name) { @@ -23,5 +27,10 @@ namespace Ryujinx.Graphics.OpenGL return false; } + + private static int GetLimit(All name) + { + return GL.GetInteger((GetPName)name); + } } } \ No newline at end of file diff --git a/Ryujinx.Graphics.OpenGL/Renderer.cs b/Ryujinx.Graphics.OpenGL/Renderer.cs index 1baee04b..c320d150 100644 --- a/Ryujinx.Graphics.OpenGL/Renderer.cs +++ b/Ryujinx.Graphics.OpenGL/Renderer.cs @@ -61,7 +61,9 @@ namespace Ryujinx.Graphics.OpenGL public Capabilities GetCapabilities() { - return new Capabilities(HwCapabilities.SupportsAstcCompression); + return new Capabilities( + HwCapabilities.SupportsAstcCompression, + HwCapabilities.StorageBufferOffsetAlignment); } public ulong GetCounter(CounterType type) -- cgit v1.2.3