aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/GpuContext.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2022-01-22 15:23:00 -0300
committerGitHub <noreply@github.com>2022-01-22 19:23:00 +0100
commit42c75dbb8f9472f434d0324a37a87e91ee7b50f3 (patch)
treebae433fed0b2807893d520c1b1b49e33588ea303 /Ryujinx.Graphics.Gpu/GpuContext.cs
parent8117f6a9790e129ffd4513f23f6f5be6c6864269 (diff)
Add support for BC1/2/3 decompression (for 3D textures) (#2987)1.1.4
* Add support for BC1/2/3 decompression (for 3D textures) * Optimize and clean up * Unsafe not needed here * Fix alpha value interpolation when a0 <= a1
Diffstat (limited to 'Ryujinx.Graphics.Gpu/GpuContext.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/GpuContext.cs19
1 files changed, 15 insertions, 4 deletions
diff --git a/Ryujinx.Graphics.Gpu/GpuContext.cs b/Ryujinx.Graphics.Gpu/GpuContext.cs
index 5c9af383..ddc95b2c 100644
--- a/Ryujinx.Graphics.Gpu/GpuContext.cs
+++ b/Ryujinx.Graphics.Gpu/GpuContext.cs
@@ -78,14 +78,27 @@ namespace Ryujinx.Graphics.Gpu
/// <summary>
/// Host hardware capabilities.
/// </summary>
- internal Capabilities Capabilities => _caps.Value;
+ internal ref Capabilities Capabilities
+ {
+ get
+ {
+ if (!_capsLoaded)
+ {
+ _caps = Renderer.GetCapabilities();
+ _capsLoaded = true;
+ }
+
+ return ref _caps;
+ }
+ }
/// <summary>
/// Event for signalling shader cache loading progress.
/// </summary>
public event Action<ShaderCacheState, int, int> ShaderCacheStateChanged;
- private readonly Lazy<Capabilities> _caps;
+ private bool _capsLoaded;
+ private Capabilities _caps;
private Thread _gpuThread;
/// <summary>
@@ -110,8 +123,6 @@ namespace Ryujinx.Graphics.Gpu
DeferredActions = new Queue<Action>();
PhysicalMemoryRegistry = new ConcurrentDictionary<long, PhysicalMemory>();
-
- _caps = new Lazy<Capabilities>(Renderer.GetCapabilities);
}
/// <summary>