diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2019-12-11 03:54:18 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | f2c85c5d58a0aeda5d5fe2d7a980cc7284330288 (patch) | |
| tree | e9a3b2100de28120cd52239b5af9615b750ec352 /Ryujinx.Graphics.OpenGL | |
| parent | 3323a3a042c85ce88926771159fc041b5576de60 (diff) | |
Support non-constant texture offsets on non-NVIDIA gpus
Diffstat (limited to 'Ryujinx.Graphics.OpenGL')
| -rw-r--r-- | Ryujinx.Graphics.OpenGL/HwCapabilities.cs | 16 | ||||
| -rw-r--r-- | Ryujinx.Graphics.OpenGL/Renderer.cs | 1 |
2 files changed, 13 insertions, 4 deletions
diff --git a/Ryujinx.Graphics.OpenGL/HwCapabilities.cs b/Ryujinx.Graphics.OpenGL/HwCapabilities.cs index 7524dc1d..dc147484 100644 --- a/Ryujinx.Graphics.OpenGL/HwCapabilities.cs +++ b/Ryujinx.Graphics.OpenGL/HwCapabilities.cs @@ -11,11 +11,14 @@ namespace Ryujinx.Graphics.OpenGL private static Lazy<int> _maximumComputeSharedMemorySize = new Lazy<int>(() => GetLimit(All.MaxComputeSharedMemorySize)); private static Lazy<int> _storageBufferOffsetAlignment = new Lazy<int>(() => GetLimit(All.ShaderStorageBufferOffsetAlignment)); - public static bool SupportsAstcCompression => _supportsAstcCompression.Value; + private static Lazy<bool> _isNvidiaDriver = new Lazy<bool>(() => IsNvidiaDriver()); - public static int MaximumViewportDimensions => _maximumViewportDimensions.Value; - public static int MaximumComputeSharedMemorySize => _maximumComputeSharedMemorySize.Value; - public static int StorageBufferOffsetAlignment => _storageBufferOffsetAlignment.Value; + public static bool SupportsAstcCompression => _supportsAstcCompression.Value; + public static bool SupportsNonConstantTextureOffset => _isNvidiaDriver.Value; + + public static int MaximumViewportDimensions => _maximumViewportDimensions.Value; + public static int MaximumComputeSharedMemorySize => _maximumComputeSharedMemorySize.Value; + public static int StorageBufferOffsetAlignment => _storageBufferOffsetAlignment.Value; private static bool HasExtension(string name) { @@ -36,5 +39,10 @@ namespace Ryujinx.Graphics.OpenGL { return GL.GetInteger((GetPName)name); } + + private static bool IsNvidiaDriver() + { + return GL.GetString(StringName.Vendor).Equals("NVIDIA Corporation"); + } } }
\ No newline at end of file diff --git a/Ryujinx.Graphics.OpenGL/Renderer.cs b/Ryujinx.Graphics.OpenGL/Renderer.cs index eec3e320..ac16a37f 100644 --- a/Ryujinx.Graphics.OpenGL/Renderer.cs +++ b/Ryujinx.Graphics.OpenGL/Renderer.cs @@ -63,6 +63,7 @@ namespace Ryujinx.Graphics.OpenGL { return new Capabilities( HwCapabilities.SupportsAstcCompression, + HwCapabilities.SupportsNonConstantTextureOffset, HwCapabilities.MaximumViewportDimensions, HwCapabilities.MaximumComputeSharedMemorySize, HwCapabilities.StorageBufferOffsetAlignment); |
