Compare commits

..

12 Commits

Author SHA1 Message Date
Orbmu2k
57a8879a2c added ShowCustomizedSettingNamesOnly & ShowScannedUnknownSettings to user settings 2020-01-12 15:46:04 +01:00
Orbmu2k
c47e69d81c moved CFR setting to SLI group 2020-01-12 15:36:48 +01:00
Orbmu2k
21674d3f09 use hex settingnames only as fallback even if the setting source priority is higher 2020-01-12 14:59:09 +01:00
Orbmu2k
b5a13cf6fe migrated 3dvision setting names to reference.xml 2020-01-12 14:50:33 +01:00
Orbmu2k
c222cf1b06 further optimized unified scan for modified profiles 2020-01-12 14:28:59 +01:00
Orbmu2k
6d3237bfeb unified scan to a single run for better startup time #41 2020-01-12 14:20:22 +01:00
Orbmu2k
5dbb8ef721 fixed profiles counter for 3d vision settings 2020-01-12 00:36:00 +01:00
Orbmu2k
fcd9ef5346 merge 2020-01-11 13:46:18 +01:00
Orbmu2k
67bb397b6a fixed readme 2020-01-11 13:42:52 +01:00
Orbmu2k
ffff16ca83 Update README.md 2020-01-11 13:39:36 +01:00
Orbmu2k
cd8caa5702 fix #43 - delete application may not be successful 2020-01-11 13:38:06 +01:00
Orbmu2k
2d57d6b885 updated readme.md 2020-01-11 12:43:33 +01:00
14 changed files with 1167 additions and 381 deletions

View File

@@ -1 +1,11 @@
# nvidiaProfileInspector
![](/nspector/Images/n1-016.png) **NVIDIA Profile Inspector**
This tool is used for modifying game profiles inside the internal driver database of the nvidia driver.
All game profiles are provided by the nvidia driver, but you can add your own profiles for games missing in the driver database.
You also have access to hidden and undocumented settings, which are not provided by the drivers control panel.
For more information how to use this tool, you can find some very good wikis here:
* https://wiki.step-project.com/Guide:NVIDIA_Inspector
* https://www.pcgamingwiki.com/wiki/Nvidia_Profile_Inspector
![](npi_screenshot.png)

