Add a pass to turn global memory access into storage access, and do all storage related transformations on IR

This commit is contained in:
gdk
2020-01-09 02:13:00 +01:00
committed by Thog
parent 396768f3b4
commit 6a98c643ca
28 changed files with 532 additions and 282 deletions
+11 -2
View File
@@ -5,9 +5,13 @@ namespace Ryujinx.Graphics.OpenGL
{
static class HwCapabilities
{
private static Lazy<bool> _astcCompression = new Lazy<bool>(() => HasExtension("GL_KHR_texture_compression_astc_ldr"));
private static Lazy<bool> _supportsAstcCompression = new Lazy<bool>(() => HasExtension("GL_KHR_texture_compression_astc_ldr"));
public static bool SupportsAstcCompression => _astcCompression.Value;
private static Lazy<int> _storageBufferOffsetAlignment = new Lazy<int>(() => 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);
}
}
}
+3 -1
View File
@@ -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)