aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/GpuContext.cs
diff options
context:
space:
mode:
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>