BIN
npi_screenshot.png Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@@ -8,8 +8,6 @@ namespace nspector.Common.CustomSettings
[Serializable]
public class CustomSettingNames
{
public bool ShowCustomizedSettingNamesOnly = false;
public List<CustomSetting> Settings = new List<CustomSetting>();
public void StoreToFile(string filename)

View File

@@ -63,7 +63,7 @@ namespace nspector.Common
checkedSettingsCount++;
AddScannedSettingToCache(profile, setting);
alreadyCheckedSettingIds.Add(setting.settingId);
return true;
return (setting.isCurrentPredefined != 1);
}
else if (setting.isCurrentPredefined != 1)
{
@@ -79,11 +79,10 @@ namespace nspector.Common
return (current > 0) ? (int)Math.Round((current * 100f) / max) : 0; ;
}
public async Task ScanForModifiedProfilesAsync(IProgress<int> progress, CancellationToken token = default(CancellationToken))
public async Task ScanProfileSettingsAsync(bool justModified, IProgress<int> progress, CancellationToken token = default(CancellationToken))
{
await Task.Run(() =>
{
ModifiedProfiles = new List<string>();
UserProfiles = new HashSet<string>();
var knownPredefines = new List<uint>(_commonSettingIds);
@@ -105,100 +104,33 @@ namespace nspector.Common
var profile = GetProfileInfo(hSession, hProfile);
int checkedSettingsCount = 0;
bool foundModifiedProfile = false;
var alreadyChecked = new List<uint>();
bool foundModifiedProfile = false;
if (profile.isPredefined == 0)
{
ModifiedProfiles.Add(profile.profileName);
UserProfiles.Add(profile.profileName);
continue;
foundModifiedProfile = true;
if (justModified) continue;
}
if ((hBaseProfile == hProfile || profile.numOfApps > 0) && profile.numOfSettings > 0)
{
var alreadyChecked = new List<uint>();
foreach (uint settingId in knownPredefines)
{
if (CheckCommonSetting(hSession, hProfile, profile,
ref checkedSettingsCount, settingId, false, ref alreadyChecked))
{
foundModifiedProfile = true;
ModifiedProfiles.Add(profile.profileName);
break;
}
}
// the detection if only applications has changed in a profile makes the scan process very slow, we leave it out!
//if (!foundModifiedProfile && profile.numOfApps > 0)
//{
// var apps = GetProfileApplications(hSession, hProfile);
// foreach (var app in apps)
// {
// if (app.isPredefined == 0)
// {
// foundModifiedProfile = true;
// ModifiedProfiles.Add(profile.profileName);
// break;
// }
// }
//}
if (foundModifiedProfile || checkedSettingsCount >= profile.numOfSettings)
continue;
var settings = GetProfileSettings(hSession, hProfile);
foreach (var setting in settings)
{
if (knownPredefines.IndexOf(setting.settingId) < 0)
knownPredefines.Add(setting.settingId);
if (setting.isCurrentPredefined != 1)
{
ModifiedProfiles.Add(profile.profileName);
break;
}
}
}
}
});
});
}
public async Task ScanForPredefinedProfileSettingsAsync(IProgress<int> progress, CancellationToken token = default(CancellationToken))
{
await Task.Run(() =>
{
var knownPredefines = new List<uint>(_commonSettingIds);
DrsSession((hSession) =>
{
var profileHandles = EnumProfileHandles(hSession);
var maxProfileCount = profileHandles.Count;
int curProfilePos = 0;
foreach (IntPtr hProfile in profileHandles)
{
if (token.IsCancellationRequested) break;
progress?.Report(CalcPercent(curProfilePos++, maxProfileCount));
var profile = GetProfileInfo(hSession, hProfile);
int checkedSettingsCount = 0;
var alreadyChecked = new List<uint>();
foreach (uint kpd in knownPredefines)
{
CheckCommonSetting(hSession, hProfile, profile,
ref checkedSettingsCount, kpd, true, ref alreadyChecked);
if (CheckCommonSetting(hSession, hProfile, profile,
ref checkedSettingsCount, kpd, !justModified, ref alreadyChecked))
{
if (!foundModifiedProfile)
{
foundModifiedProfile = true;
ModifiedProfiles.Add(profile.profileName);
if (justModified) break;
}
}
}
if (checkedSettingsCount >= profile.numOfSettings)
if ((foundModifiedProfile && justModified) || checkedSettingsCount >= profile.numOfSettings)
continue;
var settings = GetProfileSettings(hSession, hProfile);
@@ -207,8 +139,18 @@ namespace nspector.Common
if (knownPredefines.IndexOf(setting.settingId) < 0)
knownPredefines.Add(setting.settingId);
if (alreadyChecked.IndexOf(setting.settingId) < 0)
if (!justModified && alreadyChecked.IndexOf(setting.settingId) < 0)
AddScannedSettingToCache(profile, setting);
if (setting.isCurrentPredefined != 1)
{
if (!foundModifiedProfile)
{
foundModifiedProfile = true;
ModifiedProfiles.Add(profile.profileName);
if (justModified) break;
}
}
}
}
});
@@ -245,6 +187,8 @@ namespace nspector.Common
else if (setting.settingType == NVDRS_SETTING_TYPE.NVDRS_BINARY_TYPE)
cachedSetting.AddBinaryValue(setting.predefinedValue.binaryValue, profile.profileName);
}
else
cachedSetting.ProfileCount++;
if (!cacheEntryExists)
CachedSettings.Add(cachedSetting);

View File

@@ -18,7 +18,6 @@ namespace nspector.Common
public ISettingMetaService DriverMeta;
private ISettingMetaService ScannedMeta;
private ISettingMetaService ReferenceMeta;
private ISettingMetaService NvD3dUmxMeta;
private readonly CustomSettingNames _customSettings;
private readonly CustomSettingNames _referenceSettings;
@@ -62,9 +61,6 @@ namespace nspector.Common
ReferenceMeta = new CustomSettingMetaService(_referenceSettings, SettingMetaSource.ReferenceSettings);
MetaServices.Add(new MetaServiceItem() { ValueNamePrio = 4, Service = ReferenceMeta });
}
NvD3dUmxMeta = new NvD3dUmxSettingMetaService();
MetaServices.Add(new MetaServiceItem() { ValueNamePrio = 6, Service = NvD3dUmxMeta });
}
}
@@ -83,13 +79,23 @@ namespace nspector.Common
private string GetSettingName(uint settingId)
{
string hexCandidate = null;
foreach (var service in MetaServices.OrderBy(x=>x.Service.Source))
{
var settingName = service.Service.GetSettingName(settingId);
if (settingName != null)
if (!string.IsNullOrEmpty(settingName))
{
if (settingName.StartsWith("0x"))
{
hexCandidate = settingName;
continue;
}
return settingName;
}
}
return null;
return hexCandidate;
}
private string GetGroupName(uint settingId)
@@ -258,7 +264,6 @@ namespace nspector.Common
SettingMetaSource.ScannedSettings,
SettingMetaSource.CustomSettings,
SettingMetaSource.DriverSettings,
SettingMetaSource.NvD3dUmxSettings,
SettingMetaSource.ReferenceSettings,
};
default:
@@ -284,7 +289,6 @@ namespace nspector.Common
SettingMetaSource.ScannedSettings,
SettingMetaSource.CustomSettings,
SettingMetaSource.DriverSettings,
SettingMetaSource.NvD3dUmxSettings,
SettingMetaSource.ReferenceSettings,
};

