diff options
author | gdkchan <gab.dark.100@gmail.com> | 2022-01-22 15:23:00 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-22 19:23:00 +0100 |
commit | 42c75dbb8f9472f434d0324a37a87e91ee7b50f3 (patch) | |
tree | bae433fed0b2807893d520c1b1b49e33588ea303 /Ryujinx.Graphics.Gpu/GpuContext.cs | |
parent | 8117f6a9790e129ffd4513f23f6f5be6c6864269 (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.cs | 19 |
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> |