diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ba1a2df9c..9b11f0778 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -61,11 +61,11 @@ jobs: if: matrix.platform.name != 'linux-arm64' - name: Publish Ryujinx - run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.platform.name }}" -o ./publish -p:Version="${{ env.RYUJINX_BASE_VERSION }}" -p:DebugType=embedded -p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" -p:ExtraDefineConstants=DISABLE_UPDATER src/Ryujinx --self-contained true + run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.platform.name }}" -o ./publish -p:Version="${{ env.RYUJINX_BASE_VERSION }}" -p:DebugType=embedded -p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" -p:ExtraDefineConstants=DISABLE_UPDATER src/Ryujinx --self-contained if: github.event_name == 'pull_request' && matrix.platform.os != 'macos-13' - name: Publish Ryujinx.Headless.SDL2 - run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless -p:Version="${{ env.RYUJINX_BASE_VERSION }}" -p:DebugType=embedded -p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" -p:ExtraDefineConstants=DISABLE_UPDATER src/Ryujinx.Headless.SDL2 --self-contained true + run: dotnet publish -c "${{ matrix.configuration }}" -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless -p:Version="${{ env.RYUJINX_BASE_VERSION }}" -p:DebugType=embedded -p:SourceRevisionId="${{ steps.git_short_hash.outputs.result }}" -p:ExtraDefineConstants=DISABLE_UPDATER src/Ryujinx.Headless.SDL2 --self-contained if: github.event_name == 'pull_request' && matrix.platform.os != 'macos-13' - name: Set executable bit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3caedacfc..aad32deb6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -101,17 +101,19 @@ jobs: - name: Publish run: | - dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_ava/publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx --self-contained true - dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless/publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx.Headless.SDL2 --self-contained true + dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_ava/publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx --self-contained -p:IncludeNativeLibrariesForSelfExtract=true + dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless/publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx.Headless.SDL2 --self-contained -p:IncludeNativeLibrariesForSelfExtract=true - name: Packing Windows builds if: matrix.platform.os == 'windows-latest' run: | pushd publish_ava + rm publish/libarmeilleure-jitsupport.dylib 7z a ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish popd pushd publish_sdl2_headless + rm publish/libarmeilleure-jitsupport.dylib 7z a ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish popd shell: bash @@ -120,11 +122,13 @@ jobs: if: matrix.platform.os == 'ubuntu-latest' run: | pushd publish_ava + rm publish/libarmeilleure-jitsupport.dylib chmod +x publish/Ryujinx.sh publish/Ryujinx tar -czvf ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish popd pushd publish_sdl2_headless + rm publish/libarmeilleure-jitsupport.dylib chmod +x publish/Ryujinx.sh publish/Ryujinx.Headless.SDL2 tar -czvf ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish popd diff --git a/Ryujinx.sln b/Ryujinx.sln index 8a582d32d..eaa28f8dd 100644 --- a/Ryujinx.sln +++ b/Ryujinx.sln @@ -33,6 +33,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig Directory.Packages.props = Directory.Packages.props + Release Script = .github/workflows/release.yml + Build Script = .github/workflows/build.yml EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Memory", "src\Ryujinx.Memory\Ryujinx.Memory.csproj", "{A5E6C691-9E22-4263-8F40-42F002CE66BE}" diff --git a/distribution/macos/Ryujinx.icns b/distribution/macos/Ryujinx.icns index f54a9aeb7..1bb88a5d7 100644 Binary files a/distribution/macos/Ryujinx.icns and b/distribution/macos/Ryujinx.icns differ diff --git a/docs/shell.png b/docs/shell.png index 943e18b0e..f1eda13e8 100644 Binary files a/docs/shell.png and b/docs/shell.png differ diff --git a/src/ARMeilleure/Translation/PTC/Ptc.cs b/src/ARMeilleure/Translation/PTC/Ptc.cs index 2fecbc3d9..6dd38ed89 100644 --- a/src/ARMeilleure/Translation/PTC/Ptc.cs +++ b/src/ARMeilleure/Translation/PTC/Ptc.cs @@ -855,6 +855,7 @@ namespace ARMeilleure.Translation.PTC Thread thread = new(TranslateFuncs) { IsBackground = true, + Name = "Ptc.TranslateThread." + i }; threads.Add(thread); @@ -885,6 +886,7 @@ namespace ARMeilleure.Translation.PTC Thread preSaveThread = new(PreSave) { IsBackground = true, + Name = "Ptc.DiskWriter" }; preSaveThread.Start(); } diff --git a/src/Ryujinx.Audio.Backends.OpenAL/OpenALHardwareDeviceDriver.cs b/src/Ryujinx.Audio.Backends.OpenAL/OpenALHardwareDeviceDriver.cs index 01286992f..25f91f8e9 100644 --- a/src/Ryujinx.Audio.Backends.OpenAL/OpenALHardwareDeviceDriver.cs +++ b/src/Ryujinx.Audio.Backends.OpenAL/OpenALHardwareDeviceDriver.cs @@ -41,7 +41,7 @@ namespace Ryujinx.Audio.Backends.OpenAL public OpenALHardwareDeviceDriver() { - _device = ALC.OpenDevice(""); + _device = ALC.OpenDevice(string.Empty); _context = ALC.CreateContext(_device, new ALContextAttributes()); _updateRequiredEvent = new ManualResetEvent(false); _pauseEvent = new ManualResetEvent(true); diff --git a/src/Ryujinx.Audio/Renderer/Dsp/AdpcmHelper.cs b/src/Ryujinx.Audio/Renderer/Dsp/AdpcmHelper.cs index 5cb4509ff..8b497fe2a 100644 --- a/src/Ryujinx.Audio/Renderer/Dsp/AdpcmHelper.cs +++ b/src/Ryujinx.Audio/Renderer/Dsp/AdpcmHelper.cs @@ -81,7 +81,7 @@ namespace Ryujinx.Audio.Renderer.Dsp [MethodImpl(MethodImplOptions.AggressiveInlining)] private static short GetCoefficientAtIndex(ReadOnlySpan coefficients, int index) { - if ((uint)index > (uint)coefficients.Length) + if ((uint)index >= (uint)coefficients.Length) { Logger.Error?.Print(LogClass.AudioRenderer, $"Out of bound read for coefficient at index {index}"); diff --git a/src/Ryujinx.Common/Configuration/AppDataManager.cs b/src/Ryujinx.Common/Configuration/AppDataManager.cs index 0b1740ba2..ca8e389ba 100644 --- a/src/Ryujinx.Common/Configuration/AppDataManager.cs +++ b/src/Ryujinx.Common/Configuration/AppDataManager.cs @@ -119,7 +119,7 @@ namespace Ryujinx.Common.Configuration private static string SetUpLogsDir() { - string logDir = ""; + string logDir = string.Empty; if (Mode == LaunchMode.Portable) { @@ -148,7 +148,7 @@ namespace Ryujinx.Common.Configuration catch { Logger.Warning?.Print(LogClass.Application, $"Logging directory could not be created '{logDir}'"); - logDir = ""; + logDir = string.Empty; } if (string.IsNullOrEmpty(logDir)) @@ -179,7 +179,7 @@ namespace Ryujinx.Common.Configuration catch { Logger.Warning?.Print(LogClass.Application, $"Logging directory could not be created '{logDir}'"); - logDir = ""; + logDir = string.Empty; } if (string.IsNullOrEmpty(logDir)) diff --git a/src/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs b/src/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs index c1e9e8fbb..8d969bd6a 100644 --- a/src/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs +++ b/src/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs @@ -121,8 +121,8 @@ namespace Ryujinx.Common.GraphicsDriver }; application.AppName.Set("Ryujinx.exe"); application.UserFriendlyName.Set("Ryujinx"); - application.Launcher.Set(""); - application.FileInFolder.Set(""); + application.Launcher.Set(string.Empty); + application.FileInFolder.Set(string.Empty); Check(NvAPI_DRS_CreateApplication(handle, profileHandle, ref application)); } diff --git a/src/Ryujinx.Common/Logging/Logger.cs b/src/Ryujinx.Common/Logging/Logger.cs index 8dcf1a7cf..26d343969 100644 --- a/src/Ryujinx.Common/Logging/Logger.cs +++ b/src/Ryujinx.Common/Logging/Logger.cs @@ -38,7 +38,7 @@ namespace Ryujinx.Common.Logging { if (_enabledClasses[(int)logClass]) { - Updated?.Invoke(null, new LogEventArgs(Level, _time.Elapsed, Thread.CurrentThread.Name, FormatMessage(logClass, "", message))); + Updated?.Invoke(null, new LogEventArgs(Level, _time.Elapsed, Thread.CurrentThread.Name, FormatMessage(logClass, string.Empty, message))); } } diff --git a/src/Ryujinx.Common/Ryujinx.Common.csproj b/src/Ryujinx.Common/Ryujinx.Common.csproj index 722509f33..dee462fdb 100644 --- a/src/Ryujinx.Common/Ryujinx.Common.csproj +++ b/src/Ryujinx.Common/Ryujinx.Common.csproj @@ -10,6 +10,7 @@ + diff --git a/src/Ryujinx.Common/Utilities/JsonHelper.cs b/src/Ryujinx.Common/Utilities/JsonHelper.cs index 65b8cb109..276dd5f8c 100644 --- a/src/Ryujinx.Common/Utilities/JsonHelper.cs +++ b/src/Ryujinx.Common/Utilities/JsonHelper.cs @@ -17,29 +17,19 @@ namespace Ryujinx.Common.Utilities /// It is REQUIRED for you to save returned options statically or as a part of static serializer context /// in order to avoid performance issues. You can safely modify returned options for your case before storing. /// - public static JsonSerializerOptions GetDefaultSerializerOptions(bool indented = true) - { - JsonSerializerOptions options = new() + public static JsonSerializerOptions GetDefaultSerializerOptions(bool indented = true) => + new() { DictionaryKeyPolicy = _snakeCasePolicy, PropertyNamingPolicy = _snakeCasePolicy, WriteIndented = indented, AllowTrailingCommas = true, - ReadCommentHandling = JsonCommentHandling.Skip, + ReadCommentHandling = JsonCommentHandling.Skip }; - return options; - } + public static string Serialize(T value, JsonTypeInfo typeInfo) => JsonSerializer.Serialize(value, typeInfo); - public static string Serialize(T value, JsonTypeInfo typeInfo) - { - return JsonSerializer.Serialize(value, typeInfo); - } - - public static T Deserialize(string value, JsonTypeInfo typeInfo) - { - return JsonSerializer.Deserialize(value, typeInfo); - } + public static T Deserialize(string value, JsonTypeInfo typeInfo) => JsonSerializer.Deserialize(value, typeInfo); public static void SerializeToFile(string filePath, T value, JsonTypeInfo typeInfo) { @@ -53,10 +43,7 @@ namespace Ryujinx.Common.Utilities return JsonSerializer.Deserialize(file, typeInfo); } - public static void SerializeToStream(Stream stream, T value, JsonTypeInfo typeInfo) - { - JsonSerializer.Serialize(stream, value, typeInfo); - } + public static void SerializeToStream(Stream stream, T value, JsonTypeInfo typeInfo) => JsonSerializer.Serialize(stream, value, typeInfo); private class SnakeCaseNamingPolicy : JsonNamingPolicy { diff --git a/src/Ryujinx.Graphics.Gpu/GpuContext.cs b/src/Ryujinx.Graphics.Gpu/GpuContext.cs index 048d32fb7..fb529e914 100644 --- a/src/Ryujinx.Graphics.Gpu/GpuContext.cs +++ b/src/Ryujinx.Graphics.Gpu/GpuContext.cs @@ -152,16 +152,17 @@ namespace Ryujinx.Graphics.Gpu /// Creates a new GPU memory manager. /// /// ID of the process that owns the memory manager + /// The amount of physical CPU Memory Avaiable on the device. /// The memory manager /// Thrown when is invalid - public MemoryManager CreateMemoryManager(ulong pid) + public MemoryManager CreateMemoryManager(ulong pid, ulong cpuMemorySize) { if (!PhysicalMemoryRegistry.TryGetValue(pid, out var physicalMemory)) { throw new ArgumentException("The PID is invalid or the process was not registered", nameof(pid)); } - return new MemoryManager(physicalMemory); + return new MemoryManager(physicalMemory, cpuMemorySize); } /// diff --git a/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs b/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs index ad6c1fecb..74967b190 100644 --- a/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs +++ b/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs @@ -1,3 +1,4 @@ +using Ryujinx.Common.Logging; using System; using System.Collections; using System.Collections.Generic; @@ -47,11 +48,17 @@ namespace Ryujinx.Graphics.Gpu.Image { private const int MinCountForDeletion = 32; private const int MaxCapacity = 2048; + private const ulong GiB = 1024 * 1024 * 1024; + private ulong MaxTextureSizeCapacity = 4UL * GiB; private const ulong MinTextureSizeCapacity = 512 * 1024 * 1024; - private const ulong MaxTextureSizeCapacity = 4UL * 1024 * 1024 * 1024; - private const ulong DefaultTextureSizeCapacity = 1UL * 1024 * 1024 * 1024; + private const ulong DefaultTextureSizeCapacity = 1 * GiB; + private const ulong TextureSizeCapacity6GiB = 4 * GiB; + private const ulong TextureSizeCapacity8GiB = 6 * GiB; + private const ulong TextureSizeCapacity12GiB = 12 * GiB; + + private const float MemoryScaleFactor = 0.50f; - private ulong _maxCacheMemoryUsage = 0; + private ulong _maxCacheMemoryUsage = DefaultTextureSizeCapacity; private readonly LinkedList _textures; private ulong _totalSize; @@ -66,18 +73,38 @@ namespace Ryujinx.Graphics.Gpu.Image /// /// /// If the backend GPU has 0 memory capacity, the cache size defaults to `DefaultTextureSizeCapacity`. + /// + /// Reads the current Device total CPU Memory, to determine the maximum amount of Vram available. Capped to 50% of Current GPU Memory. /// /// The GPU context that the cache belongs to - public void Initialize(GpuContext context) + /// The amount of physical CPU Memory Avaiable on the device. + public void Initialize(GpuContext context, ulong cpuMemorySize) { + var cpuMemorySizeGiB = cpuMemorySize / GiB; + + if (cpuMemorySizeGiB < 6 || context.Capabilities.MaximumGpuMemory == 0) + { + _maxCacheMemoryUsage = DefaultTextureSizeCapacity; + return; + } + else if (cpuMemorySizeGiB == 6) + { + MaxTextureSizeCapacity = TextureSizeCapacity6GiB; + } + else if (cpuMemorySizeGiB == 8) + { + MaxTextureSizeCapacity = TextureSizeCapacity8GiB; + } + else + { + MaxTextureSizeCapacity = TextureSizeCapacity12GiB; + } + var cacheMemory = (ulong)(context.Capabilities.MaximumGpuMemory * MemoryScaleFactor); _maxCacheMemoryUsage = Math.Clamp(cacheMemory, MinTextureSizeCapacity, MaxTextureSizeCapacity); - if (context.Capabilities.MaximumGpuMemory == 0) - { - _maxCacheMemoryUsage = DefaultTextureSizeCapacity; - } + Logger.Info?.Print(LogClass.Gpu, $"AutoDelete Cache Allocated VRAM : {_maxCacheMemoryUsage / GiB} GiB"); } /// diff --git a/src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs b/src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs index 1587e2018..2cfd9af5b 100644 --- a/src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs +++ b/src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs @@ -71,9 +71,10 @@ namespace Ryujinx.Graphics.Gpu.Image /// /// Initializes the cache, setting the maximum texture capacity for the specified GPU context. /// - public void Initialize() + /// The amount of physical CPU Memory Avaiable on the device. + public void Initialize(ulong cpuMemorySize) { - _cache.Initialize(_context); + _cache.Initialize(_context, cpuMemorySize); } /// diff --git a/src/Ryujinx.Graphics.Gpu/Memory/MemoryManager.cs b/src/Ryujinx.Graphics.Gpu/Memory/MemoryManager.cs index d1065431d..59e618c02 100644 --- a/src/Ryujinx.Graphics.Gpu/Memory/MemoryManager.cs +++ b/src/Ryujinx.Graphics.Gpu/Memory/MemoryManager.cs @@ -55,7 +55,8 @@ namespace Ryujinx.Graphics.Gpu.Memory /// Creates a new instance of the GPU memory manager. /// /// Physical memory that this memory manager will map into - internal MemoryManager(PhysicalMemory physicalMemory) + /// The amount of physical CPU Memory Avaiable on the device. + internal MemoryManager(PhysicalMemory physicalMemory, ulong cpuMemorySize) { Physical = physicalMemory; VirtualRangeCache = new VirtualRangeCache(this); @@ -65,7 +66,7 @@ namespace Ryujinx.Graphics.Gpu.Memory MemoryUnmapped += Physical.BufferCache.MemoryUnmappedHandler; MemoryUnmapped += VirtualRangeCache.MemoryUnmappedHandler; MemoryUnmapped += CounterCache.MemoryUnmappedHandler; - Physical.TextureCache.Initialize(); + Physical.TextureCache.Initialize(cpuMemorySize); } /// diff --git a/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs b/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs index 4308b08f8..56507a2a4 100644 --- a/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs +++ b/src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGenMemory.cs @@ -432,7 +432,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl.Instructions bool colorIsVector = isGather || !isShadow; - texCall += ")" + (colorIsVector ? GetMaskMultiDest(texOp.Index) : ""); + texCall += ")" + (colorIsVector ? GetMaskMultiDest(texOp.Index) : string.Empty); return texCall; } diff --git a/src/Ryujinx.Graphics.Shader/Translation/FunctionMatch.cs b/src/Ryujinx.Graphics.Shader/Translation/FunctionMatch.cs index 714a9d68c..b792776df 100644 --- a/src/Ryujinx.Graphics.Shader/Translation/FunctionMatch.cs +++ b/src/Ryujinx.Graphics.Shader/Translation/FunctionMatch.cs @@ -830,12 +830,12 @@ namespace Ryujinx.Graphics.Shader.Translation if (use.Node != null) { - Console.Write($"{indentation} {separator}- ({(use.Inverted ? "INV " : "")}{use.Index})"); + Console.Write($"{indentation} {separator}- ({(use.Inverted ? "INV " : string.Empty)}{use.Index})"); PrintTreeNode(use.Node, indentation + (last ? " " : " | ")); } else { - Console.WriteLine($"{indentation} {separator}- ({(use.Inverted ? "INV " : "")}{use.Index}) NULL"); + Console.WriteLine($"{indentation} {separator}- ({(use.Inverted ? "INV " : string.Empty)}{use.Index}) NULL"); } } } @@ -852,12 +852,12 @@ namespace Ryujinx.Graphics.Shader.Translation if (use.Node != null) { - Console.Write($"{indentation} {separator}- ({(use.Inverted ? "INV " : "")}{use.Index})"); + Console.Write($"{indentation} {separator}- ({(use.Inverted ? "INV " : string.Empty)}{use.Index})"); PrintTreeNode(use.Node, indentation + (last ? " " : " | ")); } else { - Console.WriteLine($"{indentation} {separator}- ({(use.Inverted ? "INV " : "")}{use.Index}) NULL"); + Console.WriteLine($"{indentation} {separator}- ({(use.Inverted ? "INV " : string.Empty)}{use.Index}) NULL"); } } } diff --git a/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs b/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs index e84d18ee9..cc2bc36c2 100644 --- a/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs +++ b/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs @@ -104,25 +104,27 @@ namespace Ryujinx.Graphics.Vulkan public event EventHandler ScreenCaptured; - public VulkanRenderer(Vk api, Func surfaceFunc, Func requiredExtensionsFunc, string preferredGpuId) + public VulkanRenderer(Vk api, Func getSurface, Func requiredExtensionsFunc, string preferredGpuId) { - _getSurface = surfaceFunc; + _getSurface = getSurface; _getRequiredExtensions = requiredExtensionsFunc; _preferredGpuId = preferredGpuId; Api = api; - Shaders = new HashSet(); - Textures = new HashSet(); - Samplers = new HashSet(); + Shaders = []; + Textures = []; + Samplers = []; - if (OperatingSystem.IsMacOS()) - { + // Any device running on MacOS is using MoltenVK, even Intel and AMD vendors. + if (IsMoltenVk = OperatingSystem.IsMacOS()) MVKInitialization.Initialize(); - - // Any device running on MacOS is using MoltenVK, even Intel and AMD vendors. - IsMoltenVk = true; - } } + public static VulkanRenderer Create( + string preferredGpuId, + Func getSurface, + Func getRequiredExtensions + ) => new(Vk.GetApi(), getSurface, getRequiredExtensions, preferredGpuId); + private unsafe void LoadFeatures(uint maxQueueCount, uint queueFamilyIndex) { FormatCapabilities = new FormatCapabilities(Api, _physicalDevice.PhysicalDevice); diff --git a/src/Ryujinx.HLE.Generators/IpcServiceGenerator.cs b/src/Ryujinx.HLE.Generators/IpcServiceGenerator.cs index d6b6f23ef..5dcd49af5 100644 --- a/src/Ryujinx.HLE.Generators/IpcServiceGenerator.cs +++ b/src/Ryujinx.HLE.Generators/IpcServiceGenerator.cs @@ -22,7 +22,7 @@ namespace Ryujinx.HLE.Generators { if (className.Modifiers.Any(SyntaxKind.AbstractKeyword) || className.Modifiers.Any(SyntaxKind.PrivateKeyword) || !className.AttributeLists.Any(x => x.Attributes.Any(y => y.ToString().StartsWith("Service")))) continue; - var name = GetFullName(className, context).Replace("global::", ""); + var name = GetFullName(className, context).Replace("global::", string.Empty); if (!name.StartsWith("Ryujinx.HLE.HOS.Services")) continue; var constructors = className.ChildNodes().Where(x => x.IsKind(SyntaxKind.ConstructorDeclaration)).Select(y => y as ConstructorDeclarationSyntax).ToArray(); diff --git a/src/Ryujinx.HLE/FileSystem/ContentManager.cs b/src/Ryujinx.HLE/FileSystem/ContentManager.cs index 952271fa1..fc8def9d2 100644 --- a/src/Ryujinx.HLE/FileSystem/ContentManager.cs +++ b/src/Ryujinx.HLE/FileSystem/ContentManager.cs @@ -523,7 +523,7 @@ namespace Ryujinx.HLE.FileSystem { // Clean up the name and get the NcaId - string[] pathComponents = entry.FullName.Replace(".cnmt", "").Split('/'); + string[] pathComponents = entry.FullName.Replace(".cnmt", string.Empty).Split('/'); string ncaId = pathComponents[^1]; diff --git a/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs b/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs index 0e1265fb6..39c544eac 100644 --- a/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs +++ b/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs @@ -132,7 +132,7 @@ namespace Ryujinx.HLE.FileSystem if (systemPath.StartsWith(baseSystemPath)) { - string rawPath = systemPath.Replace(baseSystemPath, ""); + string rawPath = systemPath.Replace(baseSystemPath, string.Empty); int firstSeparatorOffset = rawPath.IndexOf(Path.DirectorySeparatorChar); if (firstSeparatorOffset == -1) diff --git a/src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs b/src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs index 5a40433cb..87d88fc65 100644 --- a/src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs +++ b/src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs @@ -107,7 +107,7 @@ namespace Ryujinx.HLE.HOS.Applets.Error private static string CleanText(string value) { - return CleanTextRegex().Replace(value, "").Replace("\0", ""); + return CleanTextRegex().Replace(value, string.Empty).Replace("\0", string.Empty); } private string GetMessageText(uint module, uint description, string key) @@ -129,17 +129,15 @@ namespace Ryujinx.HLE.HOS.Applets.Error return CleanText(reader.ReadToEnd()); } - else - { - return ""; - } + + return string.Empty; } private string[] GetButtonsText(uint module, uint description, string key) { string buttonsText = GetMessageText(module, description, key); - return (buttonsText == "") ? null : buttonsText.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None); + return (buttonsText == string.Empty) ? null : buttonsText.Split(["\r\n", "\r", "\n"], StringSplitOptions.None); } private void ParseErrorCommonArg() @@ -156,7 +154,7 @@ namespace Ryujinx.HLE.HOS.Applets.Error string message = GetMessageText(module, description, "DlgMsg"); - if (message == "") + if (message == string.Empty) { message = "An error has occured.\n\nPlease try again later."; } @@ -190,7 +188,7 @@ namespace Ryujinx.HLE.HOS.Applets.Error // TODO: Handle the LanguageCode to return the translated "OK" and "Details". - if (detailsText.Trim() != "") + if (detailsText.Trim() != string.Empty) { buttons.Add("Details"); } diff --git a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs index 0462a5b00..e04fc64fe 100644 --- a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs +++ b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs @@ -51,7 +51,7 @@ namespace Ryujinx.HLE.HOS.Applets private byte[] _transferMemory; - private string _textValue = ""; + private string _textValue = string.Empty; private int _cursorBegin = 0; private Encoding _encoding = Encoding.Unicode; private KeyboardResult _lastResult = KeyboardResult.NotSet; diff --git a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardRendererBase.cs b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardRendererBase.cs index cc62eca1d..67b5f2b1f 100644 --- a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardRendererBase.cs +++ b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardRendererBase.cs @@ -305,7 +305,7 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard { SKRect bounds = SKRect.Empty; - if (text == "") + if (text == string.Empty) { paint.MeasureText(" ", ref bounds); } @@ -321,7 +321,7 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard { SKRect bounds = SKRect.Empty; - if (text == "") + if (text == string.Empty) { paint.MeasureText(" ", ref bounds); } diff --git a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardUIState.cs b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardUIState.cs index 6199ff666..da5220364 100644 --- a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardUIState.cs +++ b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardUIState.cs @@ -7,7 +7,7 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard /// internal class SoftwareKeyboardUIState { - public string InputText = ""; + public string InputText = string.Empty; public int CursorBegin = 0; public int CursorEnd = 0; public bool AcceptPressed = false; diff --git a/src/Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs b/src/Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs index 7578f1d2f..ff3de4a17 100644 --- a/src/Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs +++ b/src/Ryujinx.HLE/HOS/Kernel/Process/HleProcessDebugger.cs @@ -238,7 +238,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process } else { - info.SubName = ""; + info.SubName = string.Empty; } info.ImageName = GetGuessedNsoNameFromIndex(imageIndex); diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountManager.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountManager.cs index c724660ea..d2da9e248 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountManager.cs @@ -64,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc { if (userId.IsNull) { - userId = new UserId(Guid.NewGuid().ToString().Replace("-", "")); + userId = new UserId(Guid.NewGuid().ToString().Replace("-", string.Empty)); } UserProfile profile = new(userId, name, image); diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/Hid.cs b/src/Ryujinx.HLE/HOS/Services/Hid/Hid.cs index dbcbe1870..66b5a5cba 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/Hid.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/Hid.cs @@ -5,6 +5,7 @@ using Ryujinx.HLE.Exceptions; using Ryujinx.HLE.HOS.Kernel.Memory; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Common; +using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.DebugMouse; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.DebugPad; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Keyboard; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Mouse; @@ -28,6 +29,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid public DebugPadDevice DebugPad; public TouchDevice Touchscreen; public MouseDevice Mouse; + public DebugMouseDevice DebugMouse; public KeyboardDevice Keyboard; public NpadDevices Npads; @@ -44,6 +46,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid CheckTypeSizeOrThrow>(0x2c8); CheckTypeSizeOrThrow>(0x2C38); CheckTypeSizeOrThrow>(0x350); + CheckTypeSizeOrThrow>(0x350); CheckTypeSizeOrThrow>(0x3D8); CheckTypeSizeOrThrow>(0x32000); CheckTypeSizeOrThrow(Horizon.HidSize); @@ -64,6 +67,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid DebugPad = new DebugPadDevice(_device, true); Touchscreen = new TouchDevice(_device, true); Mouse = new MouseDevice(_device, false); + DebugMouse = new DebugMouseDevice(_device, false); Keyboard = new KeyboardDevice(_device, false); Npads = new NpadDevices(_device, true); } diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/HidDevices/DebugMouseDevice.cs b/src/Ryujinx.HLE/HOS/Services/Hid/HidDevices/DebugMouseDevice.cs new file mode 100644 index 000000000..cb917444b --- /dev/null +++ b/src/Ryujinx.HLE/HOS/Services/Hid/HidDevices/DebugMouseDevice.cs @@ -0,0 +1,29 @@ +using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Common; +using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.DebugMouse; + +namespace Ryujinx.HLE.HOS.Services.Hid +{ + public class DebugMouseDevice : BaseDevice + { + public DebugMouseDevice(Switch device, bool active) : base(device, active) { } + + public void Update() + { + ref RingLifo lifo = ref _device.Hid.SharedMemory.DebugMouse; + + ref DebugMouseState previousEntry = ref lifo.GetCurrentEntryRef(); + + DebugMouseState newState = new() + { + SamplingNumber = previousEntry.SamplingNumber + 1, + }; + + if (Active) + { + // TODO: This is a debug device only present in dev environment, do we want to support it? + } + + lifo.Write(ref newState); + } + } +} diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs b/src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs index e3f505f37..556e35ea6 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs @@ -130,6 +130,26 @@ namespace Ryujinx.HLE.HOS.Services.Hid return ResultCode.Success; } + + [CommandCmif(26)] + // ActivateDebugMouse(nn::applet::AppletResourceUserId) + public ResultCode ActivateDebugMouse(ServiceCtx context) + { + long appletResourceUserId = context.RequestData.ReadInt64(); + + context.Device.Hid.DebugMouse.Active = true; + + // Initialize entries to avoid issues with some games. + + for (int entry = 0; entry < Hid.SharedMemEntryCount; entry++) + { + context.Device.Hid.DebugMouse.Update(); + } + + Logger.Stub?.PrintStub(LogClass.ServiceHid, new { appletResourceUserId }); + + return ResultCode.Success; + } [CommandCmif(31)] // ActivateKeyboard(nn::applet::AppletResourceUserId) diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseAttribute.cs b/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseAttribute.cs new file mode 100644 index 000000000..0b55277d4 --- /dev/null +++ b/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseAttribute.cs @@ -0,0 +1,12 @@ +using System; + +namespace Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.DebugMouse +{ + [Flags] + enum DebugMouseAttribute : uint + { + None = 0, + Transferable = 1 << 0, + IsConnected = 1 << 1, + } +} diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseButton.cs b/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseButton.cs new file mode 100644 index 000000000..c07fa84af --- /dev/null +++ b/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseButton.cs @@ -0,0 +1,15 @@ +using System; + +namespace Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.DebugMouse +{ + [Flags] + enum DebugMouseButton : uint + { + None = 0, + Left = 1 << 0, + Right = 1 << 1, + Middle = 1 << 2, + Forward = 1 << 3, + Back = 1 << 4, + } +} diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseState.cs b/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseState.cs new file mode 100644 index 000000000..e2860c9f5 --- /dev/null +++ b/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/DebugMouse/DebugMouseState.cs @@ -0,0 +1,19 @@ +using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Common; +using System.Runtime.InteropServices; + +namespace Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.DebugMouse +{ + [StructLayout(LayoutKind.Sequential, Pack = 1)] + struct DebugMouseState : ISampledDataStruct + { + public ulong SamplingNumber; + public int X; + public int Y; + public int DeltaX; + public int DeltaY; + public int WheelDeltaX; + public int WheelDeltaY; + public DebugMouseButton Buttons; + public DebugMouseAttribute Attributes; + } +} diff --git a/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/SharedMemory.cs b/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/SharedMemory.cs index d6283eb57..59d8f4489 100644 --- a/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/SharedMemory.cs +++ b/src/Ryujinx.HLE/HOS/Services/Hid/Types/SharedMemory/SharedMemory.cs @@ -1,5 +1,6 @@ using Ryujinx.Common.Memory; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Common; +using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.DebugMouse; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.DebugPad; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Keyboard; using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Mouse; @@ -44,6 +45,12 @@ namespace Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory /// [FieldOffset(0x9A00)] public Array10 Npads; + + /// + /// Debug mouse. + /// + [FieldOffset(0x3DC00)] + public RingLifo DebugMouse; public static SharedMemory Create() { diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/LdnMitm/LanProtocol.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/LdnMitm/LanProtocol.cs index 4b01bfe31..b60b70d80 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/LdnMitm/LanProtocol.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/LdnMitm/LanProtocol.cs @@ -1,3 +1,4 @@ +using Gommon; using Ryujinx.Common.Logging; using Ryujinx.Common.Memory; using Ryujinx.Common.Utilities; @@ -143,7 +144,7 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator.LdnMitm if (decompressedLdnData.Length != header.DecompressLength) { Logger.Error?.PrintMsg(LogClass.ServiceLdn, $"Decompress error: length does not match. ({decompressedLdnData.Length} != {header.DecompressLength})"); - Logger.Error?.PrintMsg(LogClass.ServiceLdn, $"Decompress error data: '{string.Join("", decompressedLdnData.Select(x => (int)x).ToArray())}'"); + Logger.Error?.PrintMsg(LogClass.ServiceLdn, $"Decompress error data: '{decompressedLdnData.Select(x => (int)x).JoinToString(string.Empty)}'"); return; } diff --git a/src/Ryujinx.HLE/HOS/Services/Ngct/NgctServer.cs b/src/Ryujinx.HLE/HOS/Services/Ngct/NgctServer.cs index f652ecda8..b076958eb 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ngct/NgctServer.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ngct/NgctServer.cs @@ -15,7 +15,7 @@ namespace Ryujinx.HLE.HOS.Services.Ngct ulong bufferSize = context.Request.PtrBuff[0].Size; bool isMatch = false; - string text = ""; + string text = string.Empty; if (bufferSize != 0) { @@ -57,8 +57,8 @@ namespace Ryujinx.HLE.HOS.Services.Ngct ulong bufferFilteredPosition = context.Request.RecvListBuff[0].Position; - string text = ""; - string textFiltered = ""; + string text = string.Empty; + string textFiltered = string.Empty; if (bufferSize != 0) { diff --git a/src/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs b/src/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs index ff9a67644..0f5d7547c 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs @@ -42,7 +42,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu public NvHostAsGpuDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, ulong owner) : base(context, owner) { - _asContext = new AddressSpaceContext(context.Device.Gpu.CreateMemoryManager(owner)); + _asContext = new AddressSpaceContext(context.Device.Gpu.CreateMemoryManager(owner, context.Device.Memory.Size)); _memoryAllocator = new NvMemoryAllocator(); } diff --git a/src/Ryujinx.HLE/HOS/Services/Settings/NxSettings.cs b/src/Ryujinx.HLE/HOS/Services/Settings/NxSettings.cs index b2d4d55cc..b0b854f74 100644 --- a/src/Ryujinx.HLE/HOS/Services/Settings/NxSettings.cs +++ b/src/Ryujinx.HLE/HOS/Services/Settings/NxSettings.cs @@ -73,1529 +73,1529 @@ namespace Ryujinx.HLE.HOS.Services.Settings { "ns.sdcard!compare_sdcard", 0 }, { "ns.gamecard!mount_gamecard_result_value", 0 }, { "ns.gamecard!try_gamecard_access_result_value", 0 }, - { "nv!00008600", "" }, - { "nv!0007b25e", "" }, - { "nv!0083e1", "" }, - { "nv!01621887", "" }, - { "nv!03134743", "" }, - { "nv!0356afd0", "" }, - { "nv!0356afd1", "" }, - { "nv!0356afd2", "" }, - { "nv!0356afd3", "" }, - { "nv!094313", "" }, - { "nv!0x04dc09", "" }, - { "nv!0x111133", "" }, - { "nv!0x1aa483", "" }, - { "nv!0x1cb1cf", "" }, - { "nv!0x1cb1d0", "" }, - { "nv!0x1e3221", "" }, - { "nv!0x300fc8", "" }, - { "nv!0x301fc8", "" }, - { "nv!0x302fc8", "" }, - { "nv!0x3eec59", "" }, - { "nv!0x46b3ed", "" }, - { "nv!0x523dc0", "" }, - { "nv!0x523dc1", "" }, - { "nv!0x523dc2", "" }, - { "nv!0x523dc3", "" }, - { "nv!0x523dc4", "" }, - { "nv!0x523dc5", "" }, - { "nv!0x523dc6", "" }, - { "nv!0x523dd0", "" }, - { "nv!0x523dd1", "" }, - { "nv!0x523dd3", "" }, - { "nv!0x5344bb", "" }, - { "nv!0x555237", "" }, - { "nv!0x58a234", "" }, - { "nv!0x7b4428", "" }, - { "nv!0x923dc0", "" }, - { "nv!0x923dc1", "" }, - { "nv!0x923dc2", "" }, - { "nv!0x923dc3", "" }, - { "nv!0x923dc4", "" }, - { "nv!0x923dd3", "" }, - { "nv!0x9abdc5", "" }, - { "nv!0x9abdc6", "" }, - { "nv!0xaaa36c", "" }, - { "nv!0xb09da0", "" }, - { "nv!0xb09da1", "" }, - { "nv!0xb09da2", "" }, - { "nv!0xb09da3", "" }, - { "nv!0xb09da4", "" }, - { "nv!0xb09da5", "" }, - { "nv!0xb0b348", "" }, - { "nv!0xb0b349", "" }, - { "nv!0xbb558f", "" }, - { "nv!0xbd10fb", "" }, - { "nv!0xc32ad3", "" }, - { "nv!0xce2348", "" }, - { "nv!0xcfd81f", "" }, - { "nv!0xe0036b", "" }, - { "nv!0xe01f2d", "" }, - { "nv!0xe17212", "" }, - { "nv!0xeae966", "" }, - { "nv!0xed4f82", "" }, - { "nv!0xf12335", "" }, - { "nv!0xf12336", "" }, - { "nv!10261989", "" }, - { "nv!1042d483", "" }, - { "nv!10572898", "" }, - { "nv!115631", "" }, - { "nv!12950094", "" }, - { "nv!1314f311", "" }, - { "nv!1314f312", "" }, - { "nv!13279512", "" }, - { "nv!13813496", "" }, - { "nv!14507179", "" }, - { "nv!15694569", "" }, - { "nv!16936964", "" }, - { "nv!17aa230c", "" }, - { "nv!182054", "" }, - { "nv!18273275", "" }, - { "nv!18273276", "" }, - { "nv!1854d03b", "" }, - { "nv!18add00d", "" }, - { "nv!19156670", "" }, - { "nv!19286545", "" }, - { "nv!1a298e9f", "" }, - { "nv!1acf43fe", "" }, - { "nv!1bda43fe", "" }, - { "nv!1c3b92", "" }, - { "nv!21509920", "" }, - { "nv!215323457", "" }, - { "nv!2165ad", "" }, - { "nv!2165ae", "" }, - { "nv!21be9c", "" }, - { "nv!233264316", "" }, - { "nv!234557580", "" }, - { "nv!23cd0e", "" }, - { "nv!24189123", "" }, - { "nv!2443266", "" }, - { "nv!25025519", "" }, - { "nv!255e39", "" }, - { "nv!2583364", "" }, - { "nv!2888c1", "" }, - { "nv!28ca3e", "" }, - { "nv!29871243", "" }, - { "nv!2a1f64", "" }, - { "nv!2dc432", "" }, - { "nv!2de437", "" }, - { "nv!2f3bb89c", "" }, - { "nv!2fd652", "" }, - { "nv!3001ac", "" }, - { "nv!31298772", "" }, - { "nv!313233", "" }, - { "nv!31f7d603", "" }, - { "nv!320ce4", "" }, - { "nv!32153248", "" }, - { "nv!32153249", "" }, - { "nv!335bca", "" }, - { "nv!342abb", "" }, - { "nv!34dfe6", "" }, - { "nv!34dfe7", "" }, - { "nv!34dfe8", "" }, - { "nv!34dfe9", "" }, - { "nv!35201578", "" }, - { "nv!359278", "" }, - { "nv!37f53a", "" }, - { "nv!38144972", "" }, - { "nv!38542646", "" }, - { "nv!3b74c9", "" }, - { "nv!3c136f", "" }, - { "nv!3cf72823", "" }, - { "nv!3d7af029", "" }, - { "nv!3ff34782", "" }, - { "nv!4129618", "" }, - { "nv!4189fac3", "" }, - { "nv!420bd4", "" }, - { "nv!42a699", "" }, - { "nv!441369", "" }, - { "nv!4458713e", "" }, - { "nv!4554b6", "" }, - { "nv!457425", "" }, - { "nv!4603b207", "" }, - { "nv!46574957", "" }, - { "nv!46574958", "" }, - { "nv!46813529", "" }, - { "nv!46f1e13d", "" }, - { "nv!47534c43", "" }, - { "nv!48550336", "" }, - { "nv!48576893", "" }, - { "nv!48576894", "" }, - { "nv!4889ac02", "" }, - { "nv!49005740", "" }, - { "nv!49867584", "" }, - { "nv!49960973", "" }, - { "nv!4a5341", "" }, - { "nv!4f4e48", "" }, - { "nv!4f8a0a", "" }, - { "nv!50299698", "" }, - { "nv!50299699", "" }, - { "nv!50361291", "" }, - { "nv!5242ae", "" }, - { "nv!53d30c", "" }, - { "nv!56347a", "" }, - { "nv!563a95f1", "" }, - { "nv!573823", "" }, - { "nv!58027529", "" }, - { "nv!5d2d63", "" }, - { "nv!5f7e3b", "" }, - { "nv!60461793", "" }, - { "nv!60d355", "" }, - { "nv!616627aa", "" }, - { "nv!62317182", "" }, - { "nv!6253fa2e", "" }, - { "nv!64100768", "" }, - { "nv!64100769", "" }, - { "nv!64100770", "" }, - { "nv!647395", "" }, - { "nv!66543234", "" }, - { "nv!67674763", "" }, - { "nv!67739784", "" }, - { "nv!68fb9c", "" }, - { "nv!69801276", "" }, - { "nv!6af9fa2f", "" }, - { "nv!6af9fa3f", "" }, - { "nv!6af9fa4f", "" }, - { "nv!6bd8c7", "" }, - { "nv!6c7691", "" }, - { "nv!6d4296ce", "" }, - { "nv!6dd7e7", "" }, - { "nv!6dd7e8", "" }, - { "nv!6fe11ec1", "" }, - { "nv!716511763", "" }, - { "nv!72504593", "" }, - { "nv!73304097", "" }, - { "nv!73314098", "" }, - { "nv!74095213", "" }, - { "nv!74095213a", "" }, - { "nv!74095213b", "" }, - { "nv!74095214", "" }, - { "nv!748f9649", "" }, - { "nv!75494732", "" }, - { "nv!78452832", "" }, - { "nv!784561", "" }, - { "nv!78e16b9c", "" }, - { "nv!79251225", "" }, - { "nv!7c128b", "" }, - { "nv!7ccd93", "" }, - { "nv!7df8d1", "" }, - { "nv!800c2310", "" }, - { "nv!80546710", "" }, - { "nv!80772310", "" }, - { "nv!808ee280", "" }, - { "nv!81131154", "" }, - { "nv!81274457", "" }, - { "nv!8292291f", "" }, - { "nv!83498426", "" }, - { "nv!84993794", "" }, - { "nv!84995585", "" }, - { "nv!84a0a0", "" }, - { "nv!852142", "" }, - { "nv!85612309", "" }, - { "nv!85612310", "" }, - { "nv!85612311", "" }, - { "nv!85612312", "" }, - { "nv!8623ff27", "" }, - { "nv!87364952", "" }, - { "nv!87f6275666", "" }, - { "nv!886748", "" }, - { "nv!89894423", "" }, - { "nv!8ad8a75", "" }, - { "nv!8ad8ad00", "" }, - { "nv!8bb815", "" }, - { "nv!8bb817", "" }, - { "nv!8bb818", "" }, - { "nv!8bb819", "" }, - { "nv!8e640cd1", "" }, - { "nv!8f34971a", "" }, - { "nv!8f773984", "" }, - { "nv!8f7a7d", "" }, - { "nv!902486209", "" }, - { "nv!90482571", "" }, - { "nv!91214835", "" }, - { "nv!912848290", "" }, - { "nv!915e56", "" }, - { "nv!92179063", "" }, - { "nv!92179064", "" }, - { "nv!92179065", "" }, - { "nv!92179066", "" }, - { "nv!92350358", "" }, - { "nv!92809063", "" }, - { "nv!92809064", "" }, - { "nv!92809065", "" }, - { "nv!92809066", "" }, - { "nv!92920143", "" }, - { "nv!93a89b12", "" }, - { "nv!93a89c0b", "" }, - { "nv!94812574", "" }, - { "nv!95282304", "" }, - { "nv!95394027", "" }, - { "nv!959b1f", "" }, - { "nv!9638af", "" }, - { "nv!96fd59", "" }, - { "nv!97f6275666", "" }, - { "nv!97f6275667", "" }, - { "nv!97f6275668", "" }, - { "nv!97f6275669", "" }, - { "nv!97f627566a", "" }, - { "nv!97f627566b", "" }, - { "nv!97f627566d", "" }, - { "nv!97f627566e", "" }, - { "nv!97f627566f", "" }, - { "nv!97f6275670", "" }, - { "nv!97f6275671", "" }, - { "nv!97f727566e", "" }, - { "nv!98480775", "" }, - { "nv!98480776", "" }, - { "nv!98480777", "" }, - { "nv!992431", "" }, - { "nv!9aa29065", "" }, - { "nv!9af32c", "" }, - { "nv!9af32d", "" }, - { "nv!9af32e", "" }, - { "nv!9c108b71", "" }, - { "nv!9f279065", "" }, - { "nv!a01bc728", "" }, - { "nv!a13b46c80", "" }, - { "nv!a22eb0", "" }, - { "nv!a2fb451e", "" }, - { "nv!a3456abe", "" }, - { "nv!a7044887", "" }, - { "nv!a7149200", "" }, - { "nv!a766215670", "" }, - { "nv!aac_drc_boost", "" }, - { "nv!aac_drc_cut", "" }, - { "nv!aac_drc_enc_target_level", "" }, - { "nv!aac_drc_heavy", "" }, - { "nv!aac_drc_reference_level", "" }, - { "nv!aalinegamma", "" }, - { "nv!aalinetweaks", "" }, - { "nv!ab34ee01", "" }, - { "nv!ab34ee02", "" }, - { "nv!ab34ee03", "" }, - { "nv!ac0274", "" }, - { "nv!af73c63e", "" }, - { "nv!af73c63f", "" }, - { "nv!af9927", "" }, - { "nv!afoverride", "" }, - { "nv!allocdeviceevents", "" }, - { "nv!applicationkey", "" }, - { "nv!appreturnonlybasicglsltype", "" }, - { "nv!app_softimage", "" }, - { "nv!app_supportbits2", "" }, - { "nv!assumetextureismipmappedatcreation", "" }, - { "nv!b1fb0f01", "" }, - { "nv!b3edd5", "" }, - { "nv!b40d9e03d", "" }, - { "nv!b7f6275666", "" }, - { "nv!b812c1", "" }, - { "nv!ba14ba1a", "" }, - { "nv!ba14ba1b", "" }, - { "nv!bd7559", "" }, - { "nv!bd755a", "" }, - { "nv!bd755c", "" }, - { "nv!bd755d", "" }, - { "nv!be58bb", "" }, - { "nv!be92cb", "" }, - { "nv!beefcba3", "" }, - { "nv!beefcba4", "" }, - { "nv!c023777f", "" }, - { "nv!c09dc8", "" }, - { "nv!c0d340", "" }, - { "nv!c2ff374c", "" }, - { "nv!c5e9d7a3", "" }, - { "nv!c5e9d7a4", "" }, - { "nv!c5e9d7b4", "" }, - { "nv!c618f9", "" }, - { "nv!ca345840", "" }, - { "nv!cachedisable", "" }, - { "nv!cast.on", "" }, - { "nv!cde", "" }, - { "nv!channelpriorityoverride", "" }, - { "nv!cleardatastorevidmem", "" }, - { "nv!cmdbufmemoryspaceenables", "" }, - { "nv!cmdbufminwords", "" }, - { "nv!cmdbufsizewords", "" }, - { "nv!conformantblitframebufferscissor", "" }, - { "nv!conformantincompletetextures", "" }, - { "nv!copybuffermethod", "" }, - { "nv!cubemapaniso", "" }, - { "nv!cubemapfiltering", "" }, - { "nv!d0e9a4d7", "" }, - { "nv!d13733f12", "" }, - { "nv!d1b399", "" }, - { "nv!d2983c32", "" }, - { "nv!d2983c33", "" }, - { "nv!d2e71b", "" }, - { "nv!d377dc", "" }, - { "nv!d377dd", "" }, - { "nv!d489f4", "" }, - { "nv!d4bce1", "" }, - { "nv!d518cb", "" }, - { "nv!d518cd", "" }, - { "nv!d518ce", "" }, - { "nv!d518d0", "" }, - { "nv!d518d1", "" }, - { "nv!d518d2", "" }, - { "nv!d518d3", "" }, - { "nv!d518d4", "" }, - { "nv!d518d5", "" }, - { "nv!d59eda", "" }, - { "nv!d83cbd", "" }, - { "nv!d8e777", "" }, - { "nv!debug_level", "" }, - { "nv!debug_mask", "" }, - { "nv!debug_options", "" }, - { "nv!devshmpageableallocations", "" }, - { "nv!df1f9812", "" }, - { "nv!df783c", "" }, - { "nv!diagenable", "" }, - { "nv!disallowcemask", "" }, - { "nv!disallowz16", "" }, - { "nv!dlmemoryspaceenables", "" }, - { "nv!e0bfec", "" }, - { "nv!e433456d", "" }, - { "nv!e435563f", "" }, - { "nv!e4cd9c", "" }, - { "nv!e5c972", "" }, - { "nv!e639ef", "" }, - { "nv!e802af", "" }, - { "nv!eae964", "" }, - { "nv!earlytexturehwallocation", "" }, - { "nv!eb92a3", "" }, - { "nv!ebca56", "" }, - { "nv!enable-noaud", "" }, - { "nv!enable-noavs", "" }, - { "nv!enable-prof", "" }, - { "nv!enable-sxesmode", "" }, - { "nv!enable-ulld", "" }, - { "nv!expert_detail_level", "" }, - { "nv!expert_output_mask", "" }, - { "nv!expert_report_mask", "" }, - { "nv!extensionstringnvarch", "" }, - { "nv!extensionstringversion", "" }, - { "nv!f00f1938", "" }, - { "nv!f10736", "" }, - { "nv!f1846870", "" }, - { "nv!f33bc370", "" }, - { "nv!f392a874", "" }, - { "nv!f49ae8", "" }, - { "nv!fa345cce", "" }, - { "nv!fa35cc4", "" }, - { "nv!faa14a", "" }, - { "nv!faf8a723", "" }, - { "nv!fastgs", "" }, - { "nv!fbf4ac45", "" }, - { "nv!fbo_blit_ignore_srgb", "" }, - { "nv!fc64c7", "" }, - { "nv!ff54ec97", "" }, - { "nv!ff54ec98", "" }, - { "nv!forceexitprocessdetach", "" }, - { "nv!forcerequestedesversion", "" }, - { "nv!__gl_", "" }, - { "nv!__gl_00008600", "" }, - { "nv!__gl_0007b25e", "" }, - { "nv!__gl_0083e1", "" }, - { "nv!__gl_01621887", "" }, - { "nv!__gl_03134743", "" }, - { "nv!__gl_0356afd0", "" }, - { "nv!__gl_0356afd1", "" }, - { "nv!__gl_0356afd2", "" }, - { "nv!__gl_0356afd3", "" }, - { "nv!__gl_094313", "" }, - { "nv!__gl_0x04dc09", "" }, - { "nv!__gl_0x111133", "" }, - { "nv!__gl_0x1aa483", "" }, - { "nv!__gl_0x1cb1cf", "" }, - { "nv!__gl_0x1cb1d0", "" }, - { "nv!__gl_0x1e3221", "" }, - { "nv!__gl_0x300fc8", "" }, - { "nv!__gl_0x301fc8", "" }, - { "nv!__gl_0x302fc8", "" }, - { "nv!__gl_0x3eec59", "" }, - { "nv!__gl_0x46b3ed", "" }, - { "nv!__gl_0x523dc0", "" }, - { "nv!__gl_0x523dc1", "" }, - { "nv!__gl_0x523dc2", "" }, - { "nv!__gl_0x523dc3", "" }, - { "nv!__gl_0x523dc4", "" }, - { "nv!__gl_0x523dc5", "" }, - { "nv!__gl_0x523dc6", "" }, - { "nv!__gl_0x523dd0", "" }, - { "nv!__gl_0x523dd1", "" }, - { "nv!__gl_0x523dd3", "" }, - { "nv!__gl_0x5344bb", "" }, - { "nv!__gl_0x555237", "" }, - { "nv!__gl_0x58a234", "" }, - { "nv!__gl_0x7b4428", "" }, - { "nv!__gl_0x923dc0", "" }, - { "nv!__gl_0x923dc1", "" }, - { "nv!__gl_0x923dc2", "" }, - { "nv!__gl_0x923dc3", "" }, - { "nv!__gl_0x923dc4", "" }, - { "nv!__gl_0x923dd3", "" }, - { "nv!__gl_0x9abdc5", "" }, - { "nv!__gl_0x9abdc6", "" }, - { "nv!__gl_0xaaa36c", "" }, - { "nv!__gl_0xb09da0", "" }, - { "nv!__gl_0xb09da1", "" }, - { "nv!__gl_0xb09da2", "" }, - { "nv!__gl_0xb09da3", "" }, - { "nv!__gl_0xb09da4", "" }, - { "nv!__gl_0xb09da5", "" }, - { "nv!__gl_0xb0b348", "" }, - { "nv!__gl_0xb0b349", "" }, - { "nv!__gl_0xbb558f", "" }, - { "nv!__gl_0xbd10fb", "" }, - { "nv!__gl_0xc32ad3", "" }, - { "nv!__gl_0xce2348", "" }, - { "nv!__gl_0xcfd81f", "" }, - { "nv!__gl_0xe0036b", "" }, - { "nv!__gl_0xe01f2d", "" }, - { "nv!__gl_0xe17212", "" }, - { "nv!__gl_0xeae966", "" }, - { "nv!__gl_0xed4f82", "" }, - { "nv!__gl_0xf12335", "" }, - { "nv!__gl_0xf12336", "" }, - { "nv!__gl_10261989", "" }, - { "nv!__gl_1042d483", "" }, - { "nv!__gl_10572898", "" }, - { "nv!__gl_115631", "" }, - { "nv!__gl_12950094", "" }, - { "nv!__gl_1314f311", "" }, - { "nv!__gl_1314f312", "" }, - { "nv!__gl_13279512", "" }, - { "nv!__gl_13813496", "" }, - { "nv!__gl_14507179", "" }, - { "nv!__gl_15694569", "" }, - { "nv!__gl_16936964", "" }, - { "nv!__gl_17aa230c", "" }, - { "nv!__gl_182054", "" }, - { "nv!__gl_18273275", "" }, - { "nv!__gl_18273276", "" }, - { "nv!__gl_1854d03b", "" }, - { "nv!__gl_18add00d", "" }, - { "nv!__gl_19156670", "" }, - { "nv!__gl_19286545", "" }, - { "nv!__gl_1a298e9f", "" }, - { "nv!__gl_1acf43fe", "" }, - { "nv!__gl_1bda43fe", "" }, - { "nv!__gl_1c3b92", "" }, - { "nv!__gl_21509920", "" }, - { "nv!__gl_215323457", "" }, - { "nv!__gl_2165ad", "" }, - { "nv!__gl_2165ae", "" }, - { "nv!__gl_21be9c", "" }, - { "nv!__gl_233264316", "" }, - { "nv!__gl_234557580", "" }, - { "nv!__gl_23cd0e", "" }, - { "nv!__gl_24189123", "" }, - { "nv!__gl_2443266", "" }, - { "nv!__gl_25025519", "" }, - { "nv!__gl_255e39", "" }, - { "nv!__gl_2583364", "" }, - { "nv!__gl_2888c1", "" }, - { "nv!__gl_28ca3e", "" }, - { "nv!__gl_29871243", "" }, - { "nv!__gl_2a1f64", "" }, - { "nv!__gl_2dc432", "" }, - { "nv!__gl_2de437", "" }, - { "nv!__gl_2f3bb89c", "" }, - { "nv!__gl_2fd652", "" }, - { "nv!__gl_3001ac", "" }, - { "nv!__gl_31298772", "" }, - { "nv!__gl_313233", "" }, - { "nv!__gl_31f7d603", "" }, - { "nv!__gl_320ce4", "" }, - { "nv!__gl_32153248", "" }, - { "nv!__gl_32153249", "" }, - { "nv!__gl_335bca", "" }, - { "nv!__gl_342abb", "" }, - { "nv!__gl_34dfe6", "" }, - { "nv!__gl_34dfe7", "" }, - { "nv!__gl_34dfe8", "" }, - { "nv!__gl_34dfe9", "" }, - { "nv!__gl_35201578", "" }, - { "nv!__gl_359278", "" }, - { "nv!__gl_37f53a", "" }, - { "nv!__gl_38144972", "" }, - { "nv!__gl_38542646", "" }, - { "nv!__gl_3b74c9", "" }, - { "nv!__gl_3c136f", "" }, - { "nv!__gl_3cf72823", "" }, - { "nv!__gl_3d7af029", "" }, - { "nv!__gl_3ff34782", "" }, - { "nv!__gl_4129618", "" }, - { "nv!__gl_4189fac3", "" }, - { "nv!__gl_420bd4", "" }, - { "nv!__gl_42a699", "" }, - { "nv!__gl_441369", "" }, - { "nv!__gl_4458713e", "" }, - { "nv!__gl_4554b6", "" }, - { "nv!__gl_457425", "" }, - { "nv!__gl_4603b207", "" }, - { "nv!__gl_46574957", "" }, - { "nv!__gl_46574958", "" }, - { "nv!__gl_46813529", "" }, - { "nv!__gl_46f1e13d", "" }, - { "nv!__gl_47534c43", "" }, - { "nv!__gl_48550336", "" }, - { "nv!__gl_48576893", "" }, - { "nv!__gl_48576894", "" }, - { "nv!__gl_4889ac02", "" }, - { "nv!__gl_49005740", "" }, - { "nv!__gl_49867584", "" }, - { "nv!__gl_49960973", "" }, - { "nv!__gl_4a5341", "" }, - { "nv!__gl_4f4e48", "" }, - { "nv!__gl_4f8a0a", "" }, - { "nv!__gl_50299698", "" }, - { "nv!__gl_50299699", "" }, - { "nv!__gl_50361291", "" }, - { "nv!__gl_5242ae", "" }, - { "nv!__gl_53d30c", "" }, - { "nv!__gl_56347a", "" }, - { "nv!__gl_563a95f1", "" }, - { "nv!__gl_573823", "" }, - { "nv!__gl_58027529", "" }, - { "nv!__gl_5d2d63", "" }, - { "nv!__gl_5f7e3b", "" }, - { "nv!__gl_60461793", "" }, - { "nv!__gl_60d355", "" }, - { "nv!__gl_616627aa", "" }, - { "nv!__gl_62317182", "" }, - { "nv!__gl_6253fa2e", "" }, - { "nv!__gl_64100768", "" }, - { "nv!__gl_64100769", "" }, - { "nv!__gl_64100770", "" }, - { "nv!__gl_647395", "" }, - { "nv!__gl_66543234", "" }, - { "nv!__gl_67674763", "" }, - { "nv!__gl_67739784", "" }, - { "nv!__gl_68fb9c", "" }, - { "nv!__gl_69801276", "" }, - { "nv!__gl_6af9fa2f", "" }, - { "nv!__gl_6af9fa3f", "" }, - { "nv!__gl_6af9fa4f", "" }, - { "nv!__gl_6bd8c7", "" }, - { "nv!__gl_6c7691", "" }, - { "nv!__gl_6d4296ce", "" }, - { "nv!__gl_6dd7e7", "" }, - { "nv!__gl_6dd7e8", "" }, - { "nv!__gl_6fe11ec1", "" }, - { "nv!__gl_716511763", "" }, - { "nv!__gl_72504593", "" }, - { "nv!__gl_73304097", "" }, - { "nv!__gl_73314098", "" }, - { "nv!__gl_74095213", "" }, - { "nv!__gl_74095213a", "" }, - { "nv!__gl_74095213b", "" }, - { "nv!__gl_74095214", "" }, - { "nv!__gl_748f9649", "" }, - { "nv!__gl_75494732", "" }, - { "nv!__gl_78452832", "" }, - { "nv!__gl_784561", "" }, - { "nv!__gl_78e16b9c", "" }, - { "nv!__gl_79251225", "" }, - { "nv!__gl_7c128b", "" }, - { "nv!__gl_7ccd93", "" }, - { "nv!__gl_7df8d1", "" }, - { "nv!__gl_800c2310", "" }, - { "nv!__gl_80546710", "" }, - { "nv!__gl_80772310", "" }, - { "nv!__gl_808ee280", "" }, - { "nv!__gl_81131154", "" }, - { "nv!__gl_81274457", "" }, - { "nv!__gl_8292291f", "" }, - { "nv!__gl_83498426", "" }, - { "nv!__gl_84993794", "" }, - { "nv!__gl_84995585", "" }, - { "nv!__gl_84a0a0", "" }, - { "nv!__gl_852142", "" }, - { "nv!__gl_85612309", "" }, - { "nv!__gl_85612310", "" }, - { "nv!__gl_85612311", "" }, - { "nv!__gl_85612312", "" }, - { "nv!__gl_8623ff27", "" }, - { "nv!__gl_87364952", "" }, - { "nv!__gl_87f6275666", "" }, - { "nv!__gl_886748", "" }, - { "nv!__gl_89894423", "" }, - { "nv!__gl_8ad8a75", "" }, - { "nv!__gl_8ad8ad00", "" }, - { "nv!__gl_8bb815", "" }, - { "nv!__gl_8bb817", "" }, - { "nv!__gl_8bb818", "" }, - { "nv!__gl_8bb819", "" }, - { "nv!__gl_8e640cd1", "" }, - { "nv!__gl_8f34971a", "" }, - { "nv!__gl_8f773984", "" }, - { "nv!__gl_8f7a7d", "" }, - { "nv!__gl_902486209", "" }, - { "nv!__gl_90482571", "" }, - { "nv!__gl_91214835", "" }, - { "nv!__gl_912848290", "" }, - { "nv!__gl_915e56", "" }, - { "nv!__gl_92179063", "" }, - { "nv!__gl_92179064", "" }, - { "nv!__gl_92179065", "" }, - { "nv!__gl_92179066", "" }, - { "nv!__gl_92350358", "" }, - { "nv!__gl_92809063", "" }, - { "nv!__gl_92809064", "" }, - { "nv!__gl_92809065", "" }, - { "nv!__gl_92809066", "" }, - { "nv!__gl_92920143", "" }, - { "nv!__gl_93a89b12", "" }, - { "nv!__gl_93a89c0b", "" }, - { "nv!__gl_94812574", "" }, - { "nv!__gl_95282304", "" }, - { "nv!__gl_95394027", "" }, - { "nv!__gl_959b1f", "" }, - { "nv!__gl_9638af", "" }, - { "nv!__gl_96fd59", "" }, - { "nv!__gl_97f6275666", "" }, - { "nv!__gl_97f6275667", "" }, - { "nv!__gl_97f6275668", "" }, - { "nv!__gl_97f6275669", "" }, - { "nv!__gl_97f627566a", "" }, - { "nv!__gl_97f627566b", "" }, - { "nv!__gl_97f627566d", "" }, - { "nv!__gl_97f627566e", "" }, - { "nv!__gl_97f627566f", "" }, - { "nv!__gl_97f6275670", "" }, - { "nv!__gl_97f6275671", "" }, - { "nv!__gl_97f727566e", "" }, - { "nv!__gl_98480775", "" }, - { "nv!__gl_98480776", "" }, - { "nv!__gl_98480777", "" }, - { "nv!__gl_992431", "" }, - { "nv!__gl_9aa29065", "" }, - { "nv!__gl_9af32c", "" }, - { "nv!__gl_9af32d", "" }, - { "nv!__gl_9af32e", "" }, - { "nv!__gl_9c108b71", "" }, - { "nv!__gl_9f279065", "" }, - { "nv!__gl_a01bc728", "" }, - { "nv!__gl_a13b46c80", "" }, - { "nv!__gl_a22eb0", "" }, - { "nv!__gl_a2fb451e", "" }, - { "nv!__gl_a3456abe", "" }, - { "nv!__gl_a7044887", "" }, - { "nv!__gl_a7149200", "" }, - { "nv!__gl_a766215670", "" }, - { "nv!__gl_aalinegamma", "" }, - { "nv!__gl_aalinetweaks", "" }, - { "nv!__gl_ab34ee01", "" }, - { "nv!__gl_ab34ee02", "" }, - { "nv!__gl_ab34ee03", "" }, - { "nv!__gl_ac0274", "" }, - { "nv!__gl_af73c63e", "" }, - { "nv!__gl_af73c63f", "" }, - { "nv!__gl_af9927", "" }, - { "nv!__gl_afoverride", "" }, - { "nv!__gl_allocdeviceevents", "" }, - { "nv!__gl_applicationkey", "" }, - { "nv!__gl_appreturnonlybasicglsltype", "" }, - { "nv!__gl_app_softimage", "" }, - { "nv!__gl_app_supportbits2", "" }, - { "nv!__gl_assumetextureismipmappedatcreation", "" }, - { "nv!__gl_b1fb0f01", "" }, - { "nv!__gl_b3edd5", "" }, - { "nv!__gl_b40d9e03d", "" }, - { "nv!__gl_b7f6275666", "" }, - { "nv!__gl_b812c1", "" }, - { "nv!__gl_ba14ba1a", "" }, - { "nv!__gl_ba14ba1b", "" }, - { "nv!__gl_bd7559", "" }, - { "nv!__gl_bd755a", "" }, - { "nv!__gl_bd755c", "" }, - { "nv!__gl_bd755d", "" }, - { "nv!__gl_be58bb", "" }, - { "nv!__gl_be92cb", "" }, - { "nv!__gl_beefcba3", "" }, - { "nv!__gl_beefcba4", "" }, - { "nv!__gl_c023777f", "" }, - { "nv!__gl_c09dc8", "" }, - { "nv!__gl_c0d340", "" }, - { "nv!__gl_c2ff374c", "" }, - { "nv!__gl_c5e9d7a3", "" }, - { "nv!__gl_c5e9d7a4", "" }, - { "nv!__gl_c5e9d7b4", "" }, - { "nv!__gl_c618f9", "" }, - { "nv!__gl_ca345840", "" }, - { "nv!__gl_cachedisable", "" }, - { "nv!__gl_channelpriorityoverride", "" }, - { "nv!__gl_cleardatastorevidmem", "" }, - { "nv!__gl_cmdbufmemoryspaceenables", "" }, - { "nv!__gl_cmdbufminwords", "" }, - { "nv!__gl_cmdbufsizewords", "" }, - { "nv!__gl_conformantblitframebufferscissor", "" }, - { "nv!__gl_conformantincompletetextures", "" }, - { "nv!__gl_copybuffermethod", "" }, - { "nv!__gl_cubemapaniso", "" }, - { "nv!__gl_cubemapfiltering", "" }, - { "nv!__gl_d0e9a4d7", "" }, - { "nv!__gl_d13733f12", "" }, - { "nv!__gl_d1b399", "" }, - { "nv!__gl_d2983c32", "" }, - { "nv!__gl_d2983c33", "" }, - { "nv!__gl_d2e71b", "" }, - { "nv!__gl_d377dc", "" }, - { "nv!__gl_d377dd", "" }, - { "nv!__gl_d489f4", "" }, - { "nv!__gl_d4bce1", "" }, - { "nv!__gl_d518cb", "" }, - { "nv!__gl_d518cd", "" }, - { "nv!__gl_d518ce", "" }, - { "nv!__gl_d518d0", "" }, - { "nv!__gl_d518d1", "" }, - { "nv!__gl_d518d2", "" }, - { "nv!__gl_d518d3", "" }, - { "nv!__gl_d518d4", "" }, - { "nv!__gl_d518d5", "" }, - { "nv!__gl_d59eda", "" }, - { "nv!__gl_d83cbd", "" }, - { "nv!__gl_d8e777", "" }, - { "nv!__gl_debug_level", "" }, - { "nv!__gl_debug_mask", "" }, - { "nv!__gl_debug_options", "" }, - { "nv!__gl_devshmpageableallocations", "" }, - { "nv!__gl_df1f9812", "" }, - { "nv!__gl_df783c", "" }, - { "nv!__gl_diagenable", "" }, - { "nv!__gl_disallowcemask", "" }, - { "nv!__gl_disallowz16", "" }, - { "nv!__gl_dlmemoryspaceenables", "" }, - { "nv!__gl_e0bfec", "" }, - { "nv!__gl_e433456d", "" }, - { "nv!__gl_e435563f", "" }, - { "nv!__gl_e4cd9c", "" }, - { "nv!__gl_e5c972", "" }, - { "nv!__gl_e639ef", "" }, - { "nv!__gl_e802af", "" }, - { "nv!__gl_eae964", "" }, - { "nv!__gl_earlytexturehwallocation", "" }, - { "nv!__gl_eb92a3", "" }, - { "nv!__gl_ebca56", "" }, - { "nv!__gl_expert_detail_level", "" }, - { "nv!__gl_expert_output_mask", "" }, - { "nv!__gl_expert_report_mask", "" }, - { "nv!__gl_extensionstringnvarch", "" }, - { "nv!__gl_extensionstringversion", "" }, - { "nv!__gl_f00f1938", "" }, - { "nv!__gl_f10736", "" }, - { "nv!__gl_f1846870", "" }, - { "nv!__gl_f33bc370", "" }, - { "nv!__gl_f392a874", "" }, - { "nv!__gl_f49ae8", "" }, - { "nv!__gl_fa345cce", "" }, - { "nv!__gl_fa35cc4", "" }, - { "nv!__gl_faa14a", "" }, - { "nv!__gl_faf8a723", "" }, - { "nv!__gl_fastgs", "" }, - { "nv!__gl_fbf4ac45", "" }, - { "nv!__gl_fbo_blit_ignore_srgb", "" }, - { "nv!__gl_fc64c7", "" }, - { "nv!__gl_ff54ec97", "" }, - { "nv!__gl_ff54ec98", "" }, - { "nv!__gl_forceexitprocessdetach", "" }, - { "nv!__gl_forcerequestedesversion", "" }, - { "nv!__gl_glsynctovblank", "" }, - { "nv!__gl_gvitimeoutcontrol", "" }, - { "nv!__gl_hcctrl", "" }, - { "nv!__gl_hwstate_per_ctx", "" }, - { "nv!__gl_machinecachelimit", "" }, - { "nv!__gl_maxframesallowed", "" }, - { "nv!__gl_memmgrcachedalloclimit", "" }, - { "nv!__gl_memmgrcachedalloclimitratio", "" }, - { "nv!__gl_memmgrsysheapalloclimit", "" }, - { "nv!__gl_memmgrsysheapalloclimitratio", "" }, - { "nv!__gl_memmgrvidheapalloclimit", "" }, - { "nv!__gl_mosaic_clip_to_subdev", "" }, - { "nv!__gl_mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!__gl_mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!__gl_overlaymergeblittimerms", "" }, - { "nv!__gl_perfmon_mode", "" }, - { "nv!__gl_pixbar_mode", "" }, - { "nv!__gl_qualityenhancements", "" }, - { "nv!__gl_r27s18q28", "" }, - { "nv!__gl_r2d7c1d8", "" }, - { "nv!__gl_renderer", "" }, - { "nv!__gl_renderqualityflags", "" }, - { "nv!__gl_s3tcquality", "" }, - { "nv!__gl_shaderatomics", "" }, - { "nv!__gl_shadercacheinitsize", "" }, - { "nv!__gl_shader_disk_cache_path", "" }, - { "nv!__gl_shader_disk_cache_read_only", "" }, - { "nv!__gl_shaderobjects", "" }, - { "nv!__gl_shaderportabilitywarnings", "" }, - { "nv!__gl_shaderwarningsaserrors", "" }, - { "nv!__gl_skiptexturehostcopies", "" }, - { "nv!__glslc_debug_level", "" }, - { "nv!__glslc_debug_mask", "" }, - { "nv!__glslc_debug_options", "" }, - { "nv!__glslc_debug_filename", "" }, - { "nv!__gl_sli_dli_control", "" }, - { "nv!__gl_sparsetexture", "" }, - { "nv!__gl_spinlooptimeout", "" }, - { "nv!__gl_sync_to_vblank", "" }, - { "nv!glsynctovblank", "" }, - { "nv!__gl_sysheapreuseratio", "" }, - { "nv!__gl_sysmemtexturepromotion", "" }, - { "nv!__gl_targetflushcount", "" }, - { "nv!__gl_tearingfreeswappresent", "" }, - { "nv!__gl_texclampbehavior", "" }, - { "nv!__gl_texlodbias", "" }, - { "nv!__gl_texmemoryspaceenables", "" }, - { "nv!__gl_textureprecache", "" }, - { "nv!__gl_threadcontrol", "" }, - { "nv!__gl_threadcontrol2", "" }, - { "nv!__gl_usegvievents", "" }, - { "nv!__gl_vbomemoryspaceenables", "" }, - { "nv!__gl_vertexlimit", "" }, - { "nv!__gl_vidheapreuseratio", "" }, - { "nv!__gl_vpipe", "" }, - { "nv!__gl_vpipeformatbloatlimit", "" }, - { "nv!__gl_wglmessageboxonabort", "" }, - { "nv!__gl_writeinfolog", "" }, - { "nv!__gl_writeprogramobjectassembly", "" }, - { "nv!__gl_writeprogramobjectsource", "" }, - { "nv!__gl_xnvadapterpresent", "" }, - { "nv!__gl_yield", "" }, - { "nv!__gl_yieldfunction", "" }, - { "nv!__gl_yieldfunctionfast", "" }, - { "nv!__gl_yieldfunctionslow", "" }, - { "nv!__gl_yieldfunctionwaitfordcqueue", "" }, - { "nv!__gl_yieldfunctionwaitforframe", "" }, - { "nv!__gl_yieldfunctionwaitforgpu", "" }, - { "nv!__gl_zbctableaddhysteresis", "" }, - { "nv!gpu_debug_mode", "" }, - { "nv!gpu_stay_on", "" }, - { "nv!gpu_timeout_ms_max", "" }, - { "nv!gvitimeoutcontrol", "" }, - { "nv!hcctrl", "" }, - { "nv!hwstate_per_ctx", "" }, - { "nv!libandroid_enable_log", "" }, - { "nv!machinecachelimit", "" }, - { "nv!maxframesallowed", "" }, - { "nv!media.aac_51_output_enabled", "" }, - { "nv!memmgrcachedalloclimit", "" }, - { "nv!memmgrcachedalloclimitratio", "" }, - { "nv!memmgrsysheapalloclimit", "" }, - { "nv!memmgrsysheapalloclimitratio", "" }, - { "nv!memmgrvidheapalloclimit", "" }, - { "nv!mosaic_clip_to_subdev", "" }, - { "nv!mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!nvblit.dump", "" }, - { "nv!nvblit.profile", "" }, - { "nv!nvblit.twod", "" }, - { "nv!nvblit.vic", "" }, - { "nv!nvddk_vic_prevent_use", "" }, - { "nv!nv_decompression", "" }, + { "nv!00008600", string.Empty }, + { "nv!0007b25e", string.Empty }, + { "nv!0083e1", string.Empty }, + { "nv!01621887", string.Empty }, + { "nv!03134743", string.Empty }, + { "nv!0356afd0", string.Empty }, + { "nv!0356afd1", string.Empty }, + { "nv!0356afd2", string.Empty }, + { "nv!0356afd3", string.Empty }, + { "nv!094313", string.Empty }, + { "nv!0x04dc09", string.Empty }, + { "nv!0x111133", string.Empty }, + { "nv!0x1aa483", string.Empty }, + { "nv!0x1cb1cf", string.Empty }, + { "nv!0x1cb1d0", string.Empty }, + { "nv!0x1e3221", string.Empty }, + { "nv!0x300fc8", string.Empty }, + { "nv!0x301fc8", string.Empty }, + { "nv!0x302fc8", string.Empty }, + { "nv!0x3eec59", string.Empty }, + { "nv!0x46b3ed", string.Empty }, + { "nv!0x523dc0", string.Empty }, + { "nv!0x523dc1", string.Empty }, + { "nv!0x523dc2", string.Empty }, + { "nv!0x523dc3", string.Empty }, + { "nv!0x523dc4", string.Empty }, + { "nv!0x523dc5", string.Empty }, + { "nv!0x523dc6", string.Empty }, + { "nv!0x523dd0", string.Empty }, + { "nv!0x523dd1", string.Empty }, + { "nv!0x523dd3", string.Empty }, + { "nv!0x5344bb", string.Empty }, + { "nv!0x555237", string.Empty }, + { "nv!0x58a234", string.Empty }, + { "nv!0x7b4428", string.Empty }, + { "nv!0x923dc0", string.Empty }, + { "nv!0x923dc1", string.Empty }, + { "nv!0x923dc2", string.Empty }, + { "nv!0x923dc3", string.Empty }, + { "nv!0x923dc4", string.Empty }, + { "nv!0x923dd3", string.Empty }, + { "nv!0x9abdc5", string.Empty }, + { "nv!0x9abdc6", string.Empty }, + { "nv!0xaaa36c", string.Empty }, + { "nv!0xb09da0", string.Empty }, + { "nv!0xb09da1", string.Empty }, + { "nv!0xb09da2", string.Empty }, + { "nv!0xb09da3", string.Empty }, + { "nv!0xb09da4", string.Empty }, + { "nv!0xb09da5", string.Empty }, + { "nv!0xb0b348", string.Empty }, + { "nv!0xb0b349", string.Empty }, + { "nv!0xbb558f", string.Empty }, + { "nv!0xbd10fb", string.Empty }, + { "nv!0xc32ad3", string.Empty }, + { "nv!0xce2348", string.Empty }, + { "nv!0xcfd81f", string.Empty }, + { "nv!0xe0036b", string.Empty }, + { "nv!0xe01f2d", string.Empty }, + { "nv!0xe17212", string.Empty }, + { "nv!0xeae966", string.Empty }, + { "nv!0xed4f82", string.Empty }, + { "nv!0xf12335", string.Empty }, + { "nv!0xf12336", string.Empty }, + { "nv!10261989", string.Empty }, + { "nv!1042d483", string.Empty }, + { "nv!10572898", string.Empty }, + { "nv!115631", string.Empty }, + { "nv!12950094", string.Empty }, + { "nv!1314f311", string.Empty }, + { "nv!1314f312", string.Empty }, + { "nv!13279512", string.Empty }, + { "nv!13813496", string.Empty }, + { "nv!14507179", string.Empty }, + { "nv!15694569", string.Empty }, + { "nv!16936964", string.Empty }, + { "nv!17aa230c", string.Empty }, + { "nv!182054", string.Empty }, + { "nv!18273275", string.Empty }, + { "nv!18273276", string.Empty }, + { "nv!1854d03b", string.Empty }, + { "nv!18add00d", string.Empty }, + { "nv!19156670", string.Empty }, + { "nv!19286545", string.Empty }, + { "nv!1a298e9f", string.Empty }, + { "nv!1acf43fe", string.Empty }, + { "nv!1bda43fe", string.Empty }, + { "nv!1c3b92", string.Empty }, + { "nv!21509920", string.Empty }, + { "nv!215323457", string.Empty }, + { "nv!2165ad", string.Empty }, + { "nv!2165ae", string.Empty }, + { "nv!21be9c", string.Empty }, + { "nv!233264316", string.Empty }, + { "nv!234557580", string.Empty }, + { "nv!23cd0e", string.Empty }, + { "nv!24189123", string.Empty }, + { "nv!2443266", string.Empty }, + { "nv!25025519", string.Empty }, + { "nv!255e39", string.Empty }, + { "nv!2583364", string.Empty }, + { "nv!2888c1", string.Empty }, + { "nv!28ca3e", string.Empty }, + { "nv!29871243", string.Empty }, + { "nv!2a1f64", string.Empty }, + { "nv!2dc432", string.Empty }, + { "nv!2de437", string.Empty }, + { "nv!2f3bb89c", string.Empty }, + { "nv!2fd652", string.Empty }, + { "nv!3001ac", string.Empty }, + { "nv!31298772", string.Empty }, + { "nv!313233", string.Empty }, + { "nv!31f7d603", string.Empty }, + { "nv!320ce4", string.Empty }, + { "nv!32153248", string.Empty }, + { "nv!32153249", string.Empty }, + { "nv!335bca", string.Empty }, + { "nv!342abb", string.Empty }, + { "nv!34dfe6", string.Empty }, + { "nv!34dfe7", string.Empty }, + { "nv!34dfe8", string.Empty }, + { "nv!34dfe9", string.Empty }, + { "nv!35201578", string.Empty }, + { "nv!359278", string.Empty }, + { "nv!37f53a", string.Empty }, + { "nv!38144972", string.Empty }, + { "nv!38542646", string.Empty }, + { "nv!3b74c9", string.Empty }, + { "nv!3c136f", string.Empty }, + { "nv!3cf72823", string.Empty }, + { "nv!3d7af029", string.Empty }, + { "nv!3ff34782", string.Empty }, + { "nv!4129618", string.Empty }, + { "nv!4189fac3", string.Empty }, + { "nv!420bd4", string.Empty }, + { "nv!42a699", string.Empty }, + { "nv!441369", string.Empty }, + { "nv!4458713e", string.Empty }, + { "nv!4554b6", string.Empty }, + { "nv!457425", string.Empty }, + { "nv!4603b207", string.Empty }, + { "nv!46574957", string.Empty }, + { "nv!46574958", string.Empty }, + { "nv!46813529", string.Empty }, + { "nv!46f1e13d", string.Empty }, + { "nv!47534c43", string.Empty }, + { "nv!48550336", string.Empty }, + { "nv!48576893", string.Empty }, + { "nv!48576894", string.Empty }, + { "nv!4889ac02", string.Empty }, + { "nv!49005740", string.Empty }, + { "nv!49867584", string.Empty }, + { "nv!49960973", string.Empty }, + { "nv!4a5341", string.Empty }, + { "nv!4f4e48", string.Empty }, + { "nv!4f8a0a", string.Empty }, + { "nv!50299698", string.Empty }, + { "nv!50299699", string.Empty }, + { "nv!50361291", string.Empty }, + { "nv!5242ae", string.Empty }, + { "nv!53d30c", string.Empty }, + { "nv!56347a", string.Empty }, + { "nv!563a95f1", string.Empty }, + { "nv!573823", string.Empty }, + { "nv!58027529", string.Empty }, + { "nv!5d2d63", string.Empty }, + { "nv!5f7e3b", string.Empty }, + { "nv!60461793", string.Empty }, + { "nv!60d355", string.Empty }, + { "nv!616627aa", string.Empty }, + { "nv!62317182", string.Empty }, + { "nv!6253fa2e", string.Empty }, + { "nv!64100768", string.Empty }, + { "nv!64100769", string.Empty }, + { "nv!64100770", string.Empty }, + { "nv!647395", string.Empty }, + { "nv!66543234", string.Empty }, + { "nv!67674763", string.Empty }, + { "nv!67739784", string.Empty }, + { "nv!68fb9c", string.Empty }, + { "nv!69801276", string.Empty }, + { "nv!6af9fa2f", string.Empty }, + { "nv!6af9fa3f", string.Empty }, + { "nv!6af9fa4f", string.Empty }, + { "nv!6bd8c7", string.Empty }, + { "nv!6c7691", string.Empty }, + { "nv!6d4296ce", string.Empty }, + { "nv!6dd7e7", string.Empty }, + { "nv!6dd7e8", string.Empty }, + { "nv!6fe11ec1", string.Empty }, + { "nv!716511763", string.Empty }, + { "nv!72504593", string.Empty }, + { "nv!73304097", string.Empty }, + { "nv!73314098", string.Empty }, + { "nv!74095213", string.Empty }, + { "nv!74095213a", string.Empty }, + { "nv!74095213b", string.Empty }, + { "nv!74095214", string.Empty }, + { "nv!748f9649", string.Empty }, + { "nv!75494732", string.Empty }, + { "nv!78452832", string.Empty }, + { "nv!784561", string.Empty }, + { "nv!78e16b9c", string.Empty }, + { "nv!79251225", string.Empty }, + { "nv!7c128b", string.Empty }, + { "nv!7ccd93", string.Empty }, + { "nv!7df8d1", string.Empty }, + { "nv!800c2310", string.Empty }, + { "nv!80546710", string.Empty }, + { "nv!80772310", string.Empty }, + { "nv!808ee280", string.Empty }, + { "nv!81131154", string.Empty }, + { "nv!81274457", string.Empty }, + { "nv!8292291f", string.Empty }, + { "nv!83498426", string.Empty }, + { "nv!84993794", string.Empty }, + { "nv!84995585", string.Empty }, + { "nv!84a0a0", string.Empty }, + { "nv!852142", string.Empty }, + { "nv!85612309", string.Empty }, + { "nv!85612310", string.Empty }, + { "nv!85612311", string.Empty }, + { "nv!85612312", string.Empty }, + { "nv!8623ff27", string.Empty }, + { "nv!87364952", string.Empty }, + { "nv!87f6275666", string.Empty }, + { "nv!886748", string.Empty }, + { "nv!89894423", string.Empty }, + { "nv!8ad8a75", string.Empty }, + { "nv!8ad8ad00", string.Empty }, + { "nv!8bb815", string.Empty }, + { "nv!8bb817", string.Empty }, + { "nv!8bb818", string.Empty }, + { "nv!8bb819", string.Empty }, + { "nv!8e640cd1", string.Empty }, + { "nv!8f34971a", string.Empty }, + { "nv!8f773984", string.Empty }, + { "nv!8f7a7d", string.Empty }, + { "nv!902486209", string.Empty }, + { "nv!90482571", string.Empty }, + { "nv!91214835", string.Empty }, + { "nv!912848290", string.Empty }, + { "nv!915e56", string.Empty }, + { "nv!92179063", string.Empty }, + { "nv!92179064", string.Empty }, + { "nv!92179065", string.Empty }, + { "nv!92179066", string.Empty }, + { "nv!92350358", string.Empty }, + { "nv!92809063", string.Empty }, + { "nv!92809064", string.Empty }, + { "nv!92809065", string.Empty }, + { "nv!92809066", string.Empty }, + { "nv!92920143", string.Empty }, + { "nv!93a89b12", string.Empty }, + { "nv!93a89c0b", string.Empty }, + { "nv!94812574", string.Empty }, + { "nv!95282304", string.Empty }, + { "nv!95394027", string.Empty }, + { "nv!959b1f", string.Empty }, + { "nv!9638af", string.Empty }, + { "nv!96fd59", string.Empty }, + { "nv!97f6275666", string.Empty }, + { "nv!97f6275667", string.Empty }, + { "nv!97f6275668", string.Empty }, + { "nv!97f6275669", string.Empty }, + { "nv!97f627566a", string.Empty }, + { "nv!97f627566b", string.Empty }, + { "nv!97f627566d", string.Empty }, + { "nv!97f627566e", string.Empty }, + { "nv!97f627566f", string.Empty }, + { "nv!97f6275670", string.Empty }, + { "nv!97f6275671", string.Empty }, + { "nv!97f727566e", string.Empty }, + { "nv!98480775", string.Empty }, + { "nv!98480776", string.Empty }, + { "nv!98480777", string.Empty }, + { "nv!992431", string.Empty }, + { "nv!9aa29065", string.Empty }, + { "nv!9af32c", string.Empty }, + { "nv!9af32d", string.Empty }, + { "nv!9af32e", string.Empty }, + { "nv!9c108b71", string.Empty }, + { "nv!9f279065", string.Empty }, + { "nv!a01bc728", string.Empty }, + { "nv!a13b46c80", string.Empty }, + { "nv!a22eb0", string.Empty }, + { "nv!a2fb451e", string.Empty }, + { "nv!a3456abe", string.Empty }, + { "nv!a7044887", string.Empty }, + { "nv!a7149200", string.Empty }, + { "nv!a766215670", string.Empty }, + { "nv!aac_drc_boost", string.Empty }, + { "nv!aac_drc_cut", string.Empty }, + { "nv!aac_drc_enc_target_level", string.Empty }, + { "nv!aac_drc_heavy", string.Empty }, + { "nv!aac_drc_reference_level", string.Empty }, + { "nv!aalinegamma", string.Empty }, + { "nv!aalinetweaks", string.Empty }, + { "nv!ab34ee01", string.Empty }, + { "nv!ab34ee02", string.Empty }, + { "nv!ab34ee03", string.Empty }, + { "nv!ac0274", string.Empty }, + { "nv!af73c63e", string.Empty }, + { "nv!af73c63f", string.Empty }, + { "nv!af9927", string.Empty }, + { "nv!afoverride", string.Empty }, + { "nv!allocdeviceevents", string.Empty }, + { "nv!applicationkey", string.Empty }, + { "nv!appreturnonlybasicglsltype", string.Empty }, + { "nv!app_softimage", string.Empty }, + { "nv!app_supportbits2", string.Empty }, + { "nv!assumetextureismipmappedatcreation", string.Empty }, + { "nv!b1fb0f01", string.Empty }, + { "nv!b3edd5", string.Empty }, + { "nv!b40d9e03d", string.Empty }, + { "nv!b7f6275666", string.Empty }, + { "nv!b812c1", string.Empty }, + { "nv!ba14ba1a", string.Empty }, + { "nv!ba14ba1b", string.Empty }, + { "nv!bd7559", string.Empty }, + { "nv!bd755a", string.Empty }, + { "nv!bd755c", string.Empty }, + { "nv!bd755d", string.Empty }, + { "nv!be58bb", string.Empty }, + { "nv!be92cb", string.Empty }, + { "nv!beefcba3", string.Empty }, + { "nv!beefcba4", string.Empty }, + { "nv!c023777f", string.Empty }, + { "nv!c09dc8", string.Empty }, + { "nv!c0d340", string.Empty }, + { "nv!c2ff374c", string.Empty }, + { "nv!c5e9d7a3", string.Empty }, + { "nv!c5e9d7a4", string.Empty }, + { "nv!c5e9d7b4", string.Empty }, + { "nv!c618f9", string.Empty }, + { "nv!ca345840", string.Empty }, + { "nv!cachedisable", string.Empty }, + { "nv!cast.on", string.Empty }, + { "nv!cde", string.Empty }, + { "nv!channelpriorityoverride", string.Empty }, + { "nv!cleardatastorevidmem", string.Empty }, + { "nv!cmdbufmemoryspaceenables", string.Empty }, + { "nv!cmdbufminwords", string.Empty }, + { "nv!cmdbufsizewords", string.Empty }, + { "nv!conformantblitframebufferscissor", string.Empty }, + { "nv!conformantincompletetextures", string.Empty }, + { "nv!copybuffermethod", string.Empty }, + { "nv!cubemapaniso", string.Empty }, + { "nv!cubemapfiltering", string.Empty }, + { "nv!d0e9a4d7", string.Empty }, + { "nv!d13733f12", string.Empty }, + { "nv!d1b399", string.Empty }, + { "nv!d2983c32", string.Empty }, + { "nv!d2983c33", string.Empty }, + { "nv!d2e71b", string.Empty }, + { "nv!d377dc", string.Empty }, + { "nv!d377dd", string.Empty }, + { "nv!d489f4", string.Empty }, + { "nv!d4bce1", string.Empty }, + { "nv!d518cb", string.Empty }, + { "nv!d518cd", string.Empty }, + { "nv!d518ce", string.Empty }, + { "nv!d518d0", string.Empty }, + { "nv!d518d1", string.Empty }, + { "nv!d518d2", string.Empty }, + { "nv!d518d3", string.Empty }, + { "nv!d518d4", string.Empty }, + { "nv!d518d5", string.Empty }, + { "nv!d59eda", string.Empty }, + { "nv!d83cbd", string.Empty }, + { "nv!d8e777", string.Empty }, + { "nv!debug_level", string.Empty }, + { "nv!debug_mask", string.Empty }, + { "nv!debug_options", string.Empty }, + { "nv!devshmpageableallocations", string.Empty }, + { "nv!df1f9812", string.Empty }, + { "nv!df783c", string.Empty }, + { "nv!diagenable", string.Empty }, + { "nv!disallowcemask", string.Empty }, + { "nv!disallowz16", string.Empty }, + { "nv!dlmemoryspaceenables", string.Empty }, + { "nv!e0bfec", string.Empty }, + { "nv!e433456d", string.Empty }, + { "nv!e435563f", string.Empty }, + { "nv!e4cd9c", string.Empty }, + { "nv!e5c972", string.Empty }, + { "nv!e639ef", string.Empty }, + { "nv!e802af", string.Empty }, + { "nv!eae964", string.Empty }, + { "nv!earlytexturehwallocation", string.Empty }, + { "nv!eb92a3", string.Empty }, + { "nv!ebca56", string.Empty }, + { "nv!enable-noaud", string.Empty }, + { "nv!enable-noavs", string.Empty }, + { "nv!enable-prof", string.Empty }, + { "nv!enable-sxesmode", string.Empty }, + { "nv!enable-ulld", string.Empty }, + { "nv!expert_detail_level", string.Empty }, + { "nv!expert_output_mask", string.Empty }, + { "nv!expert_report_mask", string.Empty }, + { "nv!extensionstringnvarch", string.Empty }, + { "nv!extensionstringversion", string.Empty }, + { "nv!f00f1938", string.Empty }, + { "nv!f10736", string.Empty }, + { "nv!f1846870", string.Empty }, + { "nv!f33bc370", string.Empty }, + { "nv!f392a874", string.Empty }, + { "nv!f49ae8", string.Empty }, + { "nv!fa345cce", string.Empty }, + { "nv!fa35cc4", string.Empty }, + { "nv!faa14a", string.Empty }, + { "nv!faf8a723", string.Empty }, + { "nv!fastgs", string.Empty }, + { "nv!fbf4ac45", string.Empty }, + { "nv!fbo_blit_ignore_srgb", string.Empty }, + { "nv!fc64c7", string.Empty }, + { "nv!ff54ec97", string.Empty }, + { "nv!ff54ec98", string.Empty }, + { "nv!forceexitprocessdetach", string.Empty }, + { "nv!forcerequestedesversion", string.Empty }, + { "nv!__gl_", string.Empty }, + { "nv!__gl_00008600", string.Empty }, + { "nv!__gl_0007b25e", string.Empty }, + { "nv!__gl_0083e1", string.Empty }, + { "nv!__gl_01621887", string.Empty }, + { "nv!__gl_03134743", string.Empty }, + { "nv!__gl_0356afd0", string.Empty }, + { "nv!__gl_0356afd1", string.Empty }, + { "nv!__gl_0356afd2", string.Empty }, + { "nv!__gl_0356afd3", string.Empty }, + { "nv!__gl_094313", string.Empty }, + { "nv!__gl_0x04dc09", string.Empty }, + { "nv!__gl_0x111133", string.Empty }, + { "nv!__gl_0x1aa483", string.Empty }, + { "nv!__gl_0x1cb1cf", string.Empty }, + { "nv!__gl_0x1cb1d0", string.Empty }, + { "nv!__gl_0x1e3221", string.Empty }, + { "nv!__gl_0x300fc8", string.Empty }, + { "nv!__gl_0x301fc8", string.Empty }, + { "nv!__gl_0x302fc8", string.Empty }, + { "nv!__gl_0x3eec59", string.Empty }, + { "nv!__gl_0x46b3ed", string.Empty }, + { "nv!__gl_0x523dc0", string.Empty }, + { "nv!__gl_0x523dc1", string.Empty }, + { "nv!__gl_0x523dc2", string.Empty }, + { "nv!__gl_0x523dc3", string.Empty }, + { "nv!__gl_0x523dc4", string.Empty }, + { "nv!__gl_0x523dc5", string.Empty }, + { "nv!__gl_0x523dc6", string.Empty }, + { "nv!__gl_0x523dd0", string.Empty }, + { "nv!__gl_0x523dd1", string.Empty }, + { "nv!__gl_0x523dd3", string.Empty }, + { "nv!__gl_0x5344bb", string.Empty }, + { "nv!__gl_0x555237", string.Empty }, + { "nv!__gl_0x58a234", string.Empty }, + { "nv!__gl_0x7b4428", string.Empty }, + { "nv!__gl_0x923dc0", string.Empty }, + { "nv!__gl_0x923dc1", string.Empty }, + { "nv!__gl_0x923dc2", string.Empty }, + { "nv!__gl_0x923dc3", string.Empty }, + { "nv!__gl_0x923dc4", string.Empty }, + { "nv!__gl_0x923dd3", string.Empty }, + { "nv!__gl_0x9abdc5", string.Empty }, + { "nv!__gl_0x9abdc6", string.Empty }, + { "nv!__gl_0xaaa36c", string.Empty }, + { "nv!__gl_0xb09da0", string.Empty }, + { "nv!__gl_0xb09da1", string.Empty }, + { "nv!__gl_0xb09da2", string.Empty }, + { "nv!__gl_0xb09da3", string.Empty }, + { "nv!__gl_0xb09da4", string.Empty }, + { "nv!__gl_0xb09da5", string.Empty }, + { "nv!__gl_0xb0b348", string.Empty }, + { "nv!__gl_0xb0b349", string.Empty }, + { "nv!__gl_0xbb558f", string.Empty }, + { "nv!__gl_0xbd10fb", string.Empty }, + { "nv!__gl_0xc32ad3", string.Empty }, + { "nv!__gl_0xce2348", string.Empty }, + { "nv!__gl_0xcfd81f", string.Empty }, + { "nv!__gl_0xe0036b", string.Empty }, + { "nv!__gl_0xe01f2d", string.Empty }, + { "nv!__gl_0xe17212", string.Empty }, + { "nv!__gl_0xeae966", string.Empty }, + { "nv!__gl_0xed4f82", string.Empty }, + { "nv!__gl_0xf12335", string.Empty }, + { "nv!__gl_0xf12336", string.Empty }, + { "nv!__gl_10261989", string.Empty }, + { "nv!__gl_1042d483", string.Empty }, + { "nv!__gl_10572898", string.Empty }, + { "nv!__gl_115631", string.Empty }, + { "nv!__gl_12950094", string.Empty }, + { "nv!__gl_1314f311", string.Empty }, + { "nv!__gl_1314f312", string.Empty }, + { "nv!__gl_13279512", string.Empty }, + { "nv!__gl_13813496", string.Empty }, + { "nv!__gl_14507179", string.Empty }, + { "nv!__gl_15694569", string.Empty }, + { "nv!__gl_16936964", string.Empty }, + { "nv!__gl_17aa230c", string.Empty }, + { "nv!__gl_182054", string.Empty }, + { "nv!__gl_18273275", string.Empty }, + { "nv!__gl_18273276", string.Empty }, + { "nv!__gl_1854d03b", string.Empty }, + { "nv!__gl_18add00d", string.Empty }, + { "nv!__gl_19156670", string.Empty }, + { "nv!__gl_19286545", string.Empty }, + { "nv!__gl_1a298e9f", string.Empty }, + { "nv!__gl_1acf43fe", string.Empty }, + { "nv!__gl_1bda43fe", string.Empty }, + { "nv!__gl_1c3b92", string.Empty }, + { "nv!__gl_21509920", string.Empty }, + { "nv!__gl_215323457", string.Empty }, + { "nv!__gl_2165ad", string.Empty }, + { "nv!__gl_2165ae", string.Empty }, + { "nv!__gl_21be9c", string.Empty }, + { "nv!__gl_233264316", string.Empty }, + { "nv!__gl_234557580", string.Empty }, + { "nv!__gl_23cd0e", string.Empty }, + { "nv!__gl_24189123", string.Empty }, + { "nv!__gl_2443266", string.Empty }, + { "nv!__gl_25025519", string.Empty }, + { "nv!__gl_255e39", string.Empty }, + { "nv!__gl_2583364", string.Empty }, + { "nv!__gl_2888c1", string.Empty }, + { "nv!__gl_28ca3e", string.Empty }, + { "nv!__gl_29871243", string.Empty }, + { "nv!__gl_2a1f64", string.Empty }, + { "nv!__gl_2dc432", string.Empty }, + { "nv!__gl_2de437", string.Empty }, + { "nv!__gl_2f3bb89c", string.Empty }, + { "nv!__gl_2fd652", string.Empty }, + { "nv!__gl_3001ac", string.Empty }, + { "nv!__gl_31298772", string.Empty }, + { "nv!__gl_313233", string.Empty }, + { "nv!__gl_31f7d603", string.Empty }, + { "nv!__gl_320ce4", string.Empty }, + { "nv!__gl_32153248", string.Empty }, + { "nv!__gl_32153249", string.Empty }, + { "nv!__gl_335bca", string.Empty }, + { "nv!__gl_342abb", string.Empty }, + { "nv!__gl_34dfe6", string.Empty }, + { "nv!__gl_34dfe7", string.Empty }, + { "nv!__gl_34dfe8", string.Empty }, + { "nv!__gl_34dfe9", string.Empty }, + { "nv!__gl_35201578", string.Empty }, + { "nv!__gl_359278", string.Empty }, + { "nv!__gl_37f53a", string.Empty }, + { "nv!__gl_38144972", string.Empty }, + { "nv!__gl_38542646", string.Empty }, + { "nv!__gl_3b74c9", string.Empty }, + { "nv!__gl_3c136f", string.Empty }, + { "nv!__gl_3cf72823", string.Empty }, + { "nv!__gl_3d7af029", string.Empty }, + { "nv!__gl_3ff34782", string.Empty }, + { "nv!__gl_4129618", string.Empty }, + { "nv!__gl_4189fac3", string.Empty }, + { "nv!__gl_420bd4", string.Empty }, + { "nv!__gl_42a699", string.Empty }, + { "nv!__gl_441369", string.Empty }, + { "nv!__gl_4458713e", string.Empty }, + { "nv!__gl_4554b6", string.Empty }, + { "nv!__gl_457425", string.Empty }, + { "nv!__gl_4603b207", string.Empty }, + { "nv!__gl_46574957", string.Empty }, + { "nv!__gl_46574958", string.Empty }, + { "nv!__gl_46813529", string.Empty }, + { "nv!__gl_46f1e13d", string.Empty }, + { "nv!__gl_47534c43", string.Empty }, + { "nv!__gl_48550336", string.Empty }, + { "nv!__gl_48576893", string.Empty }, + { "nv!__gl_48576894", string.Empty }, + { "nv!__gl_4889ac02", string.Empty }, + { "nv!__gl_49005740", string.Empty }, + { "nv!__gl_49867584", string.Empty }, + { "nv!__gl_49960973", string.Empty }, + { "nv!__gl_4a5341", string.Empty }, + { "nv!__gl_4f4e48", string.Empty }, + { "nv!__gl_4f8a0a", string.Empty }, + { "nv!__gl_50299698", string.Empty }, + { "nv!__gl_50299699", string.Empty }, + { "nv!__gl_50361291", string.Empty }, + { "nv!__gl_5242ae", string.Empty }, + { "nv!__gl_53d30c", string.Empty }, + { "nv!__gl_56347a", string.Empty }, + { "nv!__gl_563a95f1", string.Empty }, + { "nv!__gl_573823", string.Empty }, + { "nv!__gl_58027529", string.Empty }, + { "nv!__gl_5d2d63", string.Empty }, + { "nv!__gl_5f7e3b", string.Empty }, + { "nv!__gl_60461793", string.Empty }, + { "nv!__gl_60d355", string.Empty }, + { "nv!__gl_616627aa", string.Empty }, + { "nv!__gl_62317182", string.Empty }, + { "nv!__gl_6253fa2e", string.Empty }, + { "nv!__gl_64100768", string.Empty }, + { "nv!__gl_64100769", string.Empty }, + { "nv!__gl_64100770", string.Empty }, + { "nv!__gl_647395", string.Empty }, + { "nv!__gl_66543234", string.Empty }, + { "nv!__gl_67674763", string.Empty }, + { "nv!__gl_67739784", string.Empty }, + { "nv!__gl_68fb9c", string.Empty }, + { "nv!__gl_69801276", string.Empty }, + { "nv!__gl_6af9fa2f", string.Empty }, + { "nv!__gl_6af9fa3f", string.Empty }, + { "nv!__gl_6af9fa4f", string.Empty }, + { "nv!__gl_6bd8c7", string.Empty }, + { "nv!__gl_6c7691", string.Empty }, + { "nv!__gl_6d4296ce", string.Empty }, + { "nv!__gl_6dd7e7", string.Empty }, + { "nv!__gl_6dd7e8", string.Empty }, + { "nv!__gl_6fe11ec1", string.Empty }, + { "nv!__gl_716511763", string.Empty }, + { "nv!__gl_72504593", string.Empty }, + { "nv!__gl_73304097", string.Empty }, + { "nv!__gl_73314098", string.Empty }, + { "nv!__gl_74095213", string.Empty }, + { "nv!__gl_74095213a", string.Empty }, + { "nv!__gl_74095213b", string.Empty }, + { "nv!__gl_74095214", string.Empty }, + { "nv!__gl_748f9649", string.Empty }, + { "nv!__gl_75494732", string.Empty }, + { "nv!__gl_78452832", string.Empty }, + { "nv!__gl_784561", string.Empty }, + { "nv!__gl_78e16b9c", string.Empty }, + { "nv!__gl_79251225", string.Empty }, + { "nv!__gl_7c128b", string.Empty }, + { "nv!__gl_7ccd93", string.Empty }, + { "nv!__gl_7df8d1", string.Empty }, + { "nv!__gl_800c2310", string.Empty }, + { "nv!__gl_80546710", string.Empty }, + { "nv!__gl_80772310", string.Empty }, + { "nv!__gl_808ee280", string.Empty }, + { "nv!__gl_81131154", string.Empty }, + { "nv!__gl_81274457", string.Empty }, + { "nv!__gl_8292291f", string.Empty }, + { "nv!__gl_83498426", string.Empty }, + { "nv!__gl_84993794", string.Empty }, + { "nv!__gl_84995585", string.Empty }, + { "nv!__gl_84a0a0", string.Empty }, + { "nv!__gl_852142", string.Empty }, + { "nv!__gl_85612309", string.Empty }, + { "nv!__gl_85612310", string.Empty }, + { "nv!__gl_85612311", string.Empty }, + { "nv!__gl_85612312", string.Empty }, + { "nv!__gl_8623ff27", string.Empty }, + { "nv!__gl_87364952", string.Empty }, + { "nv!__gl_87f6275666", string.Empty }, + { "nv!__gl_886748", string.Empty }, + { "nv!__gl_89894423", string.Empty }, + { "nv!__gl_8ad8a75", string.Empty }, + { "nv!__gl_8ad8ad00", string.Empty }, + { "nv!__gl_8bb815", string.Empty }, + { "nv!__gl_8bb817", string.Empty }, + { "nv!__gl_8bb818", string.Empty }, + { "nv!__gl_8bb819", string.Empty }, + { "nv!__gl_8e640cd1", string.Empty }, + { "nv!__gl_8f34971a", string.Empty }, + { "nv!__gl_8f773984", string.Empty }, + { "nv!__gl_8f7a7d", string.Empty }, + { "nv!__gl_902486209", string.Empty }, + { "nv!__gl_90482571", string.Empty }, + { "nv!__gl_91214835", string.Empty }, + { "nv!__gl_912848290", string.Empty }, + { "nv!__gl_915e56", string.Empty }, + { "nv!__gl_92179063", string.Empty }, + { "nv!__gl_92179064", string.Empty }, + { "nv!__gl_92179065", string.Empty }, + { "nv!__gl_92179066", string.Empty }, + { "nv!__gl_92350358", string.Empty }, + { "nv!__gl_92809063", string.Empty }, + { "nv!__gl_92809064", string.Empty }, + { "nv!__gl_92809065", string.Empty }, + { "nv!__gl_92809066", string.Empty }, + { "nv!__gl_92920143", string.Empty }, + { "nv!__gl_93a89b12", string.Empty }, + { "nv!__gl_93a89c0b", string.Empty }, + { "nv!__gl_94812574", string.Empty }, + { "nv!__gl_95282304", string.Empty }, + { "nv!__gl_95394027", string.Empty }, + { "nv!__gl_959b1f", string.Empty }, + { "nv!__gl_9638af", string.Empty }, + { "nv!__gl_96fd59", string.Empty }, + { "nv!__gl_97f6275666", string.Empty }, + { "nv!__gl_97f6275667", string.Empty }, + { "nv!__gl_97f6275668", string.Empty }, + { "nv!__gl_97f6275669", string.Empty }, + { "nv!__gl_97f627566a", string.Empty }, + { "nv!__gl_97f627566b", string.Empty }, + { "nv!__gl_97f627566d", string.Empty }, + { "nv!__gl_97f627566e", string.Empty }, + { "nv!__gl_97f627566f", string.Empty }, + { "nv!__gl_97f6275670", string.Empty }, + { "nv!__gl_97f6275671", string.Empty }, + { "nv!__gl_97f727566e", string.Empty }, + { "nv!__gl_98480775", string.Empty }, + { "nv!__gl_98480776", string.Empty }, + { "nv!__gl_98480777", string.Empty }, + { "nv!__gl_992431", string.Empty }, + { "nv!__gl_9aa29065", string.Empty }, + { "nv!__gl_9af32c", string.Empty }, + { "nv!__gl_9af32d", string.Empty }, + { "nv!__gl_9af32e", string.Empty }, + { "nv!__gl_9c108b71", string.Empty }, + { "nv!__gl_9f279065", string.Empty }, + { "nv!__gl_a01bc728", string.Empty }, + { "nv!__gl_a13b46c80", string.Empty }, + { "nv!__gl_a22eb0", string.Empty }, + { "nv!__gl_a2fb451e", string.Empty }, + { "nv!__gl_a3456abe", string.Empty }, + { "nv!__gl_a7044887", string.Empty }, + { "nv!__gl_a7149200", string.Empty }, + { "nv!__gl_a766215670", string.Empty }, + { "nv!__gl_aalinegamma", string.Empty }, + { "nv!__gl_aalinetweaks", string.Empty }, + { "nv!__gl_ab34ee01", string.Empty }, + { "nv!__gl_ab34ee02", string.Empty }, + { "nv!__gl_ab34ee03", string.Empty }, + { "nv!__gl_ac0274", string.Empty }, + { "nv!__gl_af73c63e", string.Empty }, + { "nv!__gl_af73c63f", string.Empty }, + { "nv!__gl_af9927", string.Empty }, + { "nv!__gl_afoverride", string.Empty }, + { "nv!__gl_allocdeviceevents", string.Empty }, + { "nv!__gl_applicationkey", string.Empty }, + { "nv!__gl_appreturnonlybasicglsltype", string.Empty }, + { "nv!__gl_app_softimage", string.Empty }, + { "nv!__gl_app_supportbits2", string.Empty }, + { "nv!__gl_assumetextureismipmappedatcreation", string.Empty }, + { "nv!__gl_b1fb0f01", string.Empty }, + { "nv!__gl_b3edd5", string.Empty }, + { "nv!__gl_b40d9e03d", string.Empty }, + { "nv!__gl_b7f6275666", string.Empty }, + { "nv!__gl_b812c1", string.Empty }, + { "nv!__gl_ba14ba1a", string.Empty }, + { "nv!__gl_ba14ba1b", string.Empty }, + { "nv!__gl_bd7559", string.Empty }, + { "nv!__gl_bd755a", string.Empty }, + { "nv!__gl_bd755c", string.Empty }, + { "nv!__gl_bd755d", string.Empty }, + { "nv!__gl_be58bb", string.Empty }, + { "nv!__gl_be92cb", string.Empty }, + { "nv!__gl_beefcba3", string.Empty }, + { "nv!__gl_beefcba4", string.Empty }, + { "nv!__gl_c023777f", string.Empty }, + { "nv!__gl_c09dc8", string.Empty }, + { "nv!__gl_c0d340", string.Empty }, + { "nv!__gl_c2ff374c", string.Empty }, + { "nv!__gl_c5e9d7a3", string.Empty }, + { "nv!__gl_c5e9d7a4", string.Empty }, + { "nv!__gl_c5e9d7b4", string.Empty }, + { "nv!__gl_c618f9", string.Empty }, + { "nv!__gl_ca345840", string.Empty }, + { "nv!__gl_cachedisable", string.Empty }, + { "nv!__gl_channelpriorityoverride", string.Empty }, + { "nv!__gl_cleardatastorevidmem", string.Empty }, + { "nv!__gl_cmdbufmemoryspaceenables", string.Empty }, + { "nv!__gl_cmdbufminwords", string.Empty }, + { "nv!__gl_cmdbufsizewords", string.Empty }, + { "nv!__gl_conformantblitframebufferscissor", string.Empty }, + { "nv!__gl_conformantincompletetextures", string.Empty }, + { "nv!__gl_copybuffermethod", string.Empty }, + { "nv!__gl_cubemapaniso", string.Empty }, + { "nv!__gl_cubemapfiltering", string.Empty }, + { "nv!__gl_d0e9a4d7", string.Empty }, + { "nv!__gl_d13733f12", string.Empty }, + { "nv!__gl_d1b399", string.Empty }, + { "nv!__gl_d2983c32", string.Empty }, + { "nv!__gl_d2983c33", string.Empty }, + { "nv!__gl_d2e71b", string.Empty }, + { "nv!__gl_d377dc", string.Empty }, + { "nv!__gl_d377dd", string.Empty }, + { "nv!__gl_d489f4", string.Empty }, + { "nv!__gl_d4bce1", string.Empty }, + { "nv!__gl_d518cb", string.Empty }, + { "nv!__gl_d518cd", string.Empty }, + { "nv!__gl_d518ce", string.Empty }, + { "nv!__gl_d518d0", string.Empty }, + { "nv!__gl_d518d1", string.Empty }, + { "nv!__gl_d518d2", string.Empty }, + { "nv!__gl_d518d3", string.Empty }, + { "nv!__gl_d518d4", string.Empty }, + { "nv!__gl_d518d5", string.Empty }, + { "nv!__gl_d59eda", string.Empty }, + { "nv!__gl_d83cbd", string.Empty }, + { "nv!__gl_d8e777", string.Empty }, + { "nv!__gl_debug_level", string.Empty }, + { "nv!__gl_debug_mask", string.Empty }, + { "nv!__gl_debug_options", string.Empty }, + { "nv!__gl_devshmpageableallocations", string.Empty }, + { "nv!__gl_df1f9812", string.Empty }, + { "nv!__gl_df783c", string.Empty }, + { "nv!__gl_diagenable", string.Empty }, + { "nv!__gl_disallowcemask", string.Empty }, + { "nv!__gl_disallowz16", string.Empty }, + { "nv!__gl_dlmemoryspaceenables", string.Empty }, + { "nv!__gl_e0bfec", string.Empty }, + { "nv!__gl_e433456d", string.Empty }, + { "nv!__gl_e435563f", string.Empty }, + { "nv!__gl_e4cd9c", string.Empty }, + { "nv!__gl_e5c972", string.Empty }, + { "nv!__gl_e639ef", string.Empty }, + { "nv!__gl_e802af", string.Empty }, + { "nv!__gl_eae964", string.Empty }, + { "nv!__gl_earlytexturehwallocation", string.Empty }, + { "nv!__gl_eb92a3", string.Empty }, + { "nv!__gl_ebca56", string.Empty }, + { "nv!__gl_expert_detail_level", string.Empty }, + { "nv!__gl_expert_output_mask", string.Empty }, + { "nv!__gl_expert_report_mask", string.Empty }, + { "nv!__gl_extensionstringnvarch", string.Empty }, + { "nv!__gl_extensionstringversion", string.Empty }, + { "nv!__gl_f00f1938", string.Empty }, + { "nv!__gl_f10736", string.Empty }, + { "nv!__gl_f1846870", string.Empty }, + { "nv!__gl_f33bc370", string.Empty }, + { "nv!__gl_f392a874", string.Empty }, + { "nv!__gl_f49ae8", string.Empty }, + { "nv!__gl_fa345cce", string.Empty }, + { "nv!__gl_fa35cc4", string.Empty }, + { "nv!__gl_faa14a", string.Empty }, + { "nv!__gl_faf8a723", string.Empty }, + { "nv!__gl_fastgs", string.Empty }, + { "nv!__gl_fbf4ac45", string.Empty }, + { "nv!__gl_fbo_blit_ignore_srgb", string.Empty }, + { "nv!__gl_fc64c7", string.Empty }, + { "nv!__gl_ff54ec97", string.Empty }, + { "nv!__gl_ff54ec98", string.Empty }, + { "nv!__gl_forceexitprocessdetach", string.Empty }, + { "nv!__gl_forcerequestedesversion", string.Empty }, + { "nv!__gl_glsynctovblank", string.Empty }, + { "nv!__gl_gvitimeoutcontrol", string.Empty }, + { "nv!__gl_hcctrl", string.Empty }, + { "nv!__gl_hwstate_per_ctx", string.Empty }, + { "nv!__gl_machinecachelimit", string.Empty }, + { "nv!__gl_maxframesallowed", string.Empty }, + { "nv!__gl_memmgrcachedalloclimit", string.Empty }, + { "nv!__gl_memmgrcachedalloclimitratio", string.Empty }, + { "nv!__gl_memmgrsysheapalloclimit", string.Empty }, + { "nv!__gl_memmgrsysheapalloclimitratio", string.Empty }, + { "nv!__gl_memmgrvidheapalloclimit", string.Empty }, + { "nv!__gl_mosaic_clip_to_subdev", string.Empty }, + { "nv!__gl_mosaic_clip_to_subdev_h_overlap", string.Empty }, + { "nv!__gl_mosaic_clip_to_subdev_v_overlap", string.Empty }, + { "nv!__gl_overlaymergeblittimerms", string.Empty }, + { "nv!__gl_perfmon_mode", string.Empty }, + { "nv!__gl_pixbar_mode", string.Empty }, + { "nv!__gl_qualityenhancements", string.Empty }, + { "nv!__gl_r27s18q28", string.Empty }, + { "nv!__gl_r2d7c1d8", string.Empty }, + { "nv!__gl_renderer", string.Empty }, + { "nv!__gl_renderqualityflags", string.Empty }, + { "nv!__gl_s3tcquality", string.Empty }, + { "nv!__gl_shaderatomics", string.Empty }, + { "nv!__gl_shadercacheinitsize", string.Empty }, + { "nv!__gl_shader_disk_cache_path", string.Empty }, + { "nv!__gl_shader_disk_cache_read_only", string.Empty }, + { "nv!__gl_shaderobjects", string.Empty }, + { "nv!__gl_shaderportabilitywarnings", string.Empty }, + { "nv!__gl_shaderwarningsaserrors", string.Empty }, + { "nv!__gl_skiptexturehostcopies", string.Empty }, + { "nv!__glslc_debug_level", string.Empty }, + { "nv!__glslc_debug_mask", string.Empty }, + { "nv!__glslc_debug_options", string.Empty }, + { "nv!__glslc_debug_filename", string.Empty }, + { "nv!__gl_sli_dli_control", string.Empty }, + { "nv!__gl_sparsetexture", string.Empty }, + { "nv!__gl_spinlooptimeout", string.Empty }, + { "nv!__gl_sync_to_vblank", string.Empty }, + { "nv!glsynctovblank", string.Empty }, + { "nv!__gl_sysheapreuseratio", string.Empty }, + { "nv!__gl_sysmemtexturepromotion", string.Empty }, + { "nv!__gl_targetflushcount", string.Empty }, + { "nv!__gl_tearingfreeswappresent", string.Empty }, + { "nv!__gl_texclampbehavior", string.Empty }, + { "nv!__gl_texlodbias", string.Empty }, + { "nv!__gl_texmemoryspaceenables", string.Empty }, + { "nv!__gl_textureprecache", string.Empty }, + { "nv!__gl_threadcontrol", string.Empty }, + { "nv!__gl_threadcontrol2", string.Empty }, + { "nv!__gl_usegvievents", string.Empty }, + { "nv!__gl_vbomemoryspaceenables", string.Empty }, + { "nv!__gl_vertexlimit", string.Empty }, + { "nv!__gl_vidheapreuseratio", string.Empty }, + { "nv!__gl_vpipe", string.Empty }, + { "nv!__gl_vpipeformatbloatlimit", string.Empty }, + { "nv!__gl_wglmessageboxonabort", string.Empty }, + { "nv!__gl_writeinfolog", string.Empty }, + { "nv!__gl_writeprogramobjectassembly", string.Empty }, + { "nv!__gl_writeprogramobjectsource", string.Empty }, + { "nv!__gl_xnvadapterpresent", string.Empty }, + { "nv!__gl_yield", string.Empty }, + { "nv!__gl_yieldfunction", string.Empty }, + { "nv!__gl_yieldfunctionfast", string.Empty }, + { "nv!__gl_yieldfunctionslow", string.Empty }, + { "nv!__gl_yieldfunctionwaitfordcqueue", string.Empty }, + { "nv!__gl_yieldfunctionwaitforframe", string.Empty }, + { "nv!__gl_yieldfunctionwaitforgpu", string.Empty }, + { "nv!__gl_zbctableaddhysteresis", string.Empty }, + { "nv!gpu_debug_mode", string.Empty }, + { "nv!gpu_stay_on", string.Empty }, + { "nv!gpu_timeout_ms_max", string.Empty }, + { "nv!gvitimeoutcontrol", string.Empty }, + { "nv!hcctrl", string.Empty }, + { "nv!hwstate_per_ctx", string.Empty }, + { "nv!libandroid_enable_log", string.Empty }, + { "nv!machinecachelimit", string.Empty }, + { "nv!maxframesallowed", string.Empty }, + { "nv!media.aac_51_output_enabled", string.Empty }, + { "nv!memmgrcachedalloclimit", string.Empty }, + { "nv!memmgrcachedalloclimitratio", string.Empty }, + { "nv!memmgrsysheapalloclimit", string.Empty }, + { "nv!memmgrsysheapalloclimitratio", string.Empty }, + { "nv!memmgrvidheapalloclimit", string.Empty }, + { "nv!mosaic_clip_to_subdev", string.Empty }, + { "nv!mosaic_clip_to_subdev_h_overlap", string.Empty }, + { "nv!mosaic_clip_to_subdev_v_overlap", string.Empty }, + { "nv!nvblit.dump", string.Empty }, + { "nv!nvblit.profile", string.Empty }, + { "nv!nvblit.twod", string.Empty }, + { "nv!nvblit.vic", string.Empty }, + { "nv!nvddk_vic_prevent_use", string.Empty }, + { "nv!nv_decompression", string.Empty }, { "nv!nvdisp_bl_ctrl", "0" }, - { "nv!nvdisp_debug_mask", "" }, + { "nv!nvdisp_debug_mask", string.Empty }, { "nv!nvdisp_enable_ts", "0" }, { "nv!nvhdcp_timeout_ms", "12000" }, { "nv!nvhdcp_max_retries", "5" }, - { "nv!nv_emc_dvfs_test", "" }, - { "nv!nv_emc_init_rate_hz", "" }, - { "nv!nv_gmmu_va_page_split", "" }, - { "nv!nv_gmmu_va_range", "" }, - { "nv!nvhost_debug_mask", "" }, - { "nv!nvidia.hwc.dump_config", "" }, - { "nv!nvidia.hwc.dump_layerlist", "" }, - { "nv!nvidia.hwc.dump_windows", "" }, - { "nv!nvidia.hwc.enable_disp_trans", "" }, - { "nv!nvidia.hwc.ftrace_enable", "" }, - { "nv!nvidia.hwc.hdcp_enable", "" }, - { "nv!nvidia.hwc.hidden_window_mask0", "" }, - { "nv!nvidia.hwc.hidden_window_mask1", "" }, - { "nv!nvidia.hwc.immediate_modeset", "" }, - { "nv!nvidia.hwc.imp_enable", "" }, - { "nv!nvidia.hwc.no_egl", "" }, - { "nv!nvidia.hwc.no_scratchblit", "" }, - { "nv!nvidia.hwc.no_vic", "" }, - { "nv!nvidia.hwc.null_display", "" }, - { "nv!nvidia.hwc.scan_props", "" }, - { "nv!nvidia.hwc.swap_interval", "" }, + { "nv!nv_emc_dvfs_test", string.Empty }, + { "nv!nv_emc_init_rate_hz", string.Empty }, + { "nv!nv_gmmu_va_page_split", string.Empty }, + { "nv!nv_gmmu_va_range", string.Empty }, + { "nv!nvhost_debug_mask", string.Empty }, + { "nv!nvidia.hwc.dump_config", string.Empty }, + { "nv!nvidia.hwc.dump_layerlist", string.Empty }, + { "nv!nvidia.hwc.dump_windows", string.Empty }, + { "nv!nvidia.hwc.enable_disp_trans", string.Empty }, + { "nv!nvidia.hwc.ftrace_enable", string.Empty }, + { "nv!nvidia.hwc.hdcp_enable", string.Empty }, + { "nv!nvidia.hwc.hidden_window_mask0", string.Empty }, + { "nv!nvidia.hwc.hidden_window_mask1", string.Empty }, + { "nv!nvidia.hwc.immediate_modeset", string.Empty }, + { "nv!nvidia.hwc.imp_enable", string.Empty }, + { "nv!nvidia.hwc.no_egl", string.Empty }, + { "nv!nvidia.hwc.no_scratchblit", string.Empty }, + { "nv!nvidia.hwc.no_vic", string.Empty }, + { "nv!nvidia.hwc.null_display", string.Empty }, + { "nv!nvidia.hwc.scan_props", string.Empty }, + { "nv!nvidia.hwc.swap_interval", string.Empty }, { "nv!nvidia.hwc.war_1515812", "0" }, - { "nv!nvmap_debug_mask", "" }, - { "nv!nv_memory_profiler", "" }, - { "nv!nvnflinger_enable_log", "" }, - { "nv!nvnflinger_flip_policy", "" }, + { "nv!nvmap_debug_mask", string.Empty }, + { "nv!nv_memory_profiler", string.Empty }, + { "nv!nvnflinger_enable_log", string.Empty }, + { "nv!nvnflinger_flip_policy", string.Empty }, { "nv!nvnflinger_hotplug_autoswitch", "0" }, { "nv!nvnflinger_prefer_primary_layer", "0" }, - { "nv!nvnflinger_service_priority", "" }, - { "nv!nvnflinger_service_threads", "" }, - { "nv!nvnflinger_swap_interval", "" }, - { "nv!nvnflinger_track_perf", "" }, + { "nv!nvnflinger_service_priority", string.Empty }, + { "nv!nvnflinger_service_threads", string.Empty }, + { "nv!nvnflinger_swap_interval", string.Empty }, + { "nv!nvnflinger_track_perf", string.Empty }, { "nv!nvnflinger_virtualdisplay_policy", "60hz" }, { "nv!nvn_no_vsync_capability", false }, - { "nv!nvn_through_opengl", "" }, - { "nv!nv_pllcx_always_on", "" }, - { "nv!nv_pllcx_safe_div", "" }, - { "nv!nvrm_gpu_channel_interleave", "" }, - { "nv!nvrm_gpu_channel_priority", "" }, - { "nv!nvrm_gpu_channel_timeslice", "" }, - { "nv!nvrm_gpu_default_device_index", "" }, - { "nv!nvrm_gpu_dummy", "" }, - { "nv!nvrm_gpu_help", "" }, - { "nv!nvrm_gpu_nvgpu_disable", "" }, - { "nv!nvrm_gpu_nvgpu_do_nfa_partial_map", "" }, - { "nv!nvrm_gpu_nvgpu_ecc_overrides", "" }, - { "nv!nvrm_gpu_nvgpu_no_as_get_va_regions", "" }, - { "nv!nvrm_gpu_nvgpu_no_channel_abort", "" }, - { "nv!nvrm_gpu_nvgpu_no_cyclestats", "" }, - { "nv!nvrm_gpu_nvgpu_no_fixed", "" }, - { "nv!nvrm_gpu_nvgpu_no_gpu_characteristics", "" }, - { "nv!nvrm_gpu_nvgpu_no_ioctl_mutex", "" }, - { "nv!nvrm_gpu_nvgpu_no_map_buffer_ex", "" }, - { "nv!nvrm_gpu_nvgpu_no_robustness", "" }, - { "nv!nvrm_gpu_nvgpu_no_sparse", "" }, - { "nv!nvrm_gpu_nvgpu_no_syncpoints", "" }, - { "nv!nvrm_gpu_nvgpu_no_tsg", "" }, - { "nv!nvrm_gpu_nvgpu_no_zbc", "" }, - { "nv!nvrm_gpu_nvgpu_no_zcull", "" }, - { "nv!nvrm_gpu_nvgpu_wrap_channels_in_tsgs", "" }, - { "nv!nvrm_gpu_prevent_use", "" }, - { "nv!nvrm_gpu_trace", "" }, - { "nv!nvsched_debug_mask", "" }, - { "nv!nvsched_force_enable", "" }, - { "nv!nvsched_force_log", "" }, - { "nv!nv_usb_plls_hw_ctrl", "" }, - { "nv!nv_winsys", "" }, - { "nv!nvwsi_dump", "" }, - { "nv!nvwsi_fill", "" }, - { "nv!ogl_", "" }, - { "nv!ogl_0356afd0", "" }, - { "nv!ogl_0356afd1", "" }, - { "nv!ogl_0356afd2", "" }, - { "nv!ogl_0356afd3", "" }, - { "nv!ogl_0x923dc0", "" }, - { "nv!ogl_0x923dc1", "" }, - { "nv!ogl_0x923dc2", "" }, - { "nv!ogl_0x923dc3", "" }, - { "nv!ogl_0x923dc4", "" }, - { "nv!ogl_0x923dd3", "" }, - { "nv!ogl_0x9abdc5", "" }, - { "nv!ogl_0x9abdc6", "" }, - { "nv!ogl_0xbd10fb", "" }, - { "nv!ogl_0xce2348", "" }, - { "nv!ogl_10261989", "" }, - { "nv!ogl_1042d483", "" }, - { "nv!ogl_10572898", "" }, - { "nv!ogl_115631", "" }, - { "nv!ogl_12950094", "" }, - { "nv!ogl_1314f311", "" }, - { "nv!ogl_1314f312", "" }, - { "nv!ogl_13279512", "" }, - { "nv!ogl_13813496", "" }, - { "nv!ogl_14507179", "" }, - { "nv!ogl_15694569", "" }, - { "nv!ogl_16936964", "" }, - { "nv!ogl_17aa230c", "" }, - { "nv!ogl_182054", "" }, - { "nv!ogl_18273275", "" }, - { "nv!ogl_18273276", "" }, - { "nv!ogl_1854d03b", "" }, - { "nv!ogl_18add00d", "" }, - { "nv!ogl_19156670", "" }, - { "nv!ogl_19286545", "" }, - { "nv!ogl_1a298e9f", "" }, - { "nv!ogl_1acf43fe", "" }, - { "nv!ogl_1bda43fe", "" }, - { "nv!ogl_1c3b92", "" }, - { "nv!ogl_21509920", "" }, - { "nv!ogl_215323457", "" }, - { "nv!ogl_2165ad", "" }, - { "nv!ogl_2165ae", "" }, - { "nv!ogl_21be9c", "" }, - { "nv!ogl_233264316", "" }, - { "nv!ogl_234557580", "" }, - { "nv!ogl_23cd0e", "" }, - { "nv!ogl_24189123", "" }, - { "nv!ogl_2443266", "" }, - { "nv!ogl_25025519", "" }, - { "nv!ogl_255e39", "" }, - { "nv!ogl_2583364", "" }, - { "nv!ogl_2888c1", "" }, - { "nv!ogl_28ca3e", "" }, - { "nv!ogl_29871243", "" }, - { "nv!ogl_2a1f64", "" }, - { "nv!ogl_2dc432", "" }, - { "nv!ogl_2de437", "" }, - { "nv!ogl_2f3bb89c", "" }, - { "nv!ogl_2fd652", "" }, - { "nv!ogl_3001ac", "" }, - { "nv!ogl_31298772", "" }, - { "nv!ogl_313233", "" }, - { "nv!ogl_31f7d603", "" }, - { "nv!ogl_320ce4", "" }, - { "nv!ogl_32153248", "" }, - { "nv!ogl_32153249", "" }, - { "nv!ogl_335bca", "" }, - { "nv!ogl_342abb", "" }, - { "nv!ogl_34dfe6", "" }, - { "nv!ogl_34dfe7", "" }, - { "nv!ogl_34dfe8", "" }, - { "nv!ogl_34dfe9", "" }, - { "nv!ogl_35201578", "" }, - { "nv!ogl_359278", "" }, - { "nv!ogl_37f53a", "" }, - { "nv!ogl_38144972", "" }, - { "nv!ogl_38542646", "" }, - { "nv!ogl_3b74c9", "" }, - { "nv!ogl_3c136f", "" }, - { "nv!ogl_3cf72823", "" }, - { "nv!ogl_3d7af029", "" }, - { "nv!ogl_3ff34782", "" }, - { "nv!ogl_4129618", "" }, - { "nv!ogl_4189fac3", "" }, - { "nv!ogl_420bd4", "" }, - { "nv!ogl_42a699", "" }, - { "nv!ogl_441369", "" }, - { "nv!ogl_4458713e", "" }, - { "nv!ogl_4554b6", "" }, - { "nv!ogl_457425", "" }, - { "nv!ogl_4603b207", "" }, - { "nv!ogl_46574957", "" }, - { "nv!ogl_46574958", "" }, - { "nv!ogl_46813529", "" }, - { "nv!ogl_46f1e13d", "" }, - { "nv!ogl_47534c43", "" }, - { "nv!ogl_48550336", "" }, - { "nv!ogl_48576893", "" }, - { "nv!ogl_48576894", "" }, - { "nv!ogl_4889ac02", "" }, - { "nv!ogl_49005740", "" }, - { "nv!ogl_49867584", "" }, - { "nv!ogl_49960973", "" }, - { "nv!ogl_4a5341", "" }, - { "nv!ogl_4f4e48", "" }, - { "nv!ogl_4f8a0a", "" }, - { "nv!ogl_50299698", "" }, - { "nv!ogl_50299699", "" }, - { "nv!ogl_50361291", "" }, - { "nv!ogl_5242ae", "" }, - { "nv!ogl_53d30c", "" }, - { "nv!ogl_56347a", "" }, - { "nv!ogl_563a95f1", "" }, - { "nv!ogl_573823", "" }, - { "nv!ogl_58027529", "" }, - { "nv!ogl_5d2d63", "" }, - { "nv!ogl_5f7e3b", "" }, - { "nv!ogl_60461793", "" }, - { "nv!ogl_60d355", "" }, - { "nv!ogl_616627aa", "" }, - { "nv!ogl_62317182", "" }, - { "nv!ogl_6253fa2e", "" }, - { "nv!ogl_64100768", "" }, - { "nv!ogl_64100769", "" }, - { "nv!ogl_64100770", "" }, - { "nv!ogl_647395", "" }, - { "nv!ogl_66543234", "" }, - { "nv!ogl_67674763", "" }, - { "nv!ogl_67739784", "" }, - { "nv!ogl_68fb9c", "" }, - { "nv!ogl_69801276", "" }, - { "nv!ogl_6af9fa2f", "" }, - { "nv!ogl_6af9fa3f", "" }, - { "nv!ogl_6af9fa4f", "" }, - { "nv!ogl_6bd8c7", "" }, - { "nv!ogl_6c7691", "" }, - { "nv!ogl_6d4296ce", "" }, - { "nv!ogl_6dd7e7", "" }, - { "nv!ogl_6dd7e8", "" }, - { "nv!ogl_6fe11ec1", "" }, - { "nv!ogl_716511763", "" }, - { "nv!ogl_72504593", "" }, - { "nv!ogl_73304097", "" }, - { "nv!ogl_73314098", "" }, - { "nv!ogl_74095213", "" }, - { "nv!ogl_74095213a", "" }, - { "nv!ogl_74095213b", "" }, - { "nv!ogl_74095214", "" }, - { "nv!ogl_748f9649", "" }, - { "nv!ogl_75494732", "" }, - { "nv!ogl_78452832", "" }, - { "nv!ogl_784561", "" }, - { "nv!ogl_78e16b9c", "" }, - { "nv!ogl_79251225", "" }, - { "nv!ogl_7c128b", "" }, - { "nv!ogl_7ccd93", "" }, - { "nv!ogl_7df8d1", "" }, - { "nv!ogl_800c2310", "" }, - { "nv!ogl_80546710", "" }, - { "nv!ogl_80772310", "" }, - { "nv!ogl_808ee280", "" }, - { "nv!ogl_81131154", "" }, - { "nv!ogl_81274457", "" }, - { "nv!ogl_8292291f", "" }, - { "nv!ogl_83498426", "" }, - { "nv!ogl_84993794", "" }, - { "nv!ogl_84995585", "" }, - { "nv!ogl_84a0a0", "" }, - { "nv!ogl_852142", "" }, - { "nv!ogl_85612309", "" }, - { "nv!ogl_85612310", "" }, - { "nv!ogl_85612311", "" }, - { "nv!ogl_85612312", "" }, - { "nv!ogl_8623ff27", "" }, - { "nv!ogl_87364952", "" }, - { "nv!ogl_87f6275666", "" }, - { "nv!ogl_886748", "" }, - { "nv!ogl_89894423", "" }, - { "nv!ogl_8ad8a75", "" }, - { "nv!ogl_8ad8ad00", "" }, - { "nv!ogl_8bb815", "" }, - { "nv!ogl_8bb817", "" }, - { "nv!ogl_8bb818", "" }, - { "nv!ogl_8bb819", "" }, - { "nv!ogl_8e640cd1", "" }, - { "nv!ogl_8f34971a", "" }, - { "nv!ogl_8f773984", "" }, - { "nv!ogl_8f7a7d", "" }, - { "nv!ogl_902486209", "" }, - { "nv!ogl_90482571", "" }, - { "nv!ogl_91214835", "" }, - { "nv!ogl_912848290", "" }, - { "nv!ogl_915e56", "" }, - { "nv!ogl_92179063", "" }, - { "nv!ogl_92179064", "" }, - { "nv!ogl_92179065", "" }, - { "nv!ogl_92179066", "" }, - { "nv!ogl_92350358", "" }, - { "nv!ogl_92809063", "" }, - { "nv!ogl_92809064", "" }, - { "nv!ogl_92809065", "" }, - { "nv!ogl_92809066", "" }, - { "nv!ogl_92920143", "" }, - { "nv!ogl_93a89b12", "" }, - { "nv!ogl_93a89c0b", "" }, - { "nv!ogl_94812574", "" }, - { "nv!ogl_95282304", "" }, - { "nv!ogl_95394027", "" }, - { "nv!ogl_959b1f", "" }, - { "nv!ogl_9638af", "" }, - { "nv!ogl_96fd59", "" }, - { "nv!ogl_97f6275666", "" }, - { "nv!ogl_97f6275667", "" }, - { "nv!ogl_97f6275668", "" }, - { "nv!ogl_97f6275669", "" }, - { "nv!ogl_97f627566a", "" }, - { "nv!ogl_97f627566b", "" }, - { "nv!ogl_97f627566d", "" }, - { "nv!ogl_97f627566e", "" }, - { "nv!ogl_97f627566f", "" }, - { "nv!ogl_97f6275670", "" }, - { "nv!ogl_97f6275671", "" }, - { "nv!ogl_97f727566e", "" }, - { "nv!ogl_98480775", "" }, - { "nv!ogl_98480776", "" }, - { "nv!ogl_98480777", "" }, - { "nv!ogl_992431", "" }, - { "nv!ogl_9aa29065", "" }, - { "nv!ogl_9af32c", "" }, - { "nv!ogl_9af32d", "" }, - { "nv!ogl_9af32e", "" }, - { "nv!ogl_9c108b71", "" }, - { "nv!ogl_9f279065", "" }, - { "nv!ogl_a01bc728", "" }, - { "nv!ogl_a13b46c80", "" }, - { "nv!ogl_a22eb0", "" }, - { "nv!ogl_a2fb451e", "" }, - { "nv!ogl_a3456abe", "" }, - { "nv!ogl_a7044887", "" }, - { "nv!ogl_a7149200", "" }, - { "nv!ogl_a766215670", "" }, - { "nv!ogl_aalinegamma", "" }, - { "nv!ogl_aalinetweaks", "" }, - { "nv!ogl_ab34ee01", "" }, - { "nv!ogl_ab34ee02", "" }, - { "nv!ogl_ab34ee03", "" }, - { "nv!ogl_ac0274", "" }, - { "nv!ogl_af73c63e", "" }, - { "nv!ogl_af73c63f", "" }, - { "nv!ogl_af9927", "" }, - { "nv!ogl_afoverride", "" }, - { "nv!ogl_allocdeviceevents", "" }, - { "nv!ogl_applicationkey", "" }, - { "nv!ogl_appreturnonlybasicglsltype", "" }, - { "nv!ogl_app_softimage", "" }, - { "nv!ogl_app_supportbits2", "" }, - { "nv!ogl_assumetextureismipmappedatcreation", "" }, - { "nv!ogl_b1fb0f01", "" }, - { "nv!ogl_b3edd5", "" }, - { "nv!ogl_b40d9e03d", "" }, - { "nv!ogl_b7f6275666", "" }, - { "nv!ogl_b812c1", "" }, - { "nv!ogl_ba14ba1a", "" }, - { "nv!ogl_ba14ba1b", "" }, - { "nv!ogl_bd7559", "" }, - { "nv!ogl_bd755a", "" }, - { "nv!ogl_bd755c", "" }, - { "nv!ogl_bd755d", "" }, - { "nv!ogl_be58bb", "" }, - { "nv!ogl_be92cb", "" }, - { "nv!ogl_beefcba3", "" }, - { "nv!ogl_beefcba4", "" }, - { "nv!ogl_c023777f", "" }, - { "nv!ogl_c09dc8", "" }, - { "nv!ogl_c0d340", "" }, - { "nv!ogl_c2ff374c", "" }, - { "nv!ogl_c5e9d7a3", "" }, - { "nv!ogl_c5e9d7a4", "" }, - { "nv!ogl_c5e9d7b4", "" }, - { "nv!ogl_c618f9", "" }, - { "nv!ogl_ca345840", "" }, - { "nv!ogl_cachedisable", "" }, - { "nv!ogl_channelpriorityoverride", "" }, - { "nv!ogl_cleardatastorevidmem", "" }, - { "nv!ogl_cmdbufmemoryspaceenables", "" }, - { "nv!ogl_cmdbufminwords", "" }, - { "nv!ogl_cmdbufsizewords", "" }, - { "nv!ogl_conformantblitframebufferscissor", "" }, - { "nv!ogl_conformantincompletetextures", "" }, - { "nv!ogl_copybuffermethod", "" }, - { "nv!ogl_cubemapaniso", "" }, - { "nv!ogl_cubemapfiltering", "" }, - { "nv!ogl_d0e9a4d7", "" }, - { "nv!ogl_d13733f12", "" }, - { "nv!ogl_d1b399", "" }, - { "nv!ogl_d2983c32", "" }, - { "nv!ogl_d2983c33", "" }, - { "nv!ogl_d2e71b", "" }, - { "nv!ogl_d377dc", "" }, - { "nv!ogl_d377dd", "" }, - { "nv!ogl_d489f4", "" }, - { "nv!ogl_d4bce1", "" }, - { "nv!ogl_d518cb", "" }, - { "nv!ogl_d518cd", "" }, - { "nv!ogl_d518ce", "" }, - { "nv!ogl_d518d0", "" }, - { "nv!ogl_d518d1", "" }, - { "nv!ogl_d518d2", "" }, - { "nv!ogl_d518d3", "" }, - { "nv!ogl_d518d4", "" }, - { "nv!ogl_d518d5", "" }, - { "nv!ogl_d59eda", "" }, - { "nv!ogl_d83cbd", "" }, - { "nv!ogl_d8e777", "" }, - { "nv!ogl_debug_level", "" }, - { "nv!ogl_debug_mask", "" }, - { "nv!ogl_debug_options", "" }, - { "nv!ogl_devshmpageableallocations", "" }, - { "nv!ogl_df1f9812", "" }, - { "nv!ogl_df783c", "" }, - { "nv!ogl_diagenable", "" }, - { "nv!ogl_disallowcemask", "" }, - { "nv!ogl_disallowz16", "" }, - { "nv!ogl_dlmemoryspaceenables", "" }, - { "nv!ogl_e0bfec", "" }, - { "nv!ogl_e433456d", "" }, - { "nv!ogl_e435563f", "" }, - { "nv!ogl_e4cd9c", "" }, - { "nv!ogl_e5c972", "" }, - { "nv!ogl_e639ef", "" }, - { "nv!ogl_e802af", "" }, - { "nv!ogl_eae964", "" }, - { "nv!ogl_earlytexturehwallocation", "" }, - { "nv!ogl_eb92a3", "" }, - { "nv!ogl_ebca56", "" }, - { "nv!ogl_expert_detail_level", "" }, - { "nv!ogl_expert_output_mask", "" }, - { "nv!ogl_expert_report_mask", "" }, - { "nv!ogl_extensionstringnvarch", "" }, - { "nv!ogl_extensionstringversion", "" }, - { "nv!ogl_f00f1938", "" }, - { "nv!ogl_f10736", "" }, - { "nv!ogl_f1846870", "" }, - { "nv!ogl_f33bc370", "" }, - { "nv!ogl_f392a874", "" }, - { "nv!ogl_f49ae8", "" }, - { "nv!ogl_fa345cce", "" }, - { "nv!ogl_fa35cc4", "" }, - { "nv!ogl_faa14a", "" }, - { "nv!ogl_faf8a723", "" }, - { "nv!ogl_fastgs", "" }, - { "nv!ogl_fbf4ac45", "" }, - { "nv!ogl_fbo_blit_ignore_srgb", "" }, - { "nv!ogl_fc64c7", "" }, - { "nv!ogl_ff54ec97", "" }, - { "nv!ogl_ff54ec98", "" }, - { "nv!ogl_forceexitprocessdetach", "" }, - { "nv!ogl_forcerequestedesversion", "" }, - { "nv!ogl_glsynctovblank", "" }, - { "nv!ogl_gvitimeoutcontrol", "" }, - { "nv!ogl_hcctrl", "" }, - { "nv!ogl_hwstate_per_ctx", "" }, - { "nv!ogl_machinecachelimit", "" }, - { "nv!ogl_maxframesallowed", "" }, - { "nv!ogl_memmgrcachedalloclimit", "" }, - { "nv!ogl_memmgrcachedalloclimitratio", "" }, - { "nv!ogl_memmgrsysheapalloclimit", "" }, - { "nv!ogl_memmgrsysheapalloclimitratio", "" }, - { "nv!ogl_memmgrvidheapalloclimit", "" }, - { "nv!ogl_mosaic_clip_to_subdev", "" }, - { "nv!ogl_mosaic_clip_to_subdev_h_overlap", "" }, - { "nv!ogl_mosaic_clip_to_subdev_v_overlap", "" }, - { "nv!ogl_overlaymergeblittimerms", "" }, - { "nv!ogl_perfmon_mode", "" }, - { "nv!ogl_pixbar_mode", "" }, - { "nv!ogl_qualityenhancements", "" }, - { "nv!ogl_r27s18q28", "" }, - { "nv!ogl_r2d7c1d8", "" }, - { "nv!ogl_renderer", "" }, - { "nv!ogl_renderqualityflags", "" }, - { "nv!ogl_s3tcquality", "" }, - { "nv!ogl_shaderatomics", "" }, - { "nv!ogl_shadercacheinitsize", "" }, - { "nv!ogl_shader_disk_cache_path", "" }, - { "nv!ogl_shader_disk_cache_read_only", "" }, - { "nv!ogl_shaderobjects", "" }, - { "nv!ogl_shaderportabilitywarnings", "" }, - { "nv!ogl_shaderwarningsaserrors", "" }, - { "nv!ogl_skiptexturehostcopies", "" }, - { "nv!ogl_sli_dli_control", "" }, - { "nv!ogl_sparsetexture", "" }, - { "nv!ogl_spinlooptimeout", "" }, - { "nv!ogl_sync_to_vblank", "" }, - { "nv!ogl_sysheapreuseratio", "" }, - { "nv!ogl_sysmemtexturepromotion", "" }, - { "nv!ogl_targetflushcount", "" }, - { "nv!ogl_tearingfreeswappresent", "" }, - { "nv!ogl_texclampbehavior", "" }, - { "nv!ogl_texlodbias", "" }, - { "nv!ogl_texmemoryspaceenables", "" }, - { "nv!ogl_textureprecache", "" }, - { "nv!ogl_threadcontrol", "" }, - { "nv!ogl_threadcontrol2", "" }, - { "nv!ogl_usegvievents", "" }, - { "nv!ogl_vbomemoryspaceenables", "" }, - { "nv!ogl_vertexlimit", "" }, - { "nv!ogl_vidheapreuseratio", "" }, - { "nv!ogl_vpipe", "" }, - { "nv!ogl_vpipeformatbloatlimit", "" }, - { "nv!ogl_wglmessageboxonabort", "" }, - { "nv!ogl_writeinfolog", "" }, - { "nv!ogl_writeprogramobjectassembly", "" }, - { "nv!ogl_writeprogramobjectsource", "" }, - { "nv!ogl_xnvadapterpresent", "" }, - { "nv!ogl_yield", "" }, - { "nv!ogl_yieldfunction", "" }, - { "nv!ogl_yieldfunctionfast", "" }, - { "nv!ogl_yieldfunctionslow", "" }, - { "nv!ogl_yieldfunctionwaitfordcqueue", "" }, - { "nv!ogl_yieldfunctionwaitforframe", "" }, - { "nv!ogl_yieldfunctionwaitforgpu", "" }, - { "nv!ogl_zbctableaddhysteresis", "" }, - { "nv!overlaymergeblittimerms", "" }, - { "nv!perfmon_mode", "" }, - { "nv!persist.sys.display.resolution", "" }, - { "nv!persist.tegra.composite.fallb", "" }, - { "nv!persist.tegra.composite.policy", "" }, - { "nv!persist.tegra.composite.range", "" }, - { "nv!persist.tegra.compositor", "" }, - { "nv!persist.tegra.compositor.virt", "" }, - { "nv!persist.tegra.compression", "" }, - { "nv!persist.tegra.cursor.enable", "" }, - { "nv!persist.tegra.didim.enable", "" }, - { "nv!persist.tegra.didim.normal", "" }, - { "nv!persist.tegra.didim.video", "" }, - { "nv!persist.tegra.disp.heads", "" }, - { "nv!persist.tegra.gamma_correction", "" }, - { "nv!persist.tegra.gpu_mapping_cache", "" }, - { "nv!persist.tegra.grlayout", "" }, - { "nv!persist.tegra.hdmi.2020.10", "" }, - { "nv!persist.tegra.hdmi.2020.fake", "" }, - { "nv!persist.tegra.hdmi.2020.force", "" }, - { "nv!persist.tegra.hdmi.autorotate", "" }, - { "nv!persist.tegra.hdmi.hdr.fake", "" }, - { "nv!persist.tegra.hdmi.ignore_ratio", "" }, - { "nv!persist.tegra.hdmi.limit.clock", "" }, - { "nv!persist.tegra.hdmi.only_16_9", "" }, - { "nv!persist.tegra.hdmi.range", "" }, - { "nv!persist.tegra.hdmi.resolution", "" }, - { "nv!persist.tegra.hdmi.underscan", "" }, - { "nv!persist.tegra.hdmi.yuv.422", "" }, - { "nv!persist.tegra.hdmi.yuv.444", "" }, - { "nv!persist.tegra.hdmi.yuv.enable", "" }, - { "nv!persist.tegra.hdmi.yuv.force", "" }, - { "nv!persist.tegra.hwc.nvdc", "" }, - { "nv!persist.tegra.idle.minimum_fps", "" }, - { "nv!persist.tegra.panel.rotation", "" }, - { "nv!persist.tegra.scan_props", "" }, - { "nv!persist.tegra.stb.mode", "" }, - { "nv!persist.tegra.zbc_override", "" }, - { "nv!pixbar_mode", "" }, - { "nv!qualityenhancements", "" }, - { "nv!r27s18q28", "" }, - { "nv!r2d7c1d8", "" }, - { "nv!renderer", "" }, - { "nv!renderqualityflags", "" }, - { "nv!rmos_debug_mask", "" }, - { "nv!rmos_set_production_mode", "" }, - { "nv!s3tcquality", "" }, - { "nv!shaderatomics", "" }, - { "nv!shadercacheinitsize", "" }, - { "nv!shader_disk_cache_path", "" }, - { "nv!shader_disk_cache_read_only", "" }, - { "nv!shaderobjects", "" }, - { "nv!shaderportabilitywarnings", "" }, - { "nv!shaderwarningsaserrors", "" }, - { "nv!skiptexturehostcopies", "" }, - { "nv!sli_dli_control", "" }, - { "nv!sparsetexture", "" }, - { "nv!spinlooptimeout", "" }, - { "nv!sync_to_vblank", "" }, - { "nv!sysheapreuseratio", "" }, - { "nv!sysmemtexturepromotion", "" }, - { "nv!targetflushcount", "" }, - { "nv!tearingfreeswappresent", "" }, - { "nv!tegra.refresh", "" }, - { "nv!texclampbehavior", "" }, - { "nv!texlodbias", "" }, - { "nv!texmemoryspaceenables", "" }, - { "nv!textureprecache", "" }, - { "nv!threadcontrol", "" }, - { "nv!threadcontrol2", "" }, - { "nv!tvmr.avp.logs", "" }, - { "nv!tvmr.buffer.logs", "" }, - { "nv!tvmr.dec.prof", "" }, - { "nv!tvmr.deint.logs", "" }, - { "nv!tvmr.dfs.logs", "" }, - { "nv!tvmr.ffprof.logs", "" }, - { "nv!tvmr.game.stream", "" }, - { "nv!tvmr.general.logs", "" }, - { "nv!tvmr.input.dump", "" }, - { "nv!tvmr.seeking.logs", "" }, - { "nv!tvmr.ts_pulldown", "" }, - { "nv!usegvievents", "" }, - { "nv!vbomemoryspaceenables", "" }, - { "nv!vcc_debug_ip", "" }, - { "nv!vcc_verbose_level", "" }, - { "nv!vertexlimit", "" }, - { "nv!viccomposer.filter", "" }, - { "nv!videostats-enable", "" }, - { "nv!vidheapreuseratio", "" }, - { "nv!vpipe", "" }, - { "nv!vpipeformatbloatlimit", "" }, - { "nv!wglmessageboxonabort", "" }, - { "nv!writeinfolog", "" }, - { "nv!writeprogramobjectassembly", "" }, - { "nv!writeprogramobjectsource", "" }, - { "nv!xnvadapterpresent", "" }, - { "nv!yield", "" }, - { "nv!yieldfunction", "" }, - { "nv!yieldfunctionfast", "" }, - { "nv!yieldfunctionslow", "" }, - { "nv!yieldfunctionwaitfordcqueue", "" }, - { "nv!yieldfunctionwaitforframe", "" }, - { "nv!yieldfunctionwaitforgpu", "" }, - { "nv!zbctableaddhysteresis", "" }, + { "nv!nvn_through_opengl", string.Empty }, + { "nv!nv_pllcx_always_on", string.Empty }, + { "nv!nv_pllcx_safe_div", string.Empty }, + { "nv!nvrm_gpu_channel_interleave", string.Empty }, + { "nv!nvrm_gpu_channel_priority", string.Empty }, + { "nv!nvrm_gpu_channel_timeslice", string.Empty }, + { "nv!nvrm_gpu_default_device_index", string.Empty }, + { "nv!nvrm_gpu_dummy", string.Empty }, + { "nv!nvrm_gpu_help", string.Empty }, + { "nv!nvrm_gpu_nvgpu_disable", string.Empty }, + { "nv!nvrm_gpu_nvgpu_do_nfa_partial_map", string.Empty }, + { "nv!nvrm_gpu_nvgpu_ecc_overrides", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_as_get_va_regions", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_channel_abort", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_cyclestats", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_fixed", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_gpu_characteristics", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_ioctl_mutex", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_map_buffer_ex", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_robustness", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_sparse", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_syncpoints", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_tsg", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_zbc", string.Empty }, + { "nv!nvrm_gpu_nvgpu_no_zcull", string.Empty }, + { "nv!nvrm_gpu_nvgpu_wrap_channels_in_tsgs", string.Empty }, + { "nv!nvrm_gpu_prevent_use", string.Empty }, + { "nv!nvrm_gpu_trace", string.Empty }, + { "nv!nvsched_debug_mask", string.Empty }, + { "nv!nvsched_force_enable", string.Empty }, + { "nv!nvsched_force_log", string.Empty }, + { "nv!nv_usb_plls_hw_ctrl", string.Empty }, + { "nv!nv_winsys", string.Empty }, + { "nv!nvwsi_dump", string.Empty }, + { "nv!nvwsi_fill", string.Empty }, + { "nv!ogl_", string.Empty }, + { "nv!ogl_0356afd0", string.Empty }, + { "nv!ogl_0356afd1", string.Empty }, + { "nv!ogl_0356afd2", string.Empty }, + { "nv!ogl_0356afd3", string.Empty }, + { "nv!ogl_0x923dc0", string.Empty }, + { "nv!ogl_0x923dc1", string.Empty }, + { "nv!ogl_0x923dc2", string.Empty }, + { "nv!ogl_0x923dc3", string.Empty }, + { "nv!ogl_0x923dc4", string.Empty }, + { "nv!ogl_0x923dd3", string.Empty }, + { "nv!ogl_0x9abdc5", string.Empty }, + { "nv!ogl_0x9abdc6", string.Empty }, + { "nv!ogl_0xbd10fb", string.Empty }, + { "nv!ogl_0xce2348", string.Empty }, + { "nv!ogl_10261989", string.Empty }, + { "nv!ogl_1042d483", string.Empty }, + { "nv!ogl_10572898", string.Empty }, + { "nv!ogl_115631", string.Empty }, + { "nv!ogl_12950094", string.Empty }, + { "nv!ogl_1314f311", string.Empty }, + { "nv!ogl_1314f312", string.Empty }, + { "nv!ogl_13279512", string.Empty }, + { "nv!ogl_13813496", string.Empty }, + { "nv!ogl_14507179", string.Empty }, + { "nv!ogl_15694569", string.Empty }, + { "nv!ogl_16936964", string.Empty }, + { "nv!ogl_17aa230c", string.Empty }, + { "nv!ogl_182054", string.Empty }, + { "nv!ogl_18273275", string.Empty }, + { "nv!ogl_18273276", string.Empty }, + { "nv!ogl_1854d03b", string.Empty }, + { "nv!ogl_18add00d", string.Empty }, + { "nv!ogl_19156670", string.Empty }, + { "nv!ogl_19286545", string.Empty }, + { "nv!ogl_1a298e9f", string.Empty }, + { "nv!ogl_1acf43fe", string.Empty }, + { "nv!ogl_1bda43fe", string.Empty }, + { "nv!ogl_1c3b92", string.Empty }, + { "nv!ogl_21509920", string.Empty }, + { "nv!ogl_215323457", string.Empty }, + { "nv!ogl_2165ad", string.Empty }, + { "nv!ogl_2165ae", string.Empty }, + { "nv!ogl_21be9c", string.Empty }, + { "nv!ogl_233264316", string.Empty }, + { "nv!ogl_234557580", string.Empty }, + { "nv!ogl_23cd0e", string.Empty }, + { "nv!ogl_24189123", string.Empty }, + { "nv!ogl_2443266", string.Empty }, + { "nv!ogl_25025519", string.Empty }, + { "nv!ogl_255e39", string.Empty }, + { "nv!ogl_2583364", string.Empty }, + { "nv!ogl_2888c1", string.Empty }, + { "nv!ogl_28ca3e", string.Empty }, + { "nv!ogl_29871243", string.Empty }, + { "nv!ogl_2a1f64", string.Empty }, + { "nv!ogl_2dc432", string.Empty }, + { "nv!ogl_2de437", string.Empty }, + { "nv!ogl_2f3bb89c", string.Empty }, + { "nv!ogl_2fd652", string.Empty }, + { "nv!ogl_3001ac", string.Empty }, + { "nv!ogl_31298772", string.Empty }, + { "nv!ogl_313233", string.Empty }, + { "nv!ogl_31f7d603", string.Empty }, + { "nv!ogl_320ce4", string.Empty }, + { "nv!ogl_32153248", string.Empty }, + { "nv!ogl_32153249", string.Empty }, + { "nv!ogl_335bca", string.Empty }, + { "nv!ogl_342abb", string.Empty }, + { "nv!ogl_34dfe6", string.Empty }, + { "nv!ogl_34dfe7", string.Empty }, + { "nv!ogl_34dfe8", string.Empty }, + { "nv!ogl_34dfe9", string.Empty }, + { "nv!ogl_35201578", string.Empty }, + { "nv!ogl_359278", string.Empty }, + { "nv!ogl_37f53a", string.Empty }, + { "nv!ogl_38144972", string.Empty }, + { "nv!ogl_38542646", string.Empty }, + { "nv!ogl_3b74c9", string.Empty }, + { "nv!ogl_3c136f", string.Empty }, + { "nv!ogl_3cf72823", string.Empty }, + { "nv!ogl_3d7af029", string.Empty }, + { "nv!ogl_3ff34782", string.Empty }, + { "nv!ogl_4129618", string.Empty }, + { "nv!ogl_4189fac3", string.Empty }, + { "nv!ogl_420bd4", string.Empty }, + { "nv!ogl_42a699", string.Empty }, + { "nv!ogl_441369", string.Empty }, + { "nv!ogl_4458713e", string.Empty }, + { "nv!ogl_4554b6", string.Empty }, + { "nv!ogl_457425", string.Empty }, + { "nv!ogl_4603b207", string.Empty }, + { "nv!ogl_46574957", string.Empty }, + { "nv!ogl_46574958", string.Empty }, + { "nv!ogl_46813529", string.Empty }, + { "nv!ogl_46f1e13d", string.Empty }, + { "nv!ogl_47534c43", string.Empty }, + { "nv!ogl_48550336", string.Empty }, + { "nv!ogl_48576893", string.Empty }, + { "nv!ogl_48576894", string.Empty }, + { "nv!ogl_4889ac02", string.Empty }, + { "nv!ogl_49005740", string.Empty }, + { "nv!ogl_49867584", string.Empty }, + { "nv!ogl_49960973", string.Empty }, + { "nv!ogl_4a5341", string.Empty }, + { "nv!ogl_4f4e48", string.Empty }, + { "nv!ogl_4f8a0a", string.Empty }, + { "nv!ogl_50299698", string.Empty }, + { "nv!ogl_50299699", string.Empty }, + { "nv!ogl_50361291", string.Empty }, + { "nv!ogl_5242ae", string.Empty }, + { "nv!ogl_53d30c", string.Empty }, + { "nv!ogl_56347a", string.Empty }, + { "nv!ogl_563a95f1", string.Empty }, + { "nv!ogl_573823", string.Empty }, + { "nv!ogl_58027529", string.Empty }, + { "nv!ogl_5d2d63", string.Empty }, + { "nv!ogl_5f7e3b", string.Empty }, + { "nv!ogl_60461793", string.Empty }, + { "nv!ogl_60d355", string.Empty }, + { "nv!ogl_616627aa", string.Empty }, + { "nv!ogl_62317182", string.Empty }, + { "nv!ogl_6253fa2e", string.Empty }, + { "nv!ogl_64100768", string.Empty }, + { "nv!ogl_64100769", string.Empty }, + { "nv!ogl_64100770", string.Empty }, + { "nv!ogl_647395", string.Empty }, + { "nv!ogl_66543234", string.Empty }, + { "nv!ogl_67674763", string.Empty }, + { "nv!ogl_67739784", string.Empty }, + { "nv!ogl_68fb9c", string.Empty }, + { "nv!ogl_69801276", string.Empty }, + { "nv!ogl_6af9fa2f", string.Empty }, + { "nv!ogl_6af9fa3f", string.Empty }, + { "nv!ogl_6af9fa4f", string.Empty }, + { "nv!ogl_6bd8c7", string.Empty }, + { "nv!ogl_6c7691", string.Empty }, + { "nv!ogl_6d4296ce", string.Empty }, + { "nv!ogl_6dd7e7", string.Empty }, + { "nv!ogl_6dd7e8", string.Empty }, + { "nv!ogl_6fe11ec1", string.Empty }, + { "nv!ogl_716511763", string.Empty }, + { "nv!ogl_72504593", string.Empty }, + { "nv!ogl_73304097", string.Empty }, + { "nv!ogl_73314098", string.Empty }, + { "nv!ogl_74095213", string.Empty }, + { "nv!ogl_74095213a", string.Empty }, + { "nv!ogl_74095213b", string.Empty }, + { "nv!ogl_74095214", string.Empty }, + { "nv!ogl_748f9649", string.Empty }, + { "nv!ogl_75494732", string.Empty }, + { "nv!ogl_78452832", string.Empty }, + { "nv!ogl_784561", string.Empty }, + { "nv!ogl_78e16b9c", string.Empty }, + { "nv!ogl_79251225", string.Empty }, + { "nv!ogl_7c128b", string.Empty }, + { "nv!ogl_7ccd93", string.Empty }, + { "nv!ogl_7df8d1", string.Empty }, + { "nv!ogl_800c2310", string.Empty }, + { "nv!ogl_80546710", string.Empty }, + { "nv!ogl_80772310", string.Empty }, + { "nv!ogl_808ee280", string.Empty }, + { "nv!ogl_81131154", string.Empty }, + { "nv!ogl_81274457", string.Empty }, + { "nv!ogl_8292291f", string.Empty }, + { "nv!ogl_83498426", string.Empty }, + { "nv!ogl_84993794", string.Empty }, + { "nv!ogl_84995585", string.Empty }, + { "nv!ogl_84a0a0", string.Empty }, + { "nv!ogl_852142", string.Empty }, + { "nv!ogl_85612309", string.Empty }, + { "nv!ogl_85612310", string.Empty }, + { "nv!ogl_85612311", string.Empty }, + { "nv!ogl_85612312", string.Empty }, + { "nv!ogl_8623ff27", string.Empty }, + { "nv!ogl_87364952", string.Empty }, + { "nv!ogl_87f6275666", string.Empty }, + { "nv!ogl_886748", string.Empty }, + { "nv!ogl_89894423", string.Empty }, + { "nv!ogl_8ad8a75", string.Empty }, + { "nv!ogl_8ad8ad00", string.Empty }, + { "nv!ogl_8bb815", string.Empty }, + { "nv!ogl_8bb817", string.Empty }, + { "nv!ogl_8bb818", string.Empty }, + { "nv!ogl_8bb819", string.Empty }, + { "nv!ogl_8e640cd1", string.Empty }, + { "nv!ogl_8f34971a", string.Empty }, + { "nv!ogl_8f773984", string.Empty }, + { "nv!ogl_8f7a7d", string.Empty }, + { "nv!ogl_902486209", string.Empty }, + { "nv!ogl_90482571", string.Empty }, + { "nv!ogl_91214835", string.Empty }, + { "nv!ogl_912848290", string.Empty }, + { "nv!ogl_915e56", string.Empty }, + { "nv!ogl_92179063", string.Empty }, + { "nv!ogl_92179064", string.Empty }, + { "nv!ogl_92179065", string.Empty }, + { "nv!ogl_92179066", string.Empty }, + { "nv!ogl_92350358", string.Empty }, + { "nv!ogl_92809063", string.Empty }, + { "nv!ogl_92809064", string.Empty }, + { "nv!ogl_92809065", string.Empty }, + { "nv!ogl_92809066", string.Empty }, + { "nv!ogl_92920143", string.Empty }, + { "nv!ogl_93a89b12", string.Empty }, + { "nv!ogl_93a89c0b", string.Empty }, + { "nv!ogl_94812574", string.Empty }, + { "nv!ogl_95282304", string.Empty }, + { "nv!ogl_95394027", string.Empty }, + { "nv!ogl_959b1f", string.Empty }, + { "nv!ogl_9638af", string.Empty }, + { "nv!ogl_96fd59", string.Empty }, + { "nv!ogl_97f6275666", string.Empty }, + { "nv!ogl_97f6275667", string.Empty }, + { "nv!ogl_97f6275668", string.Empty }, + { "nv!ogl_97f6275669", string.Empty }, + { "nv!ogl_97f627566a", string.Empty }, + { "nv!ogl_97f627566b", string.Empty }, + { "nv!ogl_97f627566d", string.Empty }, + { "nv!ogl_97f627566e", string.Empty }, + { "nv!ogl_97f627566f", string.Empty }, + { "nv!ogl_97f6275670", string.Empty }, + { "nv!ogl_97f6275671", string.Empty }, + { "nv!ogl_97f727566e", string.Empty }, + { "nv!ogl_98480775", string.Empty }, + { "nv!ogl_98480776", string.Empty }, + { "nv!ogl_98480777", string.Empty }, + { "nv!ogl_992431", string.Empty }, + { "nv!ogl_9aa29065", string.Empty }, + { "nv!ogl_9af32c", string.Empty }, + { "nv!ogl_9af32d", string.Empty }, + { "nv!ogl_9af32e", string.Empty }, + { "nv!ogl_9c108b71", string.Empty }, + { "nv!ogl_9f279065", string.Empty }, + { "nv!ogl_a01bc728", string.Empty }, + { "nv!ogl_a13b46c80", string.Empty }, + { "nv!ogl_a22eb0", string.Empty }, + { "nv!ogl_a2fb451e", string.Empty }, + { "nv!ogl_a3456abe", string.Empty }, + { "nv!ogl_a7044887", string.Empty }, + { "nv!ogl_a7149200", string.Empty }, + { "nv!ogl_a766215670", string.Empty }, + { "nv!ogl_aalinegamma", string.Empty }, + { "nv!ogl_aalinetweaks", string.Empty }, + { "nv!ogl_ab34ee01", string.Empty }, + { "nv!ogl_ab34ee02", string.Empty }, + { "nv!ogl_ab34ee03", string.Empty }, + { "nv!ogl_ac0274", string.Empty }, + { "nv!ogl_af73c63e", string.Empty }, + { "nv!ogl_af73c63f", string.Empty }, + { "nv!ogl_af9927", string.Empty }, + { "nv!ogl_afoverride", string.Empty }, + { "nv!ogl_allocdeviceevents", string.Empty }, + { "nv!ogl_applicationkey", string.Empty }, + { "nv!ogl_appreturnonlybasicglsltype", string.Empty }, + { "nv!ogl_app_softimage", string.Empty }, + { "nv!ogl_app_supportbits2", string.Empty }, + { "nv!ogl_assumetextureismipmappedatcreation", string.Empty }, + { "nv!ogl_b1fb0f01", string.Empty }, + { "nv!ogl_b3edd5", string.Empty }, + { "nv!ogl_b40d9e03d", string.Empty }, + { "nv!ogl_b7f6275666", string.Empty }, + { "nv!ogl_b812c1", string.Empty }, + { "nv!ogl_ba14ba1a", string.Empty }, + { "nv!ogl_ba14ba1b", string.Empty }, + { "nv!ogl_bd7559", string.Empty }, + { "nv!ogl_bd755a", string.Empty }, + { "nv!ogl_bd755c", string.Empty }, + { "nv!ogl_bd755d", string.Empty }, + { "nv!ogl_be58bb", string.Empty }, + { "nv!ogl_be92cb", string.Empty }, + { "nv!ogl_beefcba3", string.Empty }, + { "nv!ogl_beefcba4", string.Empty }, + { "nv!ogl_c023777f", string.Empty }, + { "nv!ogl_c09dc8", string.Empty }, + { "nv!ogl_c0d340", string.Empty }, + { "nv!ogl_c2ff374c", string.Empty }, + { "nv!ogl_c5e9d7a3", string.Empty }, + { "nv!ogl_c5e9d7a4", string.Empty }, + { "nv!ogl_c5e9d7b4", string.Empty }, + { "nv!ogl_c618f9", string.Empty }, + { "nv!ogl_ca345840", string.Empty }, + { "nv!ogl_cachedisable", string.Empty }, + { "nv!ogl_channelpriorityoverride", string.Empty }, + { "nv!ogl_cleardatastorevidmem", string.Empty }, + { "nv!ogl_cmdbufmemoryspaceenables", string.Empty }, + { "nv!ogl_cmdbufminwords", string.Empty }, + { "nv!ogl_cmdbufsizewords", string.Empty }, + { "nv!ogl_conformantblitframebufferscissor", string.Empty }, + { "nv!ogl_conformantincompletetextures", string.Empty }, + { "nv!ogl_copybuffermethod", string.Empty }, + { "nv!ogl_cubemapaniso", string.Empty }, + { "nv!ogl_cubemapfiltering", string.Empty }, + { "nv!ogl_d0e9a4d7", string.Empty }, + { "nv!ogl_d13733f12", string.Empty }, + { "nv!ogl_d1b399", string.Empty }, + { "nv!ogl_d2983c32", string.Empty }, + { "nv!ogl_d2983c33", string.Empty }, + { "nv!ogl_d2e71b", string.Empty }, + { "nv!ogl_d377dc", string.Empty }, + { "nv!ogl_d377dd", string.Empty }, + { "nv!ogl_d489f4", string.Empty }, + { "nv!ogl_d4bce1", string.Empty }, + { "nv!ogl_d518cb", string.Empty }, + { "nv!ogl_d518cd", string.Empty }, + { "nv!ogl_d518ce", string.Empty }, + { "nv!ogl_d518d0", string.Empty }, + { "nv!ogl_d518d1", string.Empty }, + { "nv!ogl_d518d2", string.Empty }, + { "nv!ogl_d518d3", string.Empty }, + { "nv!ogl_d518d4", string.Empty }, + { "nv!ogl_d518d5", string.Empty }, + { "nv!ogl_d59eda", string.Empty }, + { "nv!ogl_d83cbd", string.Empty }, + { "nv!ogl_d8e777", string.Empty }, + { "nv!ogl_debug_level", string.Empty }, + { "nv!ogl_debug_mask", string.Empty }, + { "nv!ogl_debug_options", string.Empty }, + { "nv!ogl_devshmpageableallocations", string.Empty }, + { "nv!ogl_df1f9812", string.Empty }, + { "nv!ogl_df783c", string.Empty }, + { "nv!ogl_diagenable", string.Empty }, + { "nv!ogl_disallowcemask", string.Empty }, + { "nv!ogl_disallowz16", string.Empty }, + { "nv!ogl_dlmemoryspaceenables", string.Empty }, + { "nv!ogl_e0bfec", string.Empty }, + { "nv!ogl_e433456d", string.Empty }, + { "nv!ogl_e435563f", string.Empty }, + { "nv!ogl_e4cd9c", string.Empty }, + { "nv!ogl_e5c972", string.Empty }, + { "nv!ogl_e639ef", string.Empty }, + { "nv!ogl_e802af", string.Empty }, + { "nv!ogl_eae964", string.Empty }, + { "nv!ogl_earlytexturehwallocation", string.Empty }, + { "nv!ogl_eb92a3", string.Empty }, + { "nv!ogl_ebca56", string.Empty }, + { "nv!ogl_expert_detail_level", string.Empty }, + { "nv!ogl_expert_output_mask", string.Empty }, + { "nv!ogl_expert_report_mask", string.Empty }, + { "nv!ogl_extensionstringnvarch", string.Empty }, + { "nv!ogl_extensionstringversion", string.Empty }, + { "nv!ogl_f00f1938", string.Empty }, + { "nv!ogl_f10736", string.Empty }, + { "nv!ogl_f1846870", string.Empty }, + { "nv!ogl_f33bc370", string.Empty }, + { "nv!ogl_f392a874", string.Empty }, + { "nv!ogl_f49ae8", string.Empty }, + { "nv!ogl_fa345cce", string.Empty }, + { "nv!ogl_fa35cc4", string.Empty }, + { "nv!ogl_faa14a", string.Empty }, + { "nv!ogl_faf8a723", string.Empty }, + { "nv!ogl_fastgs", string.Empty }, + { "nv!ogl_fbf4ac45", string.Empty }, + { "nv!ogl_fbo_blit_ignore_srgb", string.Empty }, + { "nv!ogl_fc64c7", string.Empty }, + { "nv!ogl_ff54ec97", string.Empty }, + { "nv!ogl_ff54ec98", string.Empty }, + { "nv!ogl_forceexitprocessdetach", string.Empty }, + { "nv!ogl_forcerequestedesversion", string.Empty }, + { "nv!ogl_glsynctovblank", string.Empty }, + { "nv!ogl_gvitimeoutcontrol", string.Empty }, + { "nv!ogl_hcctrl", string.Empty }, + { "nv!ogl_hwstate_per_ctx", string.Empty }, + { "nv!ogl_machinecachelimit", string.Empty }, + { "nv!ogl_maxframesallowed", string.Empty }, + { "nv!ogl_memmgrcachedalloclimit", string.Empty }, + { "nv!ogl_memmgrcachedalloclimitratio", string.Empty }, + { "nv!ogl_memmgrsysheapalloclimit", string.Empty }, + { "nv!ogl_memmgrsysheapalloclimitratio", string.Empty }, + { "nv!ogl_memmgrvidheapalloclimit", string.Empty }, + { "nv!ogl_mosaic_clip_to_subdev", string.Empty }, + { "nv!ogl_mosaic_clip_to_subdev_h_overlap", string.Empty }, + { "nv!ogl_mosaic_clip_to_subdev_v_overlap", string.Empty }, + { "nv!ogl_overlaymergeblittimerms", string.Empty }, + { "nv!ogl_perfmon_mode", string.Empty }, + { "nv!ogl_pixbar_mode", string.Empty }, + { "nv!ogl_qualityenhancements", string.Empty }, + { "nv!ogl_r27s18q28", string.Empty }, + { "nv!ogl_r2d7c1d8", string.Empty }, + { "nv!ogl_renderer", string.Empty }, + { "nv!ogl_renderqualityflags", string.Empty }, + { "nv!ogl_s3tcquality", string.Empty }, + { "nv!ogl_shaderatomics", string.Empty }, + { "nv!ogl_shadercacheinitsize", string.Empty }, + { "nv!ogl_shader_disk_cache_path", string.Empty }, + { "nv!ogl_shader_disk_cache_read_only", string.Empty }, + { "nv!ogl_shaderobjects", string.Empty }, + { "nv!ogl_shaderportabilitywarnings", string.Empty }, + { "nv!ogl_shaderwarningsaserrors", string.Empty }, + { "nv!ogl_skiptexturehostcopies", string.Empty }, + { "nv!ogl_sli_dli_control", string.Empty }, + { "nv!ogl_sparsetexture", string.Empty }, + { "nv!ogl_spinlooptimeout", string.Empty }, + { "nv!ogl_sync_to_vblank", string.Empty }, + { "nv!ogl_sysheapreuseratio", string.Empty }, + { "nv!ogl_sysmemtexturepromotion", string.Empty }, + { "nv!ogl_targetflushcount", string.Empty }, + { "nv!ogl_tearingfreeswappresent", string.Empty }, + { "nv!ogl_texclampbehavior", string.Empty }, + { "nv!ogl_texlodbias", string.Empty }, + { "nv!ogl_texmemoryspaceenables", string.Empty }, + { "nv!ogl_textureprecache", string.Empty }, + { "nv!ogl_threadcontrol", string.Empty }, + { "nv!ogl_threadcontrol2", string.Empty }, + { "nv!ogl_usegvievents", string.Empty }, + { "nv!ogl_vbomemoryspaceenables", string.Empty }, + { "nv!ogl_vertexlimit", string.Empty }, + { "nv!ogl_vidheapreuseratio", string.Empty }, + { "nv!ogl_vpipe", string.Empty }, + { "nv!ogl_vpipeformatbloatlimit", string.Empty }, + { "nv!ogl_wglmessageboxonabort", string.Empty }, + { "nv!ogl_writeinfolog", string.Empty }, + { "nv!ogl_writeprogramobjectassembly", string.Empty }, + { "nv!ogl_writeprogramobjectsource", string.Empty }, + { "nv!ogl_xnvadapterpresent", string.Empty }, + { "nv!ogl_yield", string.Empty }, + { "nv!ogl_yieldfunction", string.Empty }, + { "nv!ogl_yieldfunctionfast", string.Empty }, + { "nv!ogl_yieldfunctionslow", string.Empty }, + { "nv!ogl_yieldfunctionwaitfordcqueue", string.Empty }, + { "nv!ogl_yieldfunctionwaitforframe", string.Empty }, + { "nv!ogl_yieldfunctionwaitforgpu", string.Empty }, + { "nv!ogl_zbctableaddhysteresis", string.Empty }, + { "nv!overlaymergeblittimerms", string.Empty }, + { "nv!perfmon_mode", string.Empty }, + { "nv!persist.sys.display.resolution", string.Empty }, + { "nv!persist.tegra.composite.fallb", string.Empty }, + { "nv!persist.tegra.composite.policy", string.Empty }, + { "nv!persist.tegra.composite.range", string.Empty }, + { "nv!persist.tegra.compositor", string.Empty }, + { "nv!persist.tegra.compositor.virt", string.Empty }, + { "nv!persist.tegra.compression", string.Empty }, + { "nv!persist.tegra.cursor.enable", string.Empty }, + { "nv!persist.tegra.didim.enable", string.Empty }, + { "nv!persist.tegra.didim.normal", string.Empty }, + { "nv!persist.tegra.didim.video", string.Empty }, + { "nv!persist.tegra.disp.heads", string.Empty }, + { "nv!persist.tegra.gamma_correction", string.Empty }, + { "nv!persist.tegra.gpu_mapping_cache", string.Empty }, + { "nv!persist.tegra.grlayout", string.Empty }, + { "nv!persist.tegra.hdmi.2020.10", string.Empty }, + { "nv!persist.tegra.hdmi.2020.fake", string.Empty }, + { "nv!persist.tegra.hdmi.2020.force", string.Empty }, + { "nv!persist.tegra.hdmi.autorotate", string.Empty }, + { "nv!persist.tegra.hdmi.hdr.fake", string.Empty }, + { "nv!persist.tegra.hdmi.ignore_ratio", string.Empty }, + { "nv!persist.tegra.hdmi.limit.clock", string.Empty }, + { "nv!persist.tegra.hdmi.only_16_9", string.Empty }, + { "nv!persist.tegra.hdmi.range", string.Empty }, + { "nv!persist.tegra.hdmi.resolution", string.Empty }, + { "nv!persist.tegra.hdmi.underscan", string.Empty }, + { "nv!persist.tegra.hdmi.yuv.422", string.Empty }, + { "nv!persist.tegra.hdmi.yuv.444", string.Empty }, + { "nv!persist.tegra.hdmi.yuv.enable", string.Empty }, + { "nv!persist.tegra.hdmi.yuv.force", string.Empty }, + { "nv!persist.tegra.hwc.nvdc", string.Empty }, + { "nv!persist.tegra.idle.minimum_fps", string.Empty }, + { "nv!persist.tegra.panel.rotation", string.Empty }, + { "nv!persist.tegra.scan_props", string.Empty }, + { "nv!persist.tegra.stb.mode", string.Empty }, + { "nv!persist.tegra.zbc_override", string.Empty }, + { "nv!pixbar_mode", string.Empty }, + { "nv!qualityenhancements", string.Empty }, + { "nv!r27s18q28", string.Empty }, + { "nv!r2d7c1d8", string.Empty }, + { "nv!renderer", string.Empty }, + { "nv!renderqualityflags", string.Empty }, + { "nv!rmos_debug_mask", string.Empty }, + { "nv!rmos_set_production_mode", string.Empty }, + { "nv!s3tcquality", string.Empty }, + { "nv!shaderatomics", string.Empty }, + { "nv!shadercacheinitsize", string.Empty }, + { "nv!shader_disk_cache_path", string.Empty }, + { "nv!shader_disk_cache_read_only", string.Empty }, + { "nv!shaderobjects", string.Empty }, + { "nv!shaderportabilitywarnings", string.Empty }, + { "nv!shaderwarningsaserrors", string.Empty }, + { "nv!skiptexturehostcopies", string.Empty }, + { "nv!sli_dli_control", string.Empty }, + { "nv!sparsetexture", string.Empty }, + { "nv!spinlooptimeout", string.Empty }, + { "nv!sync_to_vblank", string.Empty }, + { "nv!sysheapreuseratio", string.Empty }, + { "nv!sysmemtexturepromotion", string.Empty }, + { "nv!targetflushcount", string.Empty }, + { "nv!tearingfreeswappresent", string.Empty }, + { "nv!tegra.refresh", string.Empty }, + { "nv!texclampbehavior", string.Empty }, + { "nv!texlodbias", string.Empty }, + { "nv!texmemoryspaceenables", string.Empty }, + { "nv!textureprecache", string.Empty }, + { "nv!threadcontrol", string.Empty }, + { "nv!threadcontrol2", string.Empty }, + { "nv!tvmr.avp.logs", string.Empty }, + { "nv!tvmr.buffer.logs", string.Empty }, + { "nv!tvmr.dec.prof", string.Empty }, + { "nv!tvmr.deint.logs", string.Empty }, + { "nv!tvmr.dfs.logs", string.Empty }, + { "nv!tvmr.ffprof.logs", string.Empty }, + { "nv!tvmr.game.stream", string.Empty }, + { "nv!tvmr.general.logs", string.Empty }, + { "nv!tvmr.input.dump", string.Empty }, + { "nv!tvmr.seeking.logs", string.Empty }, + { "nv!tvmr.ts_pulldown", string.Empty }, + { "nv!usegvievents", string.Empty }, + { "nv!vbomemoryspaceenables", string.Empty }, + { "nv!vcc_debug_ip", string.Empty }, + { "nv!vcc_verbose_level", string.Empty }, + { "nv!vertexlimit", string.Empty }, + { "nv!viccomposer.filter", string.Empty }, + { "nv!videostats-enable", string.Empty }, + { "nv!vidheapreuseratio", string.Empty }, + { "nv!vpipe", string.Empty }, + { "nv!vpipeformatbloatlimit", string.Empty }, + { "nv!wglmessageboxonabort", string.Empty }, + { "nv!writeinfolog", string.Empty }, + { "nv!writeprogramobjectassembly", string.Empty }, + { "nv!writeprogramobjectsource", string.Empty }, + { "nv!xnvadapterpresent", string.Empty }, + { "nv!yield", string.Empty }, + { "nv!yieldfunction", string.Empty }, + { "nv!yieldfunctionfast", string.Empty }, + { "nv!yieldfunctionslow", string.Empty }, + { "nv!yieldfunctionwaitfordcqueue", string.Empty }, + { "nv!yieldfunctionwaitforframe", string.Empty }, + { "nv!yieldfunctionwaitforgpu", string.Empty }, + { "nv!zbctableaddhysteresis", string.Empty }, { "pcm!enable", true }, { "pctl!intermittent_task_interval_seconds", 21600 }, { "prepo!devmenu_prepo_page_view", false }, @@ -1611,7 +1611,7 @@ namespace Ryujinx.HLE.HOS.Services.Settings { "systempowerstate!always_reboot", false }, { "systempowerstate!power_state_message_emulation_trigger_time", 0 }, { "systempowerstate!power_state_message_to_emulate", 0 }, - { "target_manager!device_name", "" }, + { "target_manager!device_name", string.Empty }, { "vulnerability!needs_update_vulnerability_policy", 0 }, { "apm!performance_mode_policy", "auto" }, { "apm!sdev_throttling_enabled", true }, diff --git a/src/Ryujinx.HLE/HOS/Services/Sockets/Nsd/Manager/FqdnResolver.cs b/src/Ryujinx.HLE/HOS/Services/Sockets/Nsd/Manager/FqdnResolver.cs index 2ec0f744e..3ff48b883 100644 --- a/src/Ryujinx.HLE/HOS/Services/Sockets/Nsd/Manager/FqdnResolver.cs +++ b/src/Ryujinx.HLE/HOS/Services/Sockets/Nsd/Manager/FqdnResolver.cs @@ -36,7 +36,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Nsd.Manager // TODO: Load Environment from the savedata. address = address.Replace("%", IManager.NsdSettings.Environment); - resolvedAddress = ""; + resolvedAddress = string.Empty; if (IManager.NsdSettings == null) { diff --git a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs index 1df280dce..25c89baec 100644 --- a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs +++ b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs @@ -63,7 +63,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger if (size < 0) { - return ""; + return string.Empty; } ReadOnlySpan data = ReadInPlace((size + 1) * 2); diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs index a2b1fb524..edb441a0a 100644 --- a/src/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs @@ -166,7 +166,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService private ResultCode OpenDisplayImpl(ServiceCtx context, string name) { - if (name == "") + if (name == string.Empty) { return ResultCode.InvalidValue; } diff --git a/src/Ryujinx.HLE/Loaders/Executables/NsoExecutable.cs b/src/Ryujinx.HLE/Loaders/Executables/NsoExecutable.cs index 83ad5d7e8..1caedb51e 100644 --- a/src/Ryujinx.HLE/Loaders/Executables/NsoExecutable.cs +++ b/src/Ryujinx.HLE/Loaders/Executables/NsoExecutable.cs @@ -102,7 +102,7 @@ namespace Ryujinx.HLE.Loaders.Executables Match fsSdkMatch = FsSdkRegex().Match(rawTextBuffer); if (fsSdkMatch.Success) { - stringBuilder.AppendLine($" FS SDK Version: {fsSdkMatch.Value.Replace("sdk_version: ", "")}"); + stringBuilder.AppendLine($" FS SDK Version: {fsSdkMatch.Value.Replace("sdk_version: ", string.Empty)}"); } MatchCollection sdkMwMatches = SdkMwRegex().Matches(rawTextBuffer); diff --git a/src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs b/src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs index 3904d660e..cd215781f 100644 --- a/src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs +++ b/src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs @@ -89,7 +89,7 @@ namespace Ryujinx.HLE.Loaders.Processes.Extensions Logger.Warning?.Print(LogClass.Ptc, "Detected unsupported ExeFs modifications. PTC disabled."); } - string programName = ""; + string programName = string.Empty; if (!isHomebrew && programId > 0x010000000000FFFF) { diff --git a/src/Ryujinx.HLE/Loaders/Processes/Extensions/LocalFileSystemExtensions.cs b/src/Ryujinx.HLE/Loaders/Processes/Extensions/LocalFileSystemExtensions.cs index 6c2a19894..e3ae9bf5f 100644 --- a/src/Ryujinx.HLE/Loaders/Processes/Extensions/LocalFileSystemExtensions.cs +++ b/src/Ryujinx.HLE/Loaders/Processes/Extensions/LocalFileSystemExtensions.cs @@ -15,7 +15,7 @@ namespace Ryujinx.HLE.Loaders.Processes var nacpData = new BlitStruct(1); ulong programId = metaLoader.GetProgramId(); - device.Configuration.VirtualFileSystem.ModLoader.CollectMods(new[] { programId }); + device.Configuration.VirtualFileSystem.ModLoader.CollectMods([programId]); if (programId != 0) { diff --git a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs index 12d9c8bd9..a0e7e0fa1 100644 --- a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs +++ b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs @@ -145,7 +145,7 @@ namespace Ryujinx.HLE.Loaders.Processes IFileSystem dummyExeFs = null; Stream romfsStream = null; - string programName = ""; + string programName = string.Empty; ulong programId = 0000000000000000; // Load executable. diff --git a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs index cf4eb416e..33aee1c4c 100644 --- a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs +++ b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs @@ -255,7 +255,7 @@ namespace Ryujinx.HLE.Loaders.Processes { NsoExecutable nso => Convert.ToHexString(nso.BuildId.ItemsRo.ToArray()), NroExecutable nro => Convert.ToHexString(nro.Header.BuildId), - _ => "", + _ => string.Empty }).ToUpper()); ulong[] nsoBase = new ulong[executables.Length]; diff --git a/src/Ryujinx.Headless.SDL2/WindowBase.cs b/src/Ryujinx.Headless.SDL2/WindowBase.cs index 4addf62b5..bd47dfd5d 100644 --- a/src/Ryujinx.Headless.SDL2/WindowBase.cs +++ b/src/Ryujinx.Headless.SDL2/WindowBase.cs @@ -1,3 +1,4 @@ +using Humanizer; using Ryujinx.Common.Configuration; using Ryujinx.Common.Configuration.Hid; using Ryujinx.Common.Logging; @@ -485,10 +486,10 @@ namespace Ryujinx.Headless.SDL2 { string playerCount = args.PlayerCountMin == args.PlayerCountMax ? $"exactly {args.PlayerCountMin}" : $"{args.PlayerCountMin}-{args.PlayerCountMax}"; - string message = $"Application requests {playerCount} player(s) with:\n\n" + string message = $"Application requests {playerCount} {"player".ToQuantity(args.PlayerCountMin + args.PlayerCountMax, ShowQuantityAs.None)} with:\n\n" + $"TYPES: {args.SupportedStyles}\n\n" + $"PLAYERS: {string.Join(", ", args.SupportedPlayers)}\n\n" - + (args.IsDocked ? "Docked mode set. Handheld is also invalid.\n\n" : "") + + (args.IsDocked ? "Docked mode set. Handheld is also invalid.\n\n" : string.Empty) + "Please reconfigure Input now and then press OK."; return DisplayMessageDialog("Controller Applet", message); diff --git a/src/Ryujinx.Horizon.Common/ResultNames.cs b/src/Ryujinx.Horizon.Common/ResultNames.cs index 55a33d680..25d04b308 100644 --- a/src/Ryujinx.Horizon.Common/ResultNames.cs +++ b/src/Ryujinx.Horizon.Common/ResultNames.cs @@ -1235,14 +1235,14 @@ namespace Ryujinx.Horizon.Common { 0x412, "NotFound" }, { 0x612, "NotEnoughBuffer" }, { 0xCA12, "Cancelled" }, - { 0x7FE12, "" }, - { 0xFA212, "" }, + { 0x7FE12, string.Empty }, + { 0xFA212, string.Empty }, { 0xFA612, "InvalidTaskId" }, { 0xFB612, "InvalidSize" }, { 0xFCA12, "TaskCancelled" }, { 0xFCC12, "TaskNotCompleted" }, { 0xFCE12, "TaskQueueNotAvailable" }, - { 0x106A12, "" }, + { 0x106A12, string.Empty }, { 0x106C12, "OutOfRpcTask" }, { 0x109612, "InvalidCategory" }, { 0x214, "OutOfKeyResource" }, diff --git a/src/Ryujinx.Horizon/Sdk/Ngc/Detail/AhoCorasick.cs b/src/Ryujinx.Horizon/Sdk/Ngc/Detail/AhoCorasick.cs index 6acb9be97..03f61c218 100644 --- a/src/Ryujinx.Horizon/Sdk/Ngc/Detail/AhoCorasick.cs +++ b/src/Ryujinx.Horizon/Sdk/Ngc/Detail/AhoCorasick.cs @@ -221,7 +221,7 @@ namespace Ryujinx.Horizon.Sdk.Ngc.Detail if (includeMultiWord) { int lastMultiWordIndex = 0; - string multiWord = ""; + string multiWord = string.Empty; while (_multiWordMap.Has(nodePlainIndex)) { diff --git a/src/Ryujinx.UI.Common/App/ApplicationData.cs b/src/Ryujinx.UI.Common/App/ApplicationData.cs index 63ecb706d..7aa0dccaa 100644 --- a/src/Ryujinx.UI.Common/App/ApplicationData.cs +++ b/src/Ryujinx.UI.Common/App/ApplicationData.cs @@ -164,7 +164,7 @@ namespace Ryujinx.UI.App.Common NsoReader reader = new(); reader.Initialize(nsoFile.Release().AsStorage().AsFile(OpenMode.Read)).ThrowIfFailure(); - return BitConverter.ToString(reader.Header.ModuleId.ItemsRo.ToArray()).Replace("-", "").ToUpper()[..16]; + return BitConverter.ToString(reader.Header.ModuleId.ItemsRo.ToArray()).Replace("-", string.Empty).ToUpper()[..16]; } } } diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs index 011cc1c98..c2dd6a710 100644 --- a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs +++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs @@ -298,16 +298,6 @@ namespace Ryujinx.UI.Common.Configuration /// public string LanguageCode { get; set; } - /// - /// Enable or disable custom themes in the GUI - /// - public bool EnableCustomTheme { get; set; } - - /// - /// Path to custom GUI theme - /// - public string CustomThemePath { get; set; } - /// /// Chooses the base style // Not Used /// diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs index 63c3e8479..6b3c8db3b 100644 --- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs +++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs @@ -146,16 +146,6 @@ namespace Ryujinx.UI.Common.Configuration /// public ReactiveObject LanguageCode { get; private set; } - /// - /// Enable or disable custom themes in the GUI - /// - public ReactiveObject EnableCustomTheme { get; private set; } - - /// - /// Path to custom GUI theme - /// - public ReactiveObject CustomThemePath { get; private set; } - /// /// Selects the base style /// @@ -204,8 +194,6 @@ namespace Ryujinx.UI.Common.Configuration AutoloadDirs = new ReactiveObject>(); ShownFileTypes = new ShownFileTypeSettings(); WindowStartup = new WindowStartupSettings(); - EnableCustomTheme = new ReactiveObject(); - CustomThemePath = new ReactiveObject(); BaseStyle = new ReactiveObject(); StartFullscreen = new ReactiveObject(); GameListViewMode = new ReactiveObject(); @@ -793,8 +781,6 @@ namespace Ryujinx.UI.Common.Configuration WindowMaximized = UI.WindowStartup.WindowMaximized, }, LanguageCode = UI.LanguageCode, - EnableCustomTheme = UI.EnableCustomTheme, - CustomThemePath = UI.CustomThemePath, BaseStyle = UI.BaseStyle, GameListViewMode = UI.GameListViewMode, ShowNames = UI.ShowNames, @@ -829,8 +815,8 @@ namespace Ryujinx.UI.Common.Configuration Graphics.MaxAnisotropy.Value = -1.0f; Graphics.AspectRatio.Value = AspectRatio.Fixed16x9; Graphics.GraphicsBackend.Value = DefaultGraphicsBackend(); - Graphics.PreferredGpu.Value = ""; - Graphics.ShadersDumpPath.Value = ""; + Graphics.PreferredGpu.Value = string.Empty; + Graphics.ShadersDumpPath.Value = string.Empty; Logger.EnableDebug.Value = false; Logger.EnableStub.Value = true; Logger.EnableInfo.Value = true; @@ -839,7 +825,7 @@ namespace Ryujinx.UI.Common.Configuration Logger.EnableTrace.Value = false; Logger.EnableGuest.Value = true; Logger.EnableFsAccessLog.Value = false; - Logger.FilteredClasses.Value = Array.Empty(); + Logger.FilteredClasses.Value = []; Logger.GraphicsDebugLevel.Value = GraphicsDebugLevel.None; System.Language.Value = Language.AmericanEnglish; System.Region.Value = Region.USA; @@ -888,17 +874,15 @@ namespace Ryujinx.UI.Common.Configuration UI.GuiColumns.PathColumn.Value = true; UI.ColumnSort.SortColumnId.Value = 0; UI.ColumnSort.SortAscending.Value = false; - UI.GameDirs.Value = new List(); - UI.AutoloadDirs.Value = new List(); + UI.GameDirs.Value = []; + UI.AutoloadDirs.Value = []; UI.ShownFileTypes.NSP.Value = true; UI.ShownFileTypes.PFS0.Value = true; UI.ShownFileTypes.XCI.Value = true; UI.ShownFileTypes.NCA.Value = true; UI.ShownFileTypes.NRO.Value = true; UI.ShownFileTypes.NSO.Value = true; - UI.EnableCustomTheme.Value = true; UI.LanguageCode.Value = "en_US"; - UI.CustomThemePath.Value = ""; UI.BaseStyle.Value = "Dark"; UI.GameListViewMode.Value = 0; UI.ShowNames.Value = true; @@ -1649,9 +1633,7 @@ namespace Ryujinx.UI.Common.Configuration UI.ShownFileTypes.NCA.Value = configurationFileFormat.ShownFileTypes.NCA; UI.ShownFileTypes.NRO.Value = configurationFileFormat.ShownFileTypes.NRO; UI.ShownFileTypes.NSO.Value = configurationFileFormat.ShownFileTypes.NSO; - UI.EnableCustomTheme.Value = configurationFileFormat.EnableCustomTheme; UI.LanguageCode.Value = configurationFileFormat.LanguageCode; - UI.CustomThemePath.Value = configurationFileFormat.CustomThemePath; UI.BaseStyle.Value = configurationFileFormat.BaseStyle; UI.GameListViewMode.Value = configurationFileFormat.GameListViewMode; UI.ShowNames.Value = configurationFileFormat.ShowNames; diff --git a/src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs b/src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs index b7631f48a..93b2d6138 100644 --- a/src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs +++ b/src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs @@ -35,7 +35,7 @@ namespace Ryujinx.UI.Common.Helper if ((uninstall && AreMimeTypesRegisteredLinux()) || (!uninstall && !AreMimeTypesRegisteredLinux())) { string mimeTypesFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "mime", "Ryujinx.xml"); - string additionalArgs = !uninstall ? "--novendor" : ""; + string additionalArgs = !uninstall ? "--novendor" : string.Empty; using Process mimeProcess = new(); @@ -83,7 +83,7 @@ namespace Ryujinx.UI.Common.Helper var openCmd = key.OpenSubKey(@"shell\open\command"); - string keyValue = (string)openCmd.GetValue(""); + string keyValue = (string)openCmd.GetValue(string.Empty); return keyValue is not null && (keyValue.Contains("Ryujinx") || keyValue.Contains(AppDomain.CurrentDomain.FriendlyName)); } diff --git a/src/Ryujinx.UI.Common/Helper/SetupValidator.cs b/src/Ryujinx.UI.Common/Helper/SetupValidator.cs index 908476e48..45d9f8f0d 100644 --- a/src/Ryujinx.UI.Common/Helper/SetupValidator.cs +++ b/src/Ryujinx.UI.Common/Helper/SetupValidator.cs @@ -12,18 +12,11 @@ namespace Ryujinx.UI.Common.Helper { public static bool IsFirmwareValid(ContentManager contentManager, out UserError error) { - bool hasFirmware = contentManager.GetCurrentFirmwareVersion() != null; + error = contentManager.GetCurrentFirmwareVersion() != null + ? UserError.Success + : UserError.NoFirmware; - if (hasFirmware) - { - error = UserError.Success; - - return true; - } - - error = UserError.NoFirmware; - - return false; + return error is UserError.Success; } public static bool CanFixStartApplication(ContentManager contentManager, string baseApplicationPath, UserError error, out SystemVersion firmwareVersion) @@ -95,14 +88,18 @@ namespace Ryujinx.UI.Common.Helper string baseApplicationExtension = Path.GetExtension(baseApplicationPath).ToLowerInvariant(); // NOTE: We don't force homebrew developers to install a system firmware. - if (baseApplicationExtension is not (".nro" or ".nso")) - return IsFirmwareValid(contentManager, out error); - + if (baseApplicationExtension is ".nro" or ".nso") + { + error = UserError.Success; + return true; + } + + return IsFirmwareValid(contentManager, out error); } error = UserError.ApplicationNotFound; - return error is UserError.Success; + return false; } } } diff --git a/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs b/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs index d9bc7b6fe..18fbabd6d 100644 --- a/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs +++ b/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs @@ -53,7 +53,7 @@ namespace Ryujinx.UI.Common.Helper { var titleUpdateWindowData = new TitleUpdateMetadata { - Selected = "", + Selected = string.Empty, Paths = [], }; diff --git a/src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj b/src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj index 142cd44a5..df6532a63 100644 --- a/src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj +++ b/src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj @@ -51,7 +51,6 @@ - diff --git a/src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs b/src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs index bb4918d55..729a166b6 100644 --- a/src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs +++ b/src/Ryujinx.UI.LocaleGenerator/LocaleGenerator.cs @@ -15,7 +15,7 @@ namespace Ryujinx.UI.LocaleGenerator context.RegisterSourceOutput(contents, (spc, content) => { - var lines = content.Split('\n').Where(x => x.Trim().StartsWith("\"")).Select(x => x.Split(':')[0].Trim().Replace("\"", "")); + var lines = content.Split('\n').Where(x => x.Trim().StartsWith("\"")).Select(x => x.Split(':')[0].Trim().Replace("\"", string.Empty)); StringBuilder enumSourceBuilder = new(); enumSourceBuilder.AppendLine("namespace Ryujinx.Ava.Common.Locale;"); enumSourceBuilder.AppendLine("internal enum LocaleKeys"); diff --git a/src/Ryujinx/App.axaml.cs b/src/Ryujinx/App.axaml.cs index 645876ebe..509deb34c 100644 --- a/src/Ryujinx/App.axaml.cs +++ b/src/Ryujinx/App.axaml.cs @@ -58,11 +58,9 @@ namespace Ryujinx.Ava if (Program.PreviewerDetached) { - ApplyConfiguredTheme(); + ApplyConfiguredTheme(ConfigurationState.Instance.UI.BaseStyle); ConfigurationState.Instance.UI.BaseStyle.Event += ThemeChanged_Event; - ConfigurationState.Instance.UI.CustomThemePath.Event += ThemeChanged_Event; - ConfigurationState.Instance.UI.EnableCustomTheme.Event += CustomThemeChanged_Event; } } @@ -89,16 +87,12 @@ namespace Ryujinx.Ava }); } - private void CustomThemeChanged_Event(object _, ReactiveEventArgs __) => ApplyConfiguredTheme(); + private void ThemeChanged_Event(object _, ReactiveEventArgs rArgs) => ApplyConfiguredTheme(rArgs.NewValue); - private void ThemeChanged_Event(object _, ReactiveEventArgs __) => ApplyConfiguredTheme(); - - public void ApplyConfiguredTheme() + public void ApplyConfiguredTheme(string baseStyle) { try { - string baseStyle = ConfigurationState.Instance.UI.BaseStyle; - if (string.IsNullOrWhiteSpace(baseStyle)) { ConfigurationState.Instance.UI.BaseStyle.Value = "Auto"; diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs index f7f8fe4f9..a6abe84d8 100644 --- a/src/Ryujinx/AppHost.cs +++ b/src/Ryujinx/AppHost.cs @@ -616,61 +616,59 @@ namespace Ryujinx.Ava SystemVersion firmwareVersion = ContentManager.GetCurrentFirmwareVersion(); - if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime) { if (!SetupValidator.CanStartApplication(ContentManager, ApplicationPath, out UserError userError)) - { + { + if (SetupValidator.CanFixStartApplication(ContentManager, ApplicationPath, userError, out firmwareVersion)) { - if (SetupValidator.CanFixStartApplication(ContentManager, ApplicationPath, userError, out firmwareVersion)) + if (userError is UserError.NoFirmware) { - if (userError == UserError.NoFirmware) - { - UserResult result = await ContentDialogHelper.CreateConfirmationDialog( - LocaleManager.Instance[LocaleKeys.DialogFirmwareNoFirmwareInstalledMessage], - LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogFirmwareInstallEmbeddedMessage, firmwareVersion.VersionString), - LocaleManager.Instance[LocaleKeys.InputDialogYes], - LocaleManager.Instance[LocaleKeys.InputDialogNo], - ""); + UserResult result = await ContentDialogHelper.CreateConfirmationDialog( + LocaleManager.Instance[LocaleKeys.DialogFirmwareNoFirmwareInstalledMessage], + LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogFirmwareInstallEmbeddedMessage, firmwareVersion.VersionString), + LocaleManager.Instance[LocaleKeys.InputDialogYes], + LocaleManager.Instance[LocaleKeys.InputDialogNo], + string.Empty); - if (result != UserResult.Yes) - { - await UserErrorDialog.ShowUserErrorDialog(userError); - Device.Dispose(); - - return false; - } - } - - if (!SetupValidator.TryFixStartApplication(ContentManager, ApplicationPath, userError, out _)) + if (result != UserResult.Yes) { await UserErrorDialog.ShowUserErrorDialog(userError); Device.Dispose(); return false; } - - // Tell the user that we installed a firmware for them. - if (userError == UserError.NoFirmware) - { - firmwareVersion = ContentManager.GetCurrentFirmwareVersion(); - - _viewModel.RefreshFirmwareStatus(); - - await ContentDialogHelper.CreateInfoDialog( - LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogFirmwareInstalledMessage, firmwareVersion.VersionString), - LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogFirmwareInstallEmbeddedSuccessMessage, firmwareVersion.VersionString), - LocaleManager.Instance[LocaleKeys.InputDialogOk], - "", - LocaleManager.Instance[LocaleKeys.RyujinxInfo]); - } } - else + + if (!SetupValidator.TryFixStartApplication(ContentManager, ApplicationPath, userError, out _)) { await UserErrorDialog.ShowUserErrorDialog(userError); Device.Dispose(); return false; } + + // Tell the user that we installed a firmware for them. + if (userError is UserError.NoFirmware) + { + firmwareVersion = ContentManager.GetCurrentFirmwareVersion(); + + _viewModel.RefreshFirmwareStatus(); + + await ContentDialogHelper.CreateInfoDialog( + LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogFirmwareInstalledMessage, firmwareVersion.VersionString), + LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogFirmwareInstallEmbeddedSuccessMessage, firmwareVersion.VersionString), + LocaleManager.Instance[LocaleKeys.InputDialogOk], + string.Empty, + LocaleManager.Instance[LocaleKeys.RyujinxInfo]); + } + } + else + { + await UserErrorDialog.ShowUserErrorDialog(userError); + Device.Dispose(); + + return false; } } } @@ -832,20 +830,12 @@ namespace Ryujinx.Ava VirtualFileSystem.ReloadKeySet(); // Initialize Renderer. - IRenderer renderer; - - if (ConfigurationState.Instance.Graphics.GraphicsBackend.Value == GraphicsBackend.Vulkan) - { - renderer = new VulkanRenderer( - Vk.GetApi(), + IRenderer renderer = ConfigurationState.Instance.Graphics.GraphicsBackend.Value == GraphicsBackend.OpenGl + ? new OpenGLRenderer() + : VulkanRenderer.Create( + ConfigurationState.Instance.Graphics.PreferredGpu, (RendererHost.EmbeddedWindow as EmbeddedWindowVulkan)!.CreateSurface, - VulkanHelper.GetRequiredInstanceExtensions, - ConfigurationState.Instance.Graphics.PreferredGpu.Value); - } - else - { - renderer = new OpenGLRenderer(); - } + VulkanHelper.GetRequiredInstanceExtensions); BackendThreading threadingMode = ConfigurationState.Instance.Graphics.BackendThreading; diff --git a/src/Ryujinx/Common/Locale/LocaleExtension.cs b/src/Ryujinx/Common/Locale/LocaleExtension.cs deleted file mode 100644 index 54441c4cc..000000000 --- a/src/Ryujinx/Common/Locale/LocaleExtension.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Avalonia.Data.Core; -using Avalonia.Markup.Xaml; -using Avalonia.Markup.Xaml.MarkupExtensions; -using Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings; -using System; - -namespace Ryujinx.Ava.Common.Locale -{ - internal class LocaleExtension(LocaleKeys key) : MarkupExtension - { - private ClrPropertyInfo PropertyInfo - => new( - "Item", - _ => LocaleManager.Instance[key], - null, - typeof(string) - ); - - public override object ProvideValue(IServiceProvider serviceProvider) => - new CompiledBindingExtension( - new CompiledBindingPathBuilder() - .Property(PropertyInfo, PropertyInfoAccessorFactory.CreateInpcPropertyAccessor) - .Build() - ) - { Source = LocaleManager.Instance } - .ProvideValue(serviceProvider); - } -} diff --git a/src/Ryujinx/Common/Locale/LocaleManager.cs b/src/Ryujinx/Common/LocaleManager.cs similarity index 100% rename from src/Ryujinx/Common/Locale/LocaleManager.cs rename to src/Ryujinx/Common/LocaleManager.cs diff --git a/src/Ryujinx/Common/Icon/IconExtension.cs b/src/Ryujinx/Common/Markup/BasicMarkupExtension.cs similarity index 56% rename from src/Ryujinx/Common/Icon/IconExtension.cs rename to src/Ryujinx/Common/Markup/BasicMarkupExtension.cs index 41bdf5b02..73b298bc7 100644 --- a/src/Ryujinx/Common/Icon/IconExtension.cs +++ b/src/Ryujinx/Common/Markup/BasicMarkupExtension.cs @@ -1,21 +1,15 @@ -using Avalonia.Data.Core; +using Avalonia.Data.Core; using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml.MarkupExtensions; using Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings; using System; -namespace Ryujinx.Ava.Common.Icon +namespace Ryujinx.Ava.Common.Markup { - internal class IconExtension(string iconString) : MarkupExtension + internal abstract class BasicMarkupExtension : MarkupExtension { - private ClrPropertyInfo PropertyInfo - => new( - "Item", - _ => new Projektanker.Icons.Avalonia.Icon { Value = iconString }, - null, - typeof(Projektanker.Icons.Avalonia.Icon) - ); - + protected abstract ClrPropertyInfo PropertyInfo { get; } + public override object ProvideValue(IServiceProvider serviceProvider) => new CompiledBindingExtension( new CompiledBindingPathBuilder() diff --git a/src/Ryujinx/Common/Markup/MarkupExtensions.cs b/src/Ryujinx/Common/Markup/MarkupExtensions.cs new file mode 100644 index 000000000..af917b973 --- /dev/null +++ b/src/Ryujinx/Common/Markup/MarkupExtensions.cs @@ -0,0 +1,51 @@ +using Avalonia.Data.Core; +using Avalonia.Markup.Xaml; +using Avalonia.Markup.Xaml.MarkupExtensions; +using Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings; +using Projektanker.Icons.Avalonia; +using Ryujinx.Ava.Common.Locale; +using System; + +namespace Ryujinx.Ava.Common.Markup +{ + internal class IconExtension(string iconString) : BasicMarkupExtension + { + protected override ClrPropertyInfo PropertyInfo + => new( + "Item", + _ => new Icon { Value = iconString }, + null, + typeof(Icon) + ); + } + + internal class SpinningIconExtension(string iconString) : BasicMarkupExtension + { + protected override ClrPropertyInfo PropertyInfo + => new( + "Item", + _ => new Icon { Value = iconString, Animation = IconAnimation.Spin }, + null, + typeof(Icon) + ); + } + + internal class LocaleExtension(LocaleKeys key) : MarkupExtension + { + private ClrPropertyInfo PropertyInfo + => new( + "Item", + _ => LocaleManager.Instance[key], + null, + typeof(string) + ); + + public override object ProvideValue(IServiceProvider serviceProvider) => + new CompiledBindingExtension( + new CompiledBindingPathBuilder() + .Property(PropertyInfo, PropertyInfoAccessorFactory.CreateInpcPropertyAccessor) + .Build() + ) { Source = LocaleManager.Instance } + .ProvideValue(serviceProvider); + } +} diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index 42daa98c1..a52b75453 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -14,7 +14,6 @@ using Ryujinx.Common.GraphicsDriver; using Ryujinx.Common.Logging; using Ryujinx.Common.SystemInterop; using Ryujinx.Graphics.Vulkan.MoltenVK; -using Ryujinx.Modules; using Ryujinx.SDL2.Common; using Ryujinx.UI.App.Common; using Ryujinx.UI.Common; @@ -46,8 +45,7 @@ namespace Ryujinx.Ava public static int Main(string[] args) { Version = ReleaseInformation.Version; - - + if (OperatingSystem.IsWindows() && !OperatingSystem.IsWindowsVersionAtLeast(10, 0, 17134)) { _ = MessageBoxA(nint.Zero, "You are running an outdated version of Windows.\n\nRyujinx supports Windows 10 version 1803 and newer.\n", $"Ryujinx {Version}", MbIconwarning); diff --git a/src/Ryujinx/Ryujinx.ico b/src/Ryujinx/Ryujinx.ico index 679ff6e0d..0da5a311f 100644 Binary files a/src/Ryujinx/Ryujinx.ico and b/src/Ryujinx/Ryujinx.ico differ diff --git a/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs b/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs index 00e83e09d..ea4bc0849 100644 --- a/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs +++ b/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs @@ -120,7 +120,7 @@ namespace Ryujinx.Ava.UI.Applet bool okPressed = false; bool error = false; - string inputText = args.InitialText ?? ""; + string inputText = args.InitialText ?? string.Empty; Dispatcher.UIThread.InvokeAsync(async () => { diff --git a/src/Ryujinx/UI/Applet/ControllerAppletDialog.axaml b/src/Ryujinx/UI/Applet/ControllerAppletDialog.axaml index e24a1bb1d..038698f9f 100644 --- a/src/Ryujinx/UI/Applet/ControllerAppletDialog.axaml +++ b/src/Ryujinx/UI/Applet/ControllerAppletDialog.axaml @@ -4,7 +4,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" + xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:applet="using:Ryujinx.Ava.UI.Applet" mc:Ignorable="d" Width="400" @@ -25,11 +25,11 @@ Spacing="10" Margin="10"> + Text="{ext:Locale ControllerAppletDescription}" /> + Text="{ext:Locale ControllerAppletDocked}" /> + Text="{ext:Locale ControllerAppletControllers}" /> + Text="{ext:Locale ControllerAppletPlayers}" /> - + diff --git a/src/Ryujinx/UI/Applet/ControllerAppletDialog.axaml.cs b/src/Ryujinx/UI/Applet/ControllerAppletDialog.axaml.cs index 586d396a4..ee0e884d2 100644 --- a/src/Ryujinx/UI/Applet/ControllerAppletDialog.axaml.cs +++ b/src/Ryujinx/UI/Applet/ControllerAppletDialog.axaml.cs @@ -26,7 +26,7 @@ namespace Ryujinx.Ava.UI.Applet public static SvgImage JoyconLeftImage => GetResource(JoyConLeftResource); public static SvgImage JoyconRightImage => GetResource(JoyConRightResource); - public string PlayerCount { get; set; } = ""; + public string PlayerCount { get; set; } = string.Empty; public bool SupportsProController { get; set; } public bool SupportsLeftJoycon { get; set; } public bool SupportsRightJoycon { get; set; } diff --git a/src/Ryujinx/UI/Applet/ErrorAppletWindow.axaml b/src/Ryujinx/UI/Applet/ErrorAppletWindow.axaml index 709d833b8..c7aa56fb8 100644 --- a/src/Ryujinx/UI/Applet/ErrorAppletWindow.axaml +++ b/src/Ryujinx/UI/Applet/ErrorAppletWindow.axaml @@ -3,9 +3,9 @@ xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" + xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - Title="{locale:Locale ErrorWindowTitle}" + Title="{ext:Locale ErrorWindowTitle}" xmlns:views="using:Ryujinx.Ava.UI.Applet" Width="450" Height="340" diff --git a/src/Ryujinx/UI/Applet/SwkbdAppletDialog.axaml.cs b/src/Ryujinx/UI/Applet/SwkbdAppletDialog.axaml.cs index af3837e43..75a9b3d41 100644 --- a/src/Ryujinx/UI/Applet/SwkbdAppletDialog.axaml.cs +++ b/src/Ryujinx/UI/Applet/SwkbdAppletDialog.axaml.cs @@ -27,13 +27,18 @@ namespace Ryujinx.Ava.UI.Controls { MainText = mainText; SecondaryText = secondaryText; - Message = message ?? ""; + Message = message ?? string.Empty; DataContext = this; _placeholder = placeholder; InitializeComponent(); Input.Watermark = _placeholder; + if (string.IsNullOrWhiteSpace(Input.Watermark)) + { + Input.UseFloatingWatermark = false; + } + Input.AddHandler(TextInputEvent, Message_TextInput, RoutingStrategies.Tunnel, true); } @@ -50,9 +55,9 @@ namespace Ryujinx.Ava.UI.Controls Input.Focus(); } - public string Message { get; set; } = ""; - public string MainText { get; set; } = ""; - public string SecondaryText { get; set; } = ""; + public string Message { get; set; } = string.Empty; + public string MainText { get; set; } = string.Empty; + public string SecondaryText { get; set; } = string.Empty; public static async Task<(UserResult Result, string Input)> ShowInputDialog(string title, SoftwareKeyboardUIArgs args) { @@ -71,7 +76,7 @@ namespace Ryujinx.Ava.UI.Controls contentDialog.Title = title; contentDialog.PrimaryButtonText = args.SubmitText; contentDialog.IsPrimaryButtonEnabled = content._checkLength(content.Message.Length); - contentDialog.SecondaryButtonText = ""; + contentDialog.SecondaryButtonText = string.Empty; contentDialog.CloseButtonText = LocaleManager.Instance[LocaleKeys.InputDialogCancel]; contentDialog.Content = content; @@ -105,13 +110,13 @@ namespace Ryujinx.Ava.UI.Controls Error.IsVisible = false; Error.FontStyle = FontStyle.Italic; - string validationInfoText = ""; + string validationInfoText = string.Empty; if (_inputMin <= 0 && _inputMax == int.MaxValue) // Disable. { Error.IsVisible = false; - _checkLength = length => true; + _checkLength = _ => true; } else if (_inputMin > 0 && _inputMax == int.MaxValue) { diff --git a/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml b/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml index 4a6c99d1d..926af7686 100644 --- a/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml +++ b/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml @@ -2,109 +2,108 @@ x:Class="Ryujinx.Ava.UI.Controls.ApplicationContextMenu" xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" - xmlns:icon="clr-namespace:Ryujinx.Ava.Common.Icon" + xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels" x:DataType="viewModels:MainWindowViewModel"> + Header="{ext:Locale GameListContextMenuRunApplication}" + Icon="{ext:Icon fa-solid fa-play}"/> + Header="{ext:Locale GameListContextMenuToggleFavorite}" + Icon="{ext:Icon fa-solid fa-star}" + ToolTip.Tip="{ext:Locale GameListContextMenuToggleFavoriteToolTip}" /> + Icon="{ext:Icon fa-solid fa-bookmark}" + ToolTip.Tip="{OnPlatform Default={ext:Locale GameListContextMenuCreateShortcutToolTip}, macOS={ext:Locale GameListContextMenuCreateShortcutToolTipMacOS}}" /> + ToolTip.Tip="{ext:Locale GameListContextMenuOpenUserSaveDirectoryToolTip}" /> + ToolTip.Tip="{ext:Locale GameListContextMenuOpenDeviceSaveDirectoryToolTip}" /> + ToolTip.Tip="{ext:Locale GameListContextMenuOpenBcatSaveDirectoryToolTip}" /> + Header="{ext:Locale GameListContextMenuManageTitleUpdates}" + Icon="{ext:Icon fa-solid fa-code-compare}" + ToolTip.Tip="{ext:Locale GameListContextMenuManageTitleUpdatesToolTip}" /> + Header="{ext:Locale GameListContextMenuManageDlc}" + Icon="{ext:Icon fa-solid fa-download}" + ToolTip.Tip="{ext:Locale GameListContextMenuManageDlcToolTip}" /> + Header="{ext:Locale GameListContextMenuManageCheat}" + Icon="{ext:Icon fa-solid fa-code}" + ToolTip.Tip="{ext:Locale GameListContextMenuManageCheatToolTip}" /> + Header="{ext:Locale GameListContextMenuManageMod}" + Icon="{ext:Icon mdi-view-module}" + ToolTip.Tip="{ext:Locale GameListContextMenuManageModToolTip}" /> + Header="{ext:Locale GameListContextMenuOpenModsDirectory}" + Icon="{ext:Icon mdi-folder-file}" + ToolTip.Tip="{ext:Locale GameListContextMenuOpenModsDirectoryToolTip}" /> + Header="{ext:Locale GameListContextMenuOpenSdModsDirectory}" + Icon="{ext:Icon mdi-folder-file}" + ToolTip.Tip="{ext:Locale GameListContextMenuOpenSdModsDirectoryToolTip}" /> - + + Header="{ext:Locale GameListContextMenuCacheManagementPurgePptc}" + Icon="{ext:Icon mdi-refresh}" + ToolTip.Tip="{ext:Locale GameListContextMenuCacheManagementPurgePptcToolTip}" /> + Header="{ext:Locale GameListContextMenuCacheManagementPurgeShaderCache}" + Icon="{ext:Icon mdi-delete-alert}" + ToolTip.Tip="{ext:Locale GameListContextMenuCacheManagementPurgeShaderCacheToolTip}" /> + Header="{ext:Locale GameListContextMenuCacheManagementOpenPptcDirectory}" + Icon="{ext:Icon mdi-folder-arrow-up-down}" + ToolTip.Tip="{ext:Locale GameListContextMenuCacheManagementOpenPptcDirectoryToolTip}" /> + Header="{ext:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectory}" + Icon="{ext:Icon mdi-folder-arrow-up-down}" + ToolTip.Tip="{ext:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip}" /> - + + Header="{ext:Locale GameListContextMenuExtractDataExeFS}" + ToolTip.Tip="{ext:Locale GameListContextMenuExtractDataExeFSToolTip}" /> + Header="{ext:Locale GameListContextMenuExtractDataRomFS}" + ToolTip.Tip="{ext:Locale GameListContextMenuExtractDataRomFSToolTip}" /> + Header="{ext:Locale GameListContextMenuExtractDataLogo}" + ToolTip.Tip="{ext:Locale GameListContextMenuExtractDataLogoToolTip}" /> diff --git a/src/Ryujinx/UI/Controls/ApplicationListView.axaml b/src/Ryujinx/UI/Controls/ApplicationListView.axaml index 0304f06c0..0daa77ac4 100644 --- a/src/Ryujinx/UI/Controls/ApplicationListView.axaml +++ b/src/Ryujinx/UI/Controls/ApplicationListView.axaml @@ -56,14 +56,7 @@ VerticalAlignment="Stretch" ClipToBounds="True" CornerRadius="5"> - - - - - - - - + await ContentDialogHelper.CreateErrorDialog( + LocaleManager.Instance[LocaleKeys.DialogUserProfileDeletionWarningMessage])); return; - - static async void Action() - { - await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogUserProfileDeletionWarningMessage]); } - } AccountManager.OpenUser(profile.UserId); } var result = await ContentDialogHelper.CreateConfirmationDialog( LocaleManager.Instance[LocaleKeys.DialogUserProfileDeletionConfirmMessage], - "", + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogYes], LocaleManager.Instance[LocaleKeys.InputDialogNo], - ""); + string.Empty); if (result == UserResult.Yes) { diff --git a/src/Ryujinx/UI/Helpers/ContentDialogHelper.cs b/src/Ryujinx/UI/Helpers/ContentDialogHelper.cs index a2c40c5b0..67a3642a9 100644 --- a/src/Ryujinx/UI/Helpers/ContentDialogHelper.cs +++ b/src/Ryujinx/UI/Helpers/ContentDialogHelper.cs @@ -205,7 +205,7 @@ namespace Ryujinx.Ava.UI.Helpers primary, secondaryText, acceptButton, - "", + string.Empty, closeButton, (int)Symbol.Important); @@ -221,7 +221,7 @@ namespace Ryujinx.Ava.UI.Helpers primaryText, secondaryText, acceptButtonText, - "", + string.Empty, cancelButtonText, (int)Symbol.Help, primaryButtonResult); @@ -239,8 +239,8 @@ namespace Ryujinx.Ava.UI.Helpers LocaleManager.Instance[LocaleKeys.DialogUpdaterTitle], primary, secondaryText, - "", - "", + string.Empty, + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], (int)Symbol.Important); @@ -249,8 +249,8 @@ namespace Ryujinx.Ava.UI.Helpers LocaleManager.Instance[LocaleKeys.DialogWarningTitle], primary, secondaryText, - "", - "", + string.Empty, + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], (int)Symbol.Important); @@ -263,7 +263,7 @@ namespace Ryujinx.Ava.UI.Helpers LocaleManager.Instance[LocaleKeys.DialogErrorMessage], errorMessage, secondaryErrorMessage, - "", + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], (int)Symbol.Dismiss); } @@ -282,7 +282,7 @@ namespace Ryujinx.Ava.UI.Helpers primary, secondaryText, LocaleManager.Instance[LocaleKeys.InputDialogYes], - "", + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogNo], (int)Symbol.Help, UserResult.Yes); diff --git a/src/Ryujinx/UI/Helpers/KeyValueConverter.cs b/src/Ryujinx/UI/Helpers/KeyValueConverter.cs index 5b0d6ee1c..d20098426 100644 --- a/src/Ryujinx/UI/Helpers/KeyValueConverter.cs +++ b/src/Ryujinx/UI/Helpers/KeyValueConverter.cs @@ -122,7 +122,7 @@ namespace Ryujinx.Ava.UI.Helpers public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - string keyString = ""; + string keyString = string.Empty; LocaleKeys localeKey; switch (value) diff --git a/src/Ryujinx/UI/Helpers/UserErrorDialog.cs b/src/Ryujinx/UI/Helpers/UserErrorDialog.cs index c0b552454..b981a8275 100644 --- a/src/Ryujinx/UI/Helpers/UserErrorDialog.cs +++ b/src/Ryujinx/UI/Helpers/UserErrorDialog.cs @@ -40,7 +40,7 @@ namespace Ryujinx.Ava.UI.Helpers await ContentDialogHelper.CreateInfoDialog( LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogUserErrorDialogMessage, errorCode, GetErrorTitle(error)), GetErrorDescription(error), - "", + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogUserErrorDialogTitle, errorCode)); } diff --git a/src/Ryujinx/UI/ViewModels/AmiiboWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/AmiiboWindowViewModel.cs index 5ea38b8ab..a852d474c 100644 --- a/src/Ryujinx/UI/ViewModels/AmiiboWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/AmiiboWindowViewModel.cs @@ -320,7 +320,7 @@ namespace Ryujinx.Ava.UI.ViewModels } } - if (LastScannedAmiiboId != "") + if (LastScannedAmiiboId != string.Empty) { SelectLastScannedAmiibo(); } @@ -421,7 +421,7 @@ namespace Ryujinx.Ava.UI.ViewModels usageStringBuilder.Append($"{LocaleManager.Instance[LocaleKeys.Unknown]}."); } - Usage = $"{LocaleManager.Instance[LocaleKeys.Usage]} {(writable ? $" ({LocaleManager.Instance[LocaleKeys.Writable]})" : "")} : {usageStringBuilder}"; + Usage = $"{LocaleManager.Instance[LocaleKeys.Usage]} {(writable ? $" ({LocaleManager.Instance[LocaleKeys.Writable]})" : string.Empty)} : {usageStringBuilder}"; } } @@ -480,7 +480,7 @@ namespace Ryujinx.Ava.UI.ViewModels await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogAmiiboApiTitle], LocaleManager.Instance[LocaleKeys.DialogAmiiboApiFailFetchMessage], LocaleManager.Instance[LocaleKeys.InputDialogOk], - "", + string.Empty, LocaleManager.Instance[LocaleKeys.RyujinxInfo]); return null; @@ -530,7 +530,7 @@ namespace Ryujinx.Ava.UI.ViewModels await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogAmiiboApiTitle], LocaleManager.Instance[LocaleKeys.DialogAmiiboApiConnectErrorMessage], LocaleManager.Instance[LocaleKeys.InputDialogOk], - "", + string.Empty, LocaleManager.Instance[LocaleKeys.RyujinxInfo]); } } diff --git a/src/Ryujinx/UI/ViewModels/DownloadableContentManagerViewModel.cs b/src/Ryujinx/UI/ViewModels/DownloadableContentManagerViewModel.cs index 8206d863b..3abaae3ae 100644 --- a/src/Ryujinx/UI/ViewModels/DownloadableContentManagerViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/DownloadableContentManagerViewModel.cs @@ -287,7 +287,14 @@ namespace Ryujinx.Ava.UI.ViewModels var msg = string.Format(LocaleManager.Instance[LocaleKeys.DlcWindowDlcAddedMessage], numAdded); return Dispatcher.UIThread.InvokeAsync(async () => { - await ContentDialogHelper.ShowTextDialog(LocaleManager.Instance[LocaleKeys.DialogConfirmationTitle], msg, "", "", "", LocaleManager.Instance[LocaleKeys.InputDialogOk], (int)Symbol.Checkmark); + await ContentDialogHelper.ShowTextDialog( + LocaleManager.Instance[LocaleKeys.DialogConfirmationTitle], + msg, + string.Empty, + string.Empty, + string.Empty, + LocaleManager.Instance[LocaleKeys.InputDialogOk], + (int)Symbol.Checkmark); }); } } diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index f9fc8cbda..77407c486 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -29,7 +29,6 @@ using Ryujinx.HLE.HOS; using Ryujinx.HLE.HOS.Services.Account.Acc; using Ryujinx.HLE.UI; using Ryujinx.Input.HLE; -using Ryujinx.Modules; using Ryujinx.UI.App.Common; using Ryujinx.UI.Common; using Ryujinx.UI.Common.Configuration; @@ -1094,7 +1093,12 @@ namespace Ryujinx.Ava.UI.ViewModels string message = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogFirmwareInstallerFirmwareInstallSuccessMessage, firmwareVersion.VersionString); - await ContentDialogHelper.CreateInfoDialog(dialogTitle, message, LocaleManager.Instance[LocaleKeys.InputDialogOk], "", LocaleManager.Instance[LocaleKeys.RyujinxInfo]); + await ContentDialogHelper.CreateInfoDialog( + dialogTitle, + message, + LocaleManager.Instance[LocaleKeys.InputDialogOk], + string.Empty, + LocaleManager.Instance[LocaleKeys.RyujinxInfo]); Logger.Info?.Print(LogClass.Application, message); @@ -1165,7 +1169,7 @@ namespace Ryujinx.Ava.UI.ViewModels case LoadState.Loaded: LoadHeading = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.LoadingHeading, _currentApplicationData.Name); IsLoadingIndeterminate = true; - CacheLoadStatus = ""; + CacheLoadStatus = string.Empty; break; } break; @@ -1185,7 +1189,7 @@ namespace Ryujinx.Ava.UI.ViewModels case ShaderCacheLoadingState.Loaded: LoadHeading = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.LoadingHeading, _currentApplicationData.Name); IsLoadingIndeterminate = true; - CacheLoadStatus = ""; + CacheLoadStatus = string.Empty; break; } break; @@ -1305,7 +1309,12 @@ namespace Ryujinx.Ava.UI.ViewModels { await ContentDialogHelper.ShowTextDialog( LocaleManager.Instance[numAdded > 0 || numRemoved > 0 ? LocaleKeys.RyujinxConfirm : LocaleKeys.RyujinxInfo], - msg, "", "", "", LocaleManager.Instance[LocaleKeys.InputDialogOk], (int)Symbol.Checkmark); + msg, + string.Empty, + string.Empty, + string.Empty, + LocaleManager.Instance[LocaleKeys.InputDialogOk], + (int)Symbol.Checkmark); }); } } @@ -1602,7 +1611,7 @@ namespace Ryujinx.Ava.UI.ViewModels LocaleManager.Instance[LocaleKeys.DialogLoadAppGameAlreadyLoadedMessage], LocaleManager.Instance[LocaleKeys.DialogLoadAppGameAlreadyLoadedSubMessage], LocaleManager.Instance[LocaleKeys.InputDialogOk], - "", + string.Empty, LocaleManager.Instance[LocaleKeys.RyujinxInfo]); return; @@ -1819,7 +1828,7 @@ namespace Ryujinx.Ava.UI.ViewModels if (result == UserResult.Yes) { - ConfigurationState.Instance.Graphics.ShadersDumpPath.Value = ""; + ConfigurationState.Instance.Graphics.ShadersDumpPath.Value = string.Empty; SaveConfig(); } diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs index b576c1dba..6896e56af 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs @@ -82,8 +82,8 @@ namespace Ryujinx.Ava.UI.ViewModels { Dispatcher.UIThread.InvokeAsync(() => ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogSettingsBackendThreadingWarningMessage], - "", - "", + string.Empty, + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], LocaleManager.Instance[LocaleKeys.DialogSettingsBackendThreadingWarningTitle]) ); @@ -359,7 +359,7 @@ namespace Ryujinx.Ava.UI.ViewModels { _gpuIds.Add(device.Id); - AvailableGpus.Add(new ComboBoxItem { Content = $"{device.Name} {(device.IsDiscrete ? "(dGPU)" : "")}" }); + AvailableGpus.Add(new ComboBoxItem { Content = $"{device.Name} {(device.IsDiscrete ? "(dGPU)" : string.Empty)}" }); }); } } diff --git a/src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs b/src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs index 108bbbc61..dacdc3056 100644 --- a/src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs @@ -227,10 +227,16 @@ namespace Ryujinx.Ava.UI.ViewModels private Task ShowNewUpdatesAddedDialog(int numAdded) { var msg = string.Format(LocaleManager.Instance[LocaleKeys.UpdateWindowUpdateAddedMessage], numAdded); - return Dispatcher.UIThread.InvokeAsync(async () => - { - await ContentDialogHelper.ShowTextDialog(LocaleManager.Instance[LocaleKeys.DialogConfirmationTitle], msg, "", "", "", LocaleManager.Instance[LocaleKeys.InputDialogOk], (int)Symbol.Checkmark); - }); + return Dispatcher.UIThread.InvokeAsync(async () => + await ContentDialogHelper.ShowTextDialog( + LocaleManager.Instance[LocaleKeys.DialogConfirmationTitle], + msg, + string.Empty, + string.Empty, + string.Empty, + LocaleManager.Instance[LocaleKeys.InputDialogOk], + (int)Symbol.Checkmark + )); } } } diff --git a/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml b/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml index 08bdf90f4..7daf23eb6 100644 --- a/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml +++ b/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml @@ -1,7 +1,7 @@ + Text="{ext:Locale ControllerSettingsLStick}" /> @@ -139,7 +139,7 @@ Width="120" HorizontalAlignment="Center" VerticalAlignment="Center" - Text="{locale:Locale ControllerSettingsStickButton}" + Text="{ext:Locale ControllerSettingsStickButton}" TextAlignment="Center" /> - + - + - + + Text="{ext:Locale ControllerSettingsStickDeadzone}" /> + Text="{ext:Locale ControllerSettingsStickRange}" /> + Text="{ext:Locale ControllerSettingsDPad}" /> + Text="{ext:Locale ControllerSettingsTriggerThreshold}" /> @@ -363,7 +363,7 @@ Width="20" HorizontalAlignment="Center" VerticalAlignment="Center" - Text="{locale:Locale ControllerSettingsLeftSR}" + Text="{ext:Locale ControllerSettingsLeftSR}" TextAlignment="Center" /> - + @@ -476,13 +476,13 @@ MinWidth="0" Grid.Column="0" IsChecked="{Binding Config.EnableRumble, Mode=TwoWay}"> - + @@ -519,7 +519,7 @@ Width="20" HorizontalAlignment="Center" VerticalAlignment="Center" - Text="{locale:Locale ControllerSettingsTriggerZR}" + Text="{ext:Locale ControllerSettingsTriggerZR}" TextAlignment="Center" /> + Text="{ext:Locale ControllerSettingsButtons}" /> @@ -590,7 +590,7 @@ Margin="0,0,10,0" HorizontalAlignment="Center" VerticalAlignment="Center" - Text="{locale:Locale ControllerSettingsButtonA}" + Text="{ext:Locale ControllerSettingsButtonA}" TextAlignment="Center" /> + Text="{ext:Locale ControllerSettingsRStick}" /> @@ -675,7 +675,7 @@ Width="120" HorizontalAlignment="Center" VerticalAlignment="Center" - Text="{locale:Locale ControllerSettingsStickButton}" + Text="{ext:Locale ControllerSettingsStickButton}" TextAlignment="Center" /> - + - + - + + Text="{ext:Locale ControllerSettingsStickDeadzone}" /> + Text="{ext:Locale ControllerSettingsStickRange}" /> + Text="{ext:Locale ControllerSettingsPlayer}" /> + Text="{ext:Locale ControllerSettingsProfile}" /> + Text="{ext:Locale ControllerSettingsInputDevice}" /> + Text="{ext:Locale ControllerSettingsControllerType}" /> + Text="{ext:Locale ControllerSettingsLStick}" /> @@ -139,7 +139,7 @@ Width="120" HorizontalAlignment="Center" VerticalAlignment="Center" - Text="{locale:Locale ControllerSettingsStickButton}" + Text="{ext:Locale ControllerSettingsStickButton}" TextAlignment="Center" /> + Text="{ext:Locale ControllerSettingsDPad}" /> + Text="{ext:Locale ControllerSettingsButtons}" /> @@ -504,7 +504,7 @@ Margin="0,0,10,0" HorizontalAlignment="Center" VerticalAlignment="Center" - Text="{locale:Locale ControllerSettingsButtonA}" + Text="{ext:Locale ControllerSettingsButtonA}" TextAlignment="Center" /> + Text="{ext:Locale ControllerSettingsRStick}" /> @@ -590,7 +590,7 @@ Width="120" HorizontalAlignment="Center" VerticalAlignment="Center" - Text="{locale:Locale ControllerSettingsStickButton}" + Text="{ext:Locale ControllerSettingsStickButton}" TextAlignment="Center" /> - \ No newline at end of file + diff --git a/src/Ryujinx/UI/Views/Input/MotionInputView.axaml b/src/Ryujinx/UI/Views/Input/MotionInputView.axaml index 0d018e297..9096a06d1 100644 --- a/src/Ryujinx/UI/Views/Input/MotionInputView.axaml +++ b/src/Ryujinx/UI/Views/Input/MotionInputView.axaml @@ -5,7 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls" xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" - xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" + xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels.Input" mc:Ignorable="d" x:Class="Ryujinx.Ava.UI.Views.Input.MotionInputView" @@ -23,7 +23,7 @@ + Text="{ext:Locale ControllerSettingsMotionGyroSensitivity}" /> + Text="{ext:Locale ControllerSettingsMotionGyroDeadzone}" /> + Text="{ext:Locale ControllerSettingsMotionUseCemuhookCompatibleMotion}" /> + Text="{ext:Locale ControllerSettingsMotionServerHost}" /> + Text="{ext:Locale ControllerSettingsMotionControllerSlot}" /> + Text="{ext:Locale ControllerSettingsMotionRightJoyConSlot}" /> + Text="{ext:Locale ControllerSettingsMotionMirrorInput}" /> diff --git a/src/Ryujinx/UI/Views/Input/MotionInputView.axaml.cs b/src/Ryujinx/UI/Views/Input/MotionInputView.axaml.cs index 2304364b6..ca4a4e1cf 100644 --- a/src/Ryujinx/UI/Views/Input/MotionInputView.axaml.cs +++ b/src/Ryujinx/UI/Views/Input/MotionInputView.axaml.cs @@ -43,7 +43,7 @@ namespace Ryujinx.Ava.UI.Views.Input { Title = LocaleManager.Instance[LocaleKeys.ControllerMotionTitle], PrimaryButtonText = LocaleManager.Instance[LocaleKeys.ControllerSettingsSave], - SecondaryButtonText = "", + SecondaryButtonText = string.Empty, CloseButtonText = LocaleManager.Instance[LocaleKeys.ControllerSettingsClose], Content = content, }; diff --git a/src/Ryujinx/UI/Views/Input/RumbleInputView.axaml b/src/Ryujinx/UI/Views/Input/RumbleInputView.axaml index 1beb1f06e..5f6cde5b5 100644 --- a/src/Ryujinx/UI/Views/Input/RumbleInputView.axaml +++ b/src/Ryujinx/UI/Views/Input/RumbleInputView.axaml @@ -4,7 +4,7 @@ xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" + xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup" xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels.Input" mc:Ignorable="d" x:Class="Ryujinx.Ava.UI.Views.Input.RumbleInputView" @@ -21,7 +21,7 @@ Width="100" TextWrapping="WrapWithOverflow" HorizontalAlignment="Center" - Text="{locale:Locale ControllerSettingsRumbleStrongMultiplier}" /> + Text="{ext:Locale ControllerSettingsRumbleStrongMultiplier}" /> + Text="{ext:Locale ControllerSettingsRumbleWeakMultiplier}" /> - + + ToolTip.Tip="{ext:Locale LoadApplicationFileTooltip}" /> + ToolTip.Tip="{ext:Locale LoadApplicationFolderTooltip}" /> + ToolTip.Tip="{ext:Locale LoadDlcFromFolderTooltip}" /> - + ToolTip.Tip="{ext:Locale LoadTitleUpdatesFromFolderTooltip}" /> + + Icon="{ext:Icon fa-solid fa-person}" + ToolTip.Tip="{ext:Locale MenuBarFileOpenAppletOpenMiiAppletToolTip}" /> + Header="{ext:Locale MenuBarFileOpenEmuFolder}" + ToolTip.Tip="{ext:Locale OpenRyujinxFolderTooltip}" /> + Header="{ext:Locale MenuBarFileOpenLogsFolder}" + ToolTip.Tip="{ext:Locale OpenRyujinxLogsTooltip}" /> + Header="{ext:Locale MenuBarFileExit}" + Icon="{ext:Icon fa-solid fa-xmark}" + ToolTip.Tip="{ext:Locale ExitTooltip}" /> - +