View File

@@ -449,7 +449,7 @@ namespace nspector.Common
}
public List<SettingItem> GetSettingsForProfile(string profileName, SettingViewMode viewMode, ref List<string> applications)
public List<SettingItem> GetSettingsForProfile(string profileName, SettingViewMode viewMode, ref Dictionary<string, string> applications)
{
var result = new List<SettingItem>();
var settingIds = meta.GetSettingIds(viewMode);
@@ -482,7 +482,7 @@ namespace nspector.Common
}
return GetProfileApplications(hSession, hProfile)
.Select(x => x.appName).ToList(); ;
.Select(x => Tuple.Create(x.appName,GetApplicationFingerprint(x))).ToDictionary(x=> x.Item2, x=> x.Item1);
});
@@ -499,24 +499,25 @@ namespace nspector.Common
});
}
public void DeleteApplication(string profileName, string applicationName)
public void RemoveApplication(string profileName, string applicationFingerprint)
{
DrsSession((hSession) =>
{
var hProfile = GetProfileHandle(hSession, profileName);
DeleteApplication(hSession, hProfile, applicationName);
var applications = GetProfileApplications(hSession, hProfile);
foreach (var app in applications)
{
if (GetApplicationFingerprint(app) != applicationFingerprint) continue;
DeleteApplication(hSession, hProfile, app);
break;
}
SaveSettings(hSession);
});
}
public List<string> GetApplications(string profileName)
private string GetApplicationFingerprint(NVDRS_APPLICATION_V3 application)
{
return DrsSession((hSession) =>
{
var hProfile = GetProfileHandle(hSession, profileName);
var applications = GetProfileApplications(hSession, hProfile);
return applications.Select(x => x.appName).ToList();
});
return $"{application.appName}|{application.fileInFolder}|{application.userFriendlyName}|{application.launcher}";
}
}

View File

@@ -227,9 +227,9 @@ namespace nspector.Common
}
protected void DeleteApplication(IntPtr hSession, IntPtr hProfile, string applicationName)
protected void DeleteApplication(IntPtr hSession, IntPtr hProfile, NVDRS_APPLICATION_V3 application)
{
var caRes = nvw.DRS_DeleteApplication(hSession, hProfile, new StringBuilder(applicationName));
var caRes = nvw.DRS_DeleteApplicationEx(hSession, hProfile, ref application);
if (caRes != NvAPI_Status.NVAPI_OK)
throw new NvapiException("DRS_DeleteApplication", caRes);
}

View File

@@ -17,6 +17,10 @@ namespace nspector.Common.Helper
public FormWindowState WindowState { get; set; }
public bool ShowCustomizedSettingNamesOnly { get; set; } = false;
public bool ShowScannedUnknownSettings { get; set; } = false;
private static string GetSettingsFilename()
{
var fiPortalbleSettings = new FileInfo("settings.xml");

View File

@@ -1,207 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using nspector.Native.NvApi.DriverSettings;
using nspector.Native.NVAPI2;
namespace nspector.Common.Meta
{
internal class NvD3dUmxSettingMetaService : ISettingMetaService
{
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
struct NvD3dUmxName
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)]
public string settingName;
public uint settingId;
public uint unknown;
}
[StructLayout(LayoutKind.Sequential)]
struct NvD3dUmxNameList
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 255)]
public NvD3dUmxName[] settingNames;
}
private static int FindOffset(byte[] bytes, byte[] pattern, int offset = 0, byte? wildcard = null)
{
for (int i = offset; i < bytes.Length; i++)
{
if (pattern[0] == bytes[i] && bytes.Length - i >= pattern.Length)
{
bool ismatch = true;
for (int j = 1; j < pattern.Length && ismatch == true; j++)
{
if (bytes[i + j] != pattern[j] && ((wildcard.HasValue && wildcard != pattern[j]) || !wildcard.HasValue))
{
ismatch = false;
break;
}
}
if (ismatch)
return i;
}
}
return -1;
}
private static List<NvD3dUmxName> ParseNvD3dUmxNames(string filename)
{
if (!File.Exists(filename)) return null;
var bytes = File.ReadAllBytes(filename);
var runtimeNameOffset = FindOffset(bytes, new byte[] { 0x52, 0x75, 0x6E, 0x54, 0x69, 0x6D, 0x65, 0x4E, 0x61, 0x6D, 0x65 });
if (runtimeNameOffset > -1)
{
var _2ddNotesOffset = FindOffset(bytes, new byte[] { 0x32, 0x44, 0x44, 0x5F, 0x4E, 0x6F, 0x74, 0x65, 0x73 });
if (_2ddNotesOffset > -1)
{
var itemSize = Marshal.SizeOf(typeof(NvD3dUmxName));
var startOffset = runtimeNameOffset - itemSize;
var endOffset = _2ddNotesOffset + itemSize;
var tableLength = endOffset - startOffset;
var bufferSize = Marshal.SizeOf(typeof(NvD3dUmxNameList));
if (tableLength > bufferSize)
{
tableLength = bufferSize;
}
var itemCount = tableLength / itemSize;
var buffer = new byte[bufferSize];
Buffer.BlockCopy(bytes, startOffset, buffer, 0, tableLength);
var poBuffer = GCHandle.Alloc(buffer, GCHandleType.Pinned);
try
{
var nvD3dUmxNames = (NvD3dUmxNameList)Marshal.PtrToStructure(
poBuffer.AddrOfPinnedObject(),
typeof(NvD3dUmxNameList));
var result = new List<NvD3dUmxName>();
for (int i = 0; i < itemCount; i++)
{
result.Add(nvD3dUmxNames.settingNames[i]);
}
return result;
}
finally
{
poBuffer.Free();
}
}
}
return null;
}
private readonly List<NvD3dUmxName> _SettingNames;
private void ExportSettingsToCsn()
{
var settings = _SettingNames.Select(s => new CustomSettings.CustomSetting()
{
GroupName = "7 - Stereo",
HexSettingId = $"0x{s.settingId.ToString("X8")}",
UserfriendlyName = s.settingName,
}).ToList();
var xml = new CustomSettings.CustomSettingNames();
xml.Settings.AddRange(settings);
xml.StoreToFile("NvD3dUmx.xml");
}
public NvD3dUmxSettingMetaService()
{
var systemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
var nvD3dUmxPath = Path.Combine(systemPath, "nvd3dumx.dll");
_SettingNames = ParseNvD3dUmxNames(nvD3dUmxPath);
//ExportSettingsToCsn();
}
public Type GetSettingEnumType(uint settingId)
{
return null;
}
public NVDRS_SETTING_TYPE? GetSettingValueType(uint settingId)
{
return null;
}
public string GetSettingName(uint settingId)
{
if (_SettingNames != null)
{
var setting = _SettingNames.FirstOrDefault(s => s.settingId == settingId);
return setting.settingId != 0 ? setting.settingName : null;
}
return null;
}
public uint? GetDwordDefaultValue(uint settingId)
{
return null;
}
public string GetStringDefaultValue(uint settingId)
{
return null;
}
public List<SettingValue<string>> GetStringValues(uint settingId)
{
return null;
}
public List<SettingValue<uint>> GetDwordValues(uint settingId)
{
return null;
}
public List<uint> GetSettingIds()
{
if (_SettingNames != null)
{
return _SettingNames.Select(s => s.settingId).ToList();
}
return new List<uint>();
}
public string GetGroupName(uint settingId)
{
if (_SettingNames != null)
{
var setting = _SettingNames.FirstOrDefault(s => s.settingId == settingId);
return setting.settingId != 0 ? "7 - Stereo" : null;
}
return null;
}
public byte[] GetBinaryDefaultValue(uint settingId)
{
return null;
}
public List<SettingValue<byte[]>> GetBinaryValues(uint settingId)
{
return null;
}
public SettingMetaSource Source
{
get { return SettingMetaSource.NvD3dUmxSettings; }
}
}
}

View File

@@ -11,7 +11,6 @@ namespace nspector.Common.Meta
DriverSettings = 20,
ConstantSettings = 30,
ReferenceSettings = 40,
NvD3dUmxSettings = 50,
ScannedSettings = 60,
ScannedSettings = 50,
}
}

View File

@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<CustomSettingNames>
<ShowCustomizedSettingNamesOnly>false</ShowCustomizedSettingNamesOnly>
<Settings>
<CustomSetting>
<UserfriendlyName>SLI CFR Mode</UserfriendlyName>
<HexSettingID>0x20343843</HexSettingID>
<GroupName>6 - SLI</GroupName>
</CustomSetting>
<CustomSetting>
<UserfriendlyName>Enable Ansel</UserfriendlyName>
<HexSettingID>0x1075D972</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -22,7 +25,6 @@
<UserfriendlyName>Sharpening Filter</UserfriendlyName>
<HexSettingID>0x00598928</HexSettingID>
<MinRequiredDriverVersion>441.87</MinRequiredDriverVersion>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -39,7 +41,6 @@
<UserfriendlyName>Sharpening Value</UserfriendlyName>
<HexSettingID>0x002ED8CD</HexSettingID>
<MinRequiredDriverVersion>441.87</MinRequiredDriverVersion>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -457,7 +458,6 @@
<UserfriendlyName>Sharpening - Denoising Factor</UserfriendlyName>
<HexSettingID>0x002ED8CE</HexSettingID>
<MinRequiredDriverVersion>441.87</MinRequiredDriverVersion>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -875,7 +875,6 @@
<UserfriendlyName>Frame Rate Limiter V3</UserfriendlyName>
<HexSettingID>0x10835002</HexSettingID>
<MinRequiredDriverVersion>441.87</MinRequiredDriverVersion>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -2063,7 +2062,6 @@
<UserfriendlyName>Shadercache</UserfriendlyName>
<HexSettingID>0x00198FFF</HexSettingID>
<MinRequiredDriverVersion>337.50</MinRequiredDriverVersion>
<Description />
<GroupName>5 - Common</GroupName>
<OverrideDefault>0x00000001</OverrideDefault>
<SettingValues>
@@ -2082,7 +2080,6 @@
<UserfriendlyName>Antialiasing fix</UserfriendlyName>
<HexSettingID>0x000858F7</HexSettingID>
<MinRequiredDriverVersion>320.14</MinRequiredDriverVersion>
<Description />
<GroupName>1 - Compatibility</GroupName>
<OverrideDefault>0x00000001</OverrideDefault>
<SettingValues>
@@ -2100,7 +2097,6 @@
<UserfriendlyName>Vertical Sync Smooth AFR behavior</UserfriendlyName>
<HexSettingID>0x101AE763</HexSettingID>
<MinRequiredDriverVersion>310.00</MinRequiredDriverVersion>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -2118,7 +2114,6 @@
<UserfriendlyName>Texture filtering - Driver Controlled LOD Bias</UserfriendlyName>
<HexSettingID>0x00638E8F</HexSettingID>
<MinRequiredDriverVersion>313.00</MinRequiredDriverVersion>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -2135,7 +2130,6 @@
<CustomSetting>
<UserfriendlyName>Flip Indicator</UserfriendlyName>
<HexSettingID>0x002CF156</HexSettingID>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -2173,7 +2167,6 @@
<UserfriendlyName>Frame Rate Limiter Mode</UserfriendlyName>
<HexSettingID>0x10834FFF</HexSettingID>
<MinRequiredDriverVersion>372.00</MinRequiredDriverVersion>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -2195,7 +2188,6 @@
<UserfriendlyName>Frame Rate Limiter</UserfriendlyName>
<HexSettingID>0x10834FEE</HexSettingID>
<MinRequiredDriverVersion>280.26</MinRequiredDriverVersion>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -3141,7 +3133,6 @@
<UserfriendlyName>Toggle FXAA on or off</UserfriendlyName>
<HexSettingID>0x1074C972</HexSettingID>
<MinRequiredDriverVersion>300.00</MinRequiredDriverVersion>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -3159,7 +3150,6 @@
<UserfriendlyName>Toggle FXAA Indicator on or off</UserfriendlyName>
<HexSettingID>0x1068FB9C</HexSettingID>
<MinRequiredDriverVersion>300.00</MinRequiredDriverVersion>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -3177,7 +3167,6 @@
<UserfriendlyName>NVIDIA Predefined FXAA Usage</UserfriendlyName>
<HexSettingID>0x1034CB89</HexSettingID>
<MinRequiredDriverVersion>300.00</MinRequiredDriverVersion>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -3194,7 +3183,6 @@
<CustomSetting>
<UserfriendlyName>Antialiasing - Line gamma</UserfriendlyName>
<HexSettingID>0x2089BF6C</HexSettingID>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -3215,7 +3203,6 @@
<CustomSetting>
<UserfriendlyName>Texture filtering - LOD Bias (DX)</UserfriendlyName>
<HexSettingID>0x00738E8F</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -3420,7 +3407,6 @@
<CustomSetting>
<UserfriendlyName>Texture filtering - LOD Bias (OGL)</UserfriendlyName>
<HexSettingID>0x20403F79</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -3817,21 +3803,18 @@
<CustomSetting>
<UserfriendlyName>SLI compatibility bits (OGL)</UserfriendlyName>
<HexSettingID>0x209746C1</HexSettingID>
<Description />
<GroupName>1 - Compatibility</GroupName>
<SettingValues />
</CustomSetting>
<CustomSetting>
<UserfriendlyName>SLI compatibility bits (DX12)</UserfriendlyName>
<HexSettingID>0x00A04746</HexSettingID>
<Description />
<GroupName>1 - Compatibility</GroupName>
<SettingValues />
</CustomSetting>
<CustomSetting>
<UserfriendlyName>SLI compatibility bits (DX10 + DX11)</UserfriendlyName>
<HexSettingID>0x00A06946</HexSettingID>
<Description />
<GroupName>1 - Compatibility</GroupName>
<SettingValues />
<SettingMasks>
@@ -3874,7 +3857,6 @@
<CustomSetting>
<UserfriendlyName>SLI compatibility bits</UserfriendlyName>
<HexSettingID>0x1095DEF8</HexSettingID>
<Description />
<GroupName>1 - Compatibility</GroupName>
<SettingValues />
<SettingMasks>
@@ -3931,7 +3913,6 @@
<CustomSetting>
<UserfriendlyName>Antialiasing compatibility</UserfriendlyName>
<HexSettingID>0x00D55F7D</HexSettingID>
<Description />
<GroupName>1 - Compatibility</GroupName>
<SettingValues />
<SettingMasks />
@@ -3939,7 +3920,6 @@
<CustomSetting>
<UserfriendlyName>Antialiasing compatibility (DX1x)</UserfriendlyName>
<HexSettingID>0x00E32F8A</HexSettingID>
<Description />
<GroupName>1 - Compatibility</GroupName>
<SettingValues />
<SettingMasks />
@@ -3947,7 +3927,6 @@
<CustomSetting>
<UserfriendlyName>Ambient Occlusion compatibility</UserfriendlyName>
<HexSettingID>0x002C7F45</HexSettingID>
<Description />
<GroupName>1 - Compatibility</GroupName>
<SettingValues />
<SettingMasks />
@@ -3956,7 +3935,6 @@
<UserfriendlyName>Antialiasing - Gamma correction</UserfriendlyName>
<HexSettingID>0x107D639D</HexSettingID>
<OverrideDefault>0x00000002</OverrideDefault>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -3973,7 +3951,6 @@
<CustomSetting>
<UserfriendlyName>Antialiasing - Behavior Flags</UserfriendlyName>
<HexSettingID>0x10ECDB82</HexSettingID>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4014,7 +3991,6 @@
<CustomSetting>
<UserfriendlyName>Antialiasing - Mode</UserfriendlyName>
<HexSettingID>0x107EFC5B</HexSettingID>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4035,7 +4011,6 @@
<CustomSetting>
<UserfriendlyName>Antialiasing - Setting</UserfriendlyName>
<HexSettingID>0x10D773D2</HexSettingID>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4124,7 +4099,6 @@
<CustomSetting>
<UserfriendlyName>Antialiasing - Transparency Multisampling</UserfriendlyName>
<HexSettingID>0x10FC2D9C</HexSettingID>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4141,7 +4115,6 @@
<CustomSetting>
<UserfriendlyName>Antialiasing - Transparency Supersampling</UserfriendlyName>
<HexSettingID>0x10D48A85</HexSettingID>
<Description />
<GroupName>3 - Antialiasing</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4182,7 +4155,6 @@
<CustomSetting>
<UserfriendlyName>Anisotropic filtering mode</UserfriendlyName>
<HexSettingID>0x10D2BB16</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4199,7 +4171,6 @@
<CustomSetting>
<UserfriendlyName>Anisotropic filtering setting</UserfriendlyName>
<HexSettingID>0x101E61A9</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4240,7 +4211,6 @@
<CustomSetting>
<UserfriendlyName>Texture filtering - Anisotropic filter optimization</UserfriendlyName>
<HexSettingID>0x0084CD70</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4257,7 +4227,6 @@
<CustomSetting>
<UserfriendlyName>Texture filtering - Anisotropic sample optimization</UserfriendlyName>
<HexSettingID>0x00E73211</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4274,7 +4243,6 @@
<CustomSetting>
<UserfriendlyName>Texture filtering - Negative LOD bias</UserfriendlyName>
<HexSettingID>0x0019BB68</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4291,7 +4259,6 @@
<CustomSetting>
<UserfriendlyName>Texture filtering - Quality</UserfriendlyName>
<HexSettingID>0x00CE2691</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4316,7 +4283,6 @@
<CustomSetting>
<UserfriendlyName>Texture filtering - Trilinear optimization</UserfriendlyName>
<HexSettingID>0x002ECAF2</HexSettingID>
<Description />
<GroupName>4 - Texture Filtering</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4333,7 +4299,6 @@
<CustomSetting>
<UserfriendlyName>Ambient Occlusion usage</UserfriendlyName>
<HexSettingID>0x00664339</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4350,7 +4315,6 @@
<CustomSetting>
<UserfriendlyName>Ambient Occlusion setting</UserfriendlyName>
<HexSettingID>0x00667329</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4375,7 +4339,6 @@
<CustomSetting>
<UserfriendlyName>Maximum pre-rendered frames</UserfriendlyName>
<HexSettingID>0x007BA09E</HexSettingID>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4420,7 +4383,6 @@
<CustomSetting>
<UserfriendlyName>Threaded optimization</UserfriendlyName>
<HexSettingID>0x20C1221E</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4441,7 +4403,6 @@
<CustomSetting>
<UserfriendlyName>Triple buffering</UserfriendlyName>
<HexSettingID>0x20FDD1F9</HexSettingID>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4458,7 +4419,6 @@
<CustomSetting>
<UserfriendlyName>Vertical Sync</UserfriendlyName>
<HexSettingID>0x00A879CF</HexSettingID>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4496,7 +4456,6 @@
<UserfriendlyName>Vertical Sync Tear Control</UserfriendlyName>
<HexSettingID>0x005A375C</HexSettingID>
<MinRequiredDriverVersion>300.00</MinRequiredDriverVersion>
<Description />
<GroupName>2 - Sync and Refresh</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4513,7 +4472,6 @@
<CustomSetting>
<UserfriendlyName>Show PhysX Visual Indicator</UserfriendlyName>
<HexSettingID>0x1094F16F</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4530,7 +4488,6 @@
<CustomSetting>
<UserfriendlyName>Power management mode</UserfriendlyName>
<HexSettingID>0x1057EB71</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4551,7 +4508,6 @@
<CustomSetting>
<UserfriendlyName>CUDA - Force P2 State</UserfriendlyName>
<HexSettingID>0x50166C5E</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<OverrideDefault>0x00000001</OverrideDefault>
<SettingValues>
@@ -4569,7 +4525,6 @@
<CustomSetting>
<UserfriendlyName>Optimize for Compute Performance</UserfriendlyName>
<HexSettingID>0x10C158AD</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4586,7 +4541,6 @@
<CustomSetting>
<UserfriendlyName>Extension limit</UserfriendlyName>
<HexSettingID>0x20FF7493</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>
@@ -4603,7 +4557,6 @@
<CustomSetting>
<UserfriendlyName>Multi-display/mixed-GPU acceleration</UserfriendlyName>
<HexSettingID>0x200AEBFC</HexSettingID>
<Description />
<GroupName>5 - Common</GroupName>
<SettingValues>
<CustomSettingValue>

View File

File diff suppressed because it is too large Load Diff

View File

@@ -108,15 +108,16 @@ namespace nspector
return item;
}
private void RefreshApplicationsCombosAndText(List<string> applications)
private void RefreshApplicationsCombosAndText(Dictionary<string,string> applications)
{
lblApplications.Text = "";
tssbRemoveApplication.DropDownItems.Clear();
lblApplications.Text = " " + string.Join(", ", applications);
lblApplications.Text = " " + string.Join(", ", applications.Select(x=>x.Value));
foreach (var app in applications)
{
tssbRemoveApplication.DropDownItems.Add(app, Properties.Resources.ieframe_1_18212);
var item = tssbRemoveApplication.DropDownItems.Add(app.Value, Properties.Resources.ieframe_1_18212);
item.Tag = app.Key;
}
tssbRemoveApplication.Enabled = (tssbRemoveApplication.DropDownItems.Count > 0);
}
@@ -142,7 +143,7 @@ namespace nspector
{
lvSettings.Items.Clear();
lvSettings.Groups.Clear();
var applications = new List<string>();
var applications = new Dictionary<string,string>();
_currentProfileSettingItems = _drs.GetSettingsForProfile(_CurrentProfile, GetSettingViewMode(), ref applications);
RefreshApplicationsCombosAndText(applications);
@@ -698,12 +699,15 @@ namespace nspector
if (scanPredefined && !_alreadyScannedForPredefinedSettings)
{
_alreadyScannedForPredefinedSettings = true;
await _scanner.ScanForPredefinedProfileSettingsAsync(progressHandler, _scannerCancelationTokenSource.Token);
await _scanner.ScanProfileSettingsAsync(false, progressHandler, _scannerCancelationTokenSource.Token);
_meta.ResetMetaCache();
tscbShowScannedUnknownSettings.Enabled = true;
}
await _scanner.ScanForModifiedProfilesAsync(progressHandler, _scannerCancelationTokenSource.Token);
else
{
await _scanner.ScanProfileSettingsAsync(true, progressHandler, _scannerCancelationTokenSource.Token);
}
RefreshModifiesProfilesDropDown();
tsbModifiedProfiles.Enabled = true;
@@ -913,7 +917,7 @@ namespace nspector
//{
// drs.DeleteApplication(currentProfile, e.ClickedItem.Text);
//}
_drs.DeleteApplication(_CurrentProfile, e.ClickedItem.Text);
_drs.RemoveApplication(_CurrentProfile, e.ClickedItem.Tag.ToString());
RefreshCurrentProfile();
}
@@ -1182,6 +1186,8 @@ namespace nspector
settings.WindowWidth = RestoreBounds.Width;
}
settings.WindowState = WindowState;
settings.ShowCustomizedSettingNamesOnly = tscbShowCustomSettingNamesOnly.Checked;
settings.ShowScannedUnknownSettings = tscbShowScannedUnknownSettings.Checked;
settings.SaveSettings();
}
@@ -1191,6 +1197,8 @@ namespace nspector
SetBounds(settings.WindowLeft, settings.WindowTop, settings.WindowWidth, settings.WindowHeight);
WindowState = settings.WindowState != FormWindowState.Minimized ? settings.WindowState : FormWindowState.Normal;
HandleScreenConstraints();
tscbShowCustomSettingNamesOnly.Checked = settings.ShowCustomizedSettingNamesOnly;
tscbShowScannedUnknownSettings.Checked = !_skipScan && settings.ShowScannedUnknownSettings;
}
private void frmDrvSettings_FormClosed(object sender, FormClosedEventArgs e)

View File

@@ -142,7 +142,6 @@
<Compile Include="Common\Helper\UserSettings.cs" />
<Compile Include="Common\Import\ImportExportUitl.cs" />
<Compile Include="Common\Import\SettingValueType.cs" />
<Compile Include="Common\Meta\NvD3dUmxSettingMetaService.cs" />
<Compile Include="Common\Meta\MetaServiceItem.cs" />
<Compile Include="Common\Meta\ConstantSettingMetaService.cs" />
<Compile Include="Common\Meta\CustomSettingMetaService.cs" />