Compare commits

...

36 Commits

Author SHA1 Message Date
emoose
f4e2a2fe69 Form: fix values combobox mispositioning 2025-07-27 20:34:07 +01:00
emoose
ecbc27200a Settings: move smooth motion flip metering to Extra 2025-07-27 19:44:30 +01:00
emoose
06559a5512 Form: add search/filter textbox above setting list, improve high-DPI
frmDrvSettings AutoScaleDimensions changed to improve high DPI displays
2025-07-27 19:40:39 +01:00
emoose
04202e43c7 Reference: re-add pre-526.47 TILEDCACHE 2025-07-27 19:39:02 +01:00
emoose
cde038f53b Settings: correct TILEDCACHE setting ID for later drivers, add TILESIZE and VK settings
Thanks to Guzz on guru3d for pointing them out!
2025-07-26 18:18:30 +01:00
emoose
1980707c13 Settings: move smooth motion debug settings to Extra 2025-07-20 20:58:33 +01:00
emoose
f5e4d76388 Settings: add TILED_CACHE, 3 OpenGL settings, update smooth motion
default

Thanks to @Squall-Leonhart
2025-07-20 20:48:54 +01:00
emoose
89957fcbae Settings: update Smooth Motion settings, add debug settings/flip metering 2025-07-16 23:12:51 +01:00
emoose
0cbafd18a3 CustomSettings: add MinDriver 572.83 to forced DLSS scale 2025-03-20 16:33:34 +00:00
Warkratos
590125369d Update CustomSettingNames.xml
remove the "pre 571 drivers" notice
2025-03-20 16:29:50 +00:00
Warkratos
5a20139f8b Update CustomSettingNames.xml 2025-03-20 16:29:50 +00:00
emoose
a6fde2f6f8 Reference: add names from nvapi/nvcpl
scanner in NVPI didn't pick these up some reason, guess they might be flagged as hidden?
2025-02-23 00:35:53 +00:00
emoose
d5cae1000f Settings: add DLSS-FG flags, RTXHDR bits 2025-02-22 19:28:04 +00:00
emoose
73dbbbd66c Settings: add DXVK present promotion flag & extra DLSS/rBAR settings
thanks to aufkrawall for suggestions (https://github.com/Orbmu2k/nvidiaProfileInspector/issues/282)

- added DXVK flag to Reference.xml to let bit editor see it

- also added shader cache size 8GB / 0x2000 since that seemed default for me
2025-02-21 22:39:08 +00:00
emoose
64f626e8a0 Use InputBox with browse button to add app, add yes/no prompt to reset profile 2025-02-19 00:25:19 +00:00
emoose
f62aa86ccc InputBox: add browse button 2025-02-18 23:33:12 +00:00
emoose
345444619c Add tooltip to app paths label 2025-02-18 23:33:12 +00:00
emoose
50006f114a Allow adding app path by string when double-clicking apps label
Can be used to add UWP IDs to the profile without needing to edit exported .nip
2025-02-18 23:33:12 +00:00
emoose
a3b524e7d9 InputBox: fix DPI scaling on later Windows versions 2025-02-18 23:33:12 +00:00
Orbmu2k
109fdd066a Merge pull request #273 from Orbmu2k/master-pull
MERGE PRs
2025-02-15 12:30:06 +01:00
Orbmu2k
9115ffa4cc Merge pull request #272 from emoose/listviewfix
Fix combobox requiring two clicks to open, add RTX digital vibrance
2025-02-15 12:27:10 +01:00
Orbmu2k
b4f65906d9 Merge pull request #265 from renannmp/master
Update CustomSettingNames.xml to add CUDA - Sysmem Fallback Policy and  Vulkan/OpenGL present method.
2025-02-15 12:26:54 +01:00
emoose
c0c37cbfbb Trim unneeded HDR settings, add RTX digital vibrance + DLSS preset L - O
nvapi returns presets L - O for future presets to use, add them to our list to make combobox items uniform
2025-02-14 08:24:06 +00:00
emoose
e548c384ec ListViewEx: skip repositioning opened combobox, fixes combobox requiring two clicks 2025-02-14 08:11:36 +00:00
Warkratos
b043a0cce6 Update CustomSettingNames.xml
Add CUDA - Sysmem Fallback Policy to 5 - Common
Add Vulkan/OpenGL present method to 2 - Sync and refresh
Small correction to hex for MPO_INDICATOR
2025-02-08 16:41:16 -03:00
Orbmu2k
7eca55a7a1 NVAPI R570 + .NET FW 4.8.1 + small improvements 2025-02-07 19:49:13 +01:00
Orbmu2k
332153bc23 Merge pull request #262 from renannmp/master
Update CustomSettingNames.xml to include MPO Indicator and Old Sharpening Method
2025-02-07 19:33:19 +01:00
Nyamp
8ff77c1f07 Update CustomSettingNames.xml
- Add MPO_INDICATOR to Extra
- Override Default Setting for Frame Generation Count
- Add Old Sharpening Method to Antialiasing
2025-02-04 23:34:52 -03:00
Orbmu2k
801fa76467 Merge pull request #261 from emoose/master
CustomSettingNames: add DLSS/HDR/SmoothMotion settings
2025-02-04 18:59:05 +01:00
emoose
a40527f8de CustomSettingNames: add DLSS/HDR/SmoothMotion settings 2025-02-04 16:17:26 +00:00
Orbmu2k
b5a0b0091a #247 temporary fix for 571.96 overflow bug - thanks emoose :) 2025-01-24 16:12:31 +01:00
Orbmu2k
8b6c13216a possible fix for #131 2023-03-26 11:35:33 +02:00
Orbmu2k
3c74a9b5e5 additional invariant culture checks for lower case 2023-03-26 11:30:05 +02:00
Orbmu2k
70c63b1239 possible fix for #128 2023-03-26 11:27:21 +02:00
Orbmu2k
f003324d55 fallback functionIds 2023-03-26 11:25:42 +02:00
Orbmu2k
b9563767ef fixed dpi 2022-11-30 23:22:10 +01:00
24 changed files with 4191 additions and 1313 deletions

View File

@@ -89,7 +89,7 @@ namespace nspector.Common
private string FormatInternalSettingKey(string profileName, uint settingId)
{
return profileName + settingId.ToString("X8").ToLower();
return profileName + settingId.ToString("X8").ToLowerInvariant();
}
public bool IsInternalSetting(string profileName, uint settingId)

View File

@@ -198,7 +198,7 @@ namespace nspector.Common
public string FindProfilesUsingApplication(string applicationName)
{
string lowerApplicationName = applicationName.ToLower();
string lowerApplicationName = applicationName.ToLowerInvariant();
string tmpfile = TempFile.GetTempFileName();
try
@@ -219,7 +219,7 @@ namespace nspector.Common
string scope = m.Result("${scope}");
foreach (Match ms in Regex.Matches(scope, "Executable\\s\\\"(?<app>.*?)\\\"", RegexOptions.Singleline))
{
if (ms.Result("${app}").ToLower() == lowerApplicationName)
if (ms.Result("${app}").ToLowerInvariant() == lowerApplicationName)
{
matchingProfiles.Add(m.Result("${profile}"));
}

View File

@@ -14,6 +14,8 @@ namespace nspector.Common
public static readonly DrsScannerService ScannerService;
public static readonly DrsDecrypterService DecrypterService;
public static bool IsExternalCustomSettings { get; private set; } = false;
static DrsServiceLocator()
{
CustomSettings = LoadCustomSettings();
@@ -31,7 +33,18 @@ namespace nspector.Common
string csnDefaultPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\CustomSettingNames.xml";
if (File.Exists(csnDefaultPath))
return CustomSettingNames.FactoryLoadFromFile(csnDefaultPath);
{
try
{
var externalSettings = CustomSettingNames.FactoryLoadFromFile(csnDefaultPath);
IsExternalCustomSettings = true;
return externalSettings;
}
catch
{
return CustomSettingNames.FactoryLoadFromString(Properties.Resources.CustomSettingNames);
}
}
else
return CustomSettingNames.FactoryLoadFromString(Properties.Resources.CustomSettingNames);
}
@@ -40,8 +53,12 @@ namespace nspector.Common
{
string csnDefaultPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Reference.xml";
if (File.Exists(csnDefaultPath))
return CustomSettingNames.FactoryLoadFromFile(csnDefaultPath);
try
{
if (File.Exists(csnDefaultPath))
return CustomSettingNames.FactoryLoadFromFile(csnDefaultPath);
}
catch { }
return null;
}

View File

@@ -17,7 +17,7 @@ namespace nspector.Common
public static uint ParseDwordByInputSafe(string input)
{
uint result = 0;
if (input.ToLower().StartsWith("0x"))
if (input.ToLowerInvariant().StartsWith("0x"))
{
try
{

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
@@ -8,13 +9,15 @@ namespace nspector.Common.Helper
{
internal class InputBox
{
internal static DialogResult Show(string title, string promptText, ref string value, List<string> invalidInputs, string mandatoryFormatRegExPattern, int maxLength)
internal static DialogResult Show(string title, string promptText, ref string value, List<string> invalidInputs, string mandatoryFormatRegExPattern, int maxLength, bool allowExeBrowse = false)
{
var form = new Form();
var label = new Label();
var textBox = new TextBox();
var buttonOk = new Button();
var buttonCancel = new Button();
var buttonBrowse = new Button();
var imageBox = new PictureBox();
EventHandler textchanged = delegate (object sender, EventArgs e)
@@ -42,10 +45,23 @@ namespace nspector.Common.Helper
buttonOk.Enabled = true;
};
EventHandler buttonBrowse_Click = delegate (object sender, EventArgs e)
{
var openDialog = new OpenFileDialog();
openDialog.DefaultExt = "*.exe";
openDialog.Filter = "Application EXE Name|*.exe|Application Absolute Path|*.exe";
if (openDialog.ShowDialog() == DialogResult.OK)
{
string applicationName = new FileInfo(openDialog.FileName).Name;
if (openDialog.FilterIndex == 2)
applicationName = openDialog.FileName;
textBox.Text = applicationName;
}
};
textBox.TextChanged += textchanged;
form.Text = title;
label.Text = promptText;
textBox.Text = value;
@@ -54,28 +70,47 @@ namespace nspector.Common.Helper
buttonOk.Text = "OK";
buttonCancel.Text = "Cancel";
buttonBrowse.Text = "Browse...";
buttonOk.DialogResult = DialogResult.OK;
buttonCancel.DialogResult = DialogResult.Cancel;
buttonOk.Enabled = false;
label.SetBounds(9, 20, 372, 13);
textBox.SetBounds(12, 36, 352, 20);
buttonOk.SetBounds(228, 72, 75, 23);
buttonCancel.SetBounds(309, 72, 75, 23);
label.SetBounds(Dpi(9), Dpi(20), Dpi(372), Dpi(13));
textBox.SetBounds(Dpi(12), Dpi(44), Dpi(352), Dpi(20));
buttonOk.SetBounds(Dpi(224), Dpi(72), Dpi(75), Dpi(23));
buttonCancel.SetBounds(Dpi(305), Dpi(72), Dpi(75), Dpi(23));
imageBox.SetBounds(368, 36, 16, 16);
if (allowExeBrowse)
{
textBox.SetBounds(Dpi(12), Dpi(44), Dpi(286), Dpi(20));
buttonBrowse.SetBounds(Dpi(305), Dpi(39), Dpi(75), Dpi(23));
buttonBrowse.Click += buttonBrowse_Click;
}
imageBox.SetBounds(Dpi(368), Dpi(44), Dpi(16), Dpi(16));
label.AutoSize = true;
label.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
imageBox.Anchor = AnchorStyles.Top | AnchorStyles.Right;
textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
textBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonBrowse.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
form.ClientSize = new Size(396, 107);
form.Controls.AddRange(new Control[] { label, textBox, imageBox, buttonOk, buttonCancel });
form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.ClientSize = new Size(Dpi(396), Dpi(107));
form.ClientSize = new Size(Math.Max(Dpi(300), label.Right + Dpi(10)), form.ClientSize.Height);
form.MinimumSize = form.Size;
form.MaximumSize = new Size(form.MinimumSize.Width * 2, form.MinimumSize.Height);
form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
if (!allowExeBrowse)
form.Controls.Add(imageBox);
else
form.Controls.Add(buttonBrowse);
form.ShowIcon = false;
form.FormBorderStyle = FormBorderStyle.Sizable;
form.StartPosition = FormStartPosition.CenterParent;
form.MinimizeBox = false;
form.MaximizeBox = false;
@@ -88,5 +123,10 @@ namespace nspector.Common.Helper
value = textBox.Text;
return dialogResult;
}
private static int Dpi(int input)
{
return (int)Math.Round(input * frmDrvSettings.ScaleFactor);
}
}
}

View File

@@ -30,7 +30,7 @@ namespace nspector.Common.Helper
try
{
switch (fileInfo.Extension.ToLower())
switch (fileInfo.Extension.ToLowerInvariant())
{
case ".lnk": return ResolveFromShellLinkFile(fileInfo.FullName);
case ".url": return ResolveFromUrlFile(fileInfo.FullName);
@@ -54,7 +54,7 @@ namespace nspector.Common.Helper
}
var targetInfo = new FileInfo(shellLink.Target);
if (targetInfo.Name.ToLower() == SteamAppResolver.SteamExeName)
if (targetInfo.Name.ToLowerInvariant() == SteamAppResolver.SteamExeName)
{
if (shellLink.Arguments.Contains(SteamAppResolver.SteamArgumentPattern))
{
@@ -63,7 +63,7 @@ namespace nspector.Common.Helper
}
}
if (targetInfo.Extension.ToLower().Equals(".exe"))
if (targetInfo.Extension.ToLowerInvariant().Equals(".exe"))
{
return targetInfo.Name;
}

View File

@@ -41,7 +41,14 @@ namespace nspector.Common.Helper
var filename = GetSettingsFilename();
if (!File.Exists(filename)) return new UserSettings();
return XMLHelper<UserSettings>.DeserializeFromXMLFile(GetSettingsFilename());
try
{
return XMLHelper<UserSettings>.DeserializeFromXMLFile(GetSettingsFilename());
}
catch
{
return new UserSettings();
}
}
}
}

View File

@@ -30,7 +30,7 @@ namespace nspector.Common.Meta
{
if (string.IsNullOrEmpty(type)) return null;
switch(type.ToLower())
switch(type.ToLowerInvariant())
{
case "dword":
return NVDRS_SETTING_TYPE.NVDRS_DWORD_TYPE;

View File

@@ -30,6 +30,11 @@ namespace nspector.Common.Meta
private SettingMeta GetDriverSettingMetaInternal(uint settingId)
{
// temporary fix for 571.96 overflow bug by emoose
if ((settingId & 0xFFFFF000) == 0x10c7d000)
return null;
var values = new NVDRS_SETTING_VALUES();
values.version = nvw.NVDRS_SETTING_VALUES_VER;
uint valueCount = 255;

View File

File diff suppressed because it is too large Load Diff

View File

@@ -9,46 +9,49 @@ using System.Windows.Forms;
namespace nspector
{
internal delegate void DropFilesNativeHandler(string[] files);
internal delegate void DropFilesNativeHandler(string[] files);
internal class ListViewEx : ListView
internal class ListViewEx : ListView
{
public event DropFilesNativeHandler OnDropFilesNative;
public event DropFilesNativeHandler OnDropFilesNative;
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wPar, IntPtr lPar);
private const int LVM_FIRST = 0x1000;
private const int LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59);
private const int WM_PAINT = 0x000F;
private const int WM_VSCROLL = 0x0115;
private const int WM_HSCROLL = 0x0114;
private const int WM_MOUSEWHEEL = 0x020A;
private struct EmbeddedControl
{
internal Control Control;
internal int Column;
internal int Row;
internal DockStyle Dock;
internal ListViewItem Item;
internal Control Control;
internal int Column;
internal int Row;
internal DockStyle Dock;
internal ListViewItem Item;
}
private ArrayList _embeddedControls = new ArrayList();
public ListViewEx()
{
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.EnableNotifyMessage, true);
}
public ListViewEx()
{
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.EnableNotifyMessage, true);
}
protected override void OnNotifyMessage(Message m)
{
if (m.Msg != 0x14)
{
base.OnNotifyMessage(m);
}
}
protected override void OnNotifyMessage(Message m)
{
if (m.Msg != 0x14)
{
base.OnNotifyMessage(m);
}
}
protected int[] GetColumnOrder()
{
IntPtr lPar = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(int)) * Columns.Count);
@@ -94,18 +97,18 @@ namespace nspector
break;
subItemX += col.Width;
}
subItemRect = new Rectangle(subItemX, lviBounds.Top-1, this.Columns[order[i]].Width, lviBounds.Height);
return subItemRect;
}
internal void AddEmbeddedControl(Control c, int col, int row)
internal void AddEmbeddedControl(Control c, int col, int row)
{
AddEmbeddedControl(c,col,row,DockStyle.Fill);
}
internal void AddEmbeddedControl(Control c, int col, int row, DockStyle dock)
internal void AddEmbeddedControl(Control c, int col, int row, DockStyle dock)
{
if (c==null)
throw new ArgumentNullException();
@@ -122,11 +125,11 @@ namespace nspector
_embeddedControls.Add(ec);
c.Click += new EventHandler(_embeddedControl_Click);
this.Controls.Add(c);
}
internal void RemoveEmbeddedControl(Control c)
internal void RemoveEmbeddedControl(Control c)
{
if (c == null)
throw new ArgumentNullException();
@@ -143,8 +146,8 @@ namespace nspector
}
}
}
internal Control GetEmbeddedControl(int col, int row)
internal Control GetEmbeddedControl(int col, int row)
{
foreach (EmbeddedControl ec in _embeddedControls)
if (ec.Row == row && ec.Column == col)
@@ -154,9 +157,9 @@ namespace nspector
}
[DefaultValue(View.LargeIcon)]
internal new View View
internal new View View
{
get
get
{
return base.View;
}
@@ -169,9 +172,9 @@ namespace nspector
}
}
[DllImport("shell32.dll", CharSet = CharSet.Auto)]
public static extern int DragQueryFile(IntPtr hDrop, uint iFile, [Out] StringBuilder lpszFile, int cch);
private const int WM_DROPFILES = 0x233;
[DllImport("shell32.dll", CharSet = CharSet.Auto)]
public static extern int DragQueryFile(IntPtr hDrop, uint iFile, [Out] StringBuilder lpszFile, int cch);
private const int WM_DROPFILES = 0x233;
protected override void WndProc(ref Message m)
{
@@ -183,6 +186,10 @@ namespace nspector
foreach (EmbeddedControl ec in _embeddedControls)
{
// Skip repositioning if the control is a dropped-down ComboBox, prevents it from immediately closing on first click
if (ec.Control is ComboBox comboBox && comboBox.DroppedDown)
continue;
Rectangle rc = this.GetSubItemBounds(ec.Item, ec.Column);
if ((this.HeaderStyle != ColumnHeaderStyle.None) &&
@@ -220,44 +227,57 @@ namespace nspector
}
rc.X = rc.X + ec.Control.Margin.Left;
rc.Y = rc.Y + ec.Control.Margin.Top;
rc.Width = rc.Width - ec.Control.Margin.Right;
rc.Height = rc.Height - ec.Control.Margin.Bottom;
rc.X = rc.X + ec.Control.Margin.Left;
rc.Y = rc.Y + ec.Control.Margin.Top;
rc.Width = rc.Width - ec.Control.Margin.Right;
rc.Height = rc.Height - ec.Control.Margin.Bottom;
ec.Control.Bounds = rc;
ec.Control.Bounds = rc;
}
break;
case WM_DROPFILES:
if (OnDropFilesNative != null)
{
var dropped = DragQueryFile(m.WParam, 0xFFFFFFFF, null, 0);
if (dropped > 0)
{
var files = new List<string>();
for (uint i = 0; i < dropped; i++)
{
var size = DragQueryFile(m.WParam, i, null, 0);
if (size > 0)
{
var sb = new StringBuilder(size + 1);
var result = DragQueryFile(m.WParam, i, sb, size + 1);
files.Add(sb.ToString());
}
}
case WM_VSCROLL:
case WM_HSCROLL:
case WM_MOUSEWHEEL:
// Close any opened comboboxes if listview is being scrolled
foreach (EmbeddedControl ec in _embeddedControls)
{
if (ec.Control is ComboBox comboBox && comboBox.DroppedDown)
{
comboBox.DroppedDown = false;
}
}
break;
OnDropFilesNative(files.ToArray());
}
}
case WM_DROPFILES:
base.WndProc(ref m);
break;
if (OnDropFilesNative != null)
{
var dropped = DragQueryFile(m.WParam, 0xFFFFFFFF, null, 0);
if (dropped > 0)
{
var files = new List<string>();
for (uint i = 0; i < dropped; i++)
{
var size = DragQueryFile(m.WParam, i, null, 0);
if (size > 0)
{
var sb = new StringBuilder(size + 1);
var result = DragQueryFile(m.WParam, i, sb, size + 1);
files.Add(sb.ToString());
}
}
OnDropFilesNative(files.ToArray());
}
}
base.WndProc(ref m);
break;
}
base.WndProc (ref m);
base.WndProc(ref m);
}
private void _embeddedControl_Click(object sender, EventArgs e)

View File

@@ -2,6 +2,8 @@
{
public enum ESetting : uint {
OGL_AA_LINE_GAMMA_ID = 0x2089BF6C,
OGL_CPL_GDI_COMPATIBILITY_ID = 0x2072C5A3,
OGL_CPL_PREFER_DXPRESENT_ID = 0x20D690F8,
OGL_DEEP_COLOR_SCANOUT_ID = 0x2097C2F6,
OGL_DEFAULT_SWAP_INTERVAL_ID = 0x206A6582,
OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_ID = 0x206C4581,
@@ -16,7 +18,6 @@
OGL_OVERLAY_SUPPORT_ID = 0x206C28C4,
OGL_QUALITY_ENHANCEMENTS_ID = 0x20797D6C,
OGL_SINGLE_BACKDEPTH_BUFFER_ID = 0x20A29055,
OGL_SLI_CFR_MODE_ID = 0x20343843,
OGL_SLI_MULTICAST_ID = 0x2092D3BE,
OGL_THREAD_CONTROL_ID = 0x20C1221E,
OGL_TMON_LEVEL_ID = 0x202888C1,
@@ -33,6 +34,8 @@
ANSEL_ALLOW_ID = 0x1035DB89,
ANSEL_ALLOWLISTED_ID = 0x1085DA8A,
ANSEL_ENABLE_ID = 0x1075D972,
APPIDLE_DYNAMIC_FRL_FPS_ID = 0x10835016,
APPIDLE_DYNAMIC_FRL_THRESHOLD_TIME_ID = 0x10835017,
APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_ID = 0x104554B6,
APPLICATION_STEAM_ID_ID = 0x107CDDBC,
BATTERY_BOOST_APP_FPS_ID = 0x10115C8C,
@@ -47,6 +50,22 @@
FXAA_INDICATOR_ENABLE_ID = 0x1068FB9C,
LATENCY_INDICATOR_AUTOALIGN_ID = 0x1095F170,
MCSFRSHOWSPLIT_ID = 0x10287051,
NGX_DLAA_OVERRIDE_ID = 0x10E41DF4,
NGX_DLSSG_MULTI_FRAME_COUNT_ID = 0x104D6667,
NGX_DLSS_FG_OVERRIDE_ID = 0x10E41E03,
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1_ID = 0x10C7D57E,
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2_ID = 0x10C7D519,
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_ID = 0x10AFB76C,
NGX_DLSS_RR_MODE_ID = 0x10BD9423,
NGX_DLSS_RR_OVERRIDE_ID = 0x10E41E02,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_ID = 0x10E41DF7,
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1_ID = 0x10C7D86C,
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2_ID = 0x10C7D597,
NGX_DLSS_SR_MODE_ID = 0x10AFB768,
NGX_DLSS_SR_OVERRIDE_ID = 0x10E41E01,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_ID = 0x10E41DF3,
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1_ID = 0x10C7D684,
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2_ID = 0x10C7D82C,
NV_QUALITY_UPSCALING_ID = 0x10444444,
OPTIMUS_MAXAA_ID = 0x10F9DC83,
PHYSXINDICATOR_ID = 0x1094F16F,
@@ -74,7 +93,6 @@
VSYNC_BEHAVIOR_FLAGS_ID = 0x10FDEC23,
WKS_API_STEREO_EYES_EXCHANGE_ID = 0x11AE435C,
WKS_API_STEREO_MODE_ID = 0x11E91A61,
WKS_MEMORY_ALLOCATION_POLICY_ID = 0x11112233,
WKS_STEREO_DONGLE_SUPPORT_ID = 0x112493BD,
WKS_STEREO_SUPPORT_ID = 0x11AA9E99,
WKS_STEREO_SWAP_MODE_ID = 0x11333333,
@@ -87,6 +105,7 @@
MAXWELL_B_SAMPLE_INTERLEAVE_ID = 0x0098C1AC,
PRERENDERLIMIT_ID = 0x007BA09E,
PS_SHADERDISKCACHE_ID = 0x00198FFF,
PS_SHADERDISKCACHE_DLL_PATH_WCHAR_ID = 0x0019A002,
PS_SHADERDISKCACHE_MAX_SIZE_ID = 0x00AC8497,
PS_TEXFILTER_ANISO_OPTS2_ID = 0x00E73211,
PS_TEXFILTER_BILINEAR_IN_ANISO_ID = 0x0084CD70,
@@ -99,9 +118,9 @@
SET_VAB_DATA_ID = 0x00AB8687,
VSYNCMODE_ID = 0x00A879CF,
VSYNCTEARCONTROL_ID = 0x005A375C,
TOTAL_DWORD_SETTING_NUM = 94,
TOTAL_WSTRING_SETTING_NUM = 4,
TOTAL_SETTING_NUM = 98,
TOTAL_DWORD_SETTING_NUM = 112,
TOTAL_WSTRING_SETTING_NUM = 5,
TOTAL_SETTING_NUM = 117,
INVALID_SETTING_ID = 0xFFFFFFFF
}
@@ -114,6 +133,22 @@
OGL_AA_LINE_GAMMA_DEFAULT = OGL_AA_LINE_GAMMA_DISABLED
}
public enum EValues_OGL_CPL_GDI_COMPATIBILITY : uint {
OGL_CPL_GDI_COMPATIBILITY_PREFER_DISABLED = 0x00000000,
OGL_CPL_GDI_COMPATIBILITY_PREFER_ENABLED = 0x00000001,
OGL_CPL_GDI_COMPATIBILITY_AUTO = 0x00000002,
OGL_CPL_GDI_COMPATIBILITY_NUM_VALUES = 3,
OGL_CPL_GDI_COMPATIBILITY_DEFAULT = OGL_CPL_GDI_COMPATIBILITY_AUTO
}
public enum EValues_OGL_CPL_PREFER_DXPRESENT : uint {
OGL_CPL_PREFER_DXPRESENT_PREFER_DISABLED = 0x00000000,
OGL_CPL_PREFER_DXPRESENT_PREFER_ENABLED = 0x00000001,
OGL_CPL_PREFER_DXPRESENT_AUTO = 0x00000002,
OGL_CPL_PREFER_DXPRESENT_NUM_VALUES = 3,
OGL_CPL_PREFER_DXPRESENT_DEFAULT = OGL_CPL_PREFER_DXPRESENT_AUTO
}
public enum EValues_OGL_DEEP_COLOR_SCANOUT : uint {
OGL_DEEP_COLOR_SCANOUT_DISABLE = 0,
OGL_DEEP_COLOR_SCANOUT_ENABLE = 1,
@@ -207,14 +242,6 @@
OGL_SINGLE_BACKDEPTH_BUFFER_DEFAULT = OGL_SINGLE_BACKDEPTH_BUFFER_DISABLE
}
public enum EValues_OGL_SLI_CFR_MODE : uint {
OGL_SLI_CFR_MODE_DISABLE = 0x00,
OGL_SLI_CFR_MODE_ENABLE = 0x01,
OGL_SLI_CFR_MODE_CLASSIC_SFR = 0x02,
OGL_SLI_CFR_MODE_NUM_VALUES = 3,
OGL_SLI_CFR_MODE_DEFAULT = OGL_SLI_CFR_MODE_DISABLE
}
public enum EValues_OGL_SLI_MULTICAST : uint {
OGL_SLI_MULTICAST_DISABLE = 0x00,
OGL_SLI_MULTICAST_ENABLE = 0x01,
@@ -512,6 +539,146 @@
MCSFRSHOWSPLIT_DEFAULT = MCSFRSHOWSPLIT_DISABLED
}
public enum EValues_NGX_DLAA_OVERRIDE : uint {
NGX_DLAA_OVERRIDE_DLAA_DEFAULT = 0,
NGX_DLAA_OVERRIDE_DLAA_ON = 1,
NGX_DLAA_OVERRIDE_NUM_VALUES = 2,
NGX_DLAA_OVERRIDE_DEFAULT = NGX_DLAA_OVERRIDE_DLAA_DEFAULT
}
public enum EValues_NGX_DLSSG_MULTI_FRAME_COUNT : uint {
NGX_DLSSG_MULTI_FRAME_COUNT_MIN = 1,
NGX_DLSSG_MULTI_FRAME_COUNT_MAX = 15,
NGX_DLSSG_MULTI_FRAME_COUNT_DEFAULT = 1,
NGX_DLSSG_MULTI_FRAME_COUNT_NUM_VALUES = 3,
}
public enum EValues_NGX_DLSS_FG_OVERRIDE : uint {
NGX_DLSS_FG_OVERRIDE_OFF = 0,
NGX_DLSS_FG_OVERRIDE_ON = 1,
NGX_DLSS_FG_OVERRIDE_NUM_VALUES = 2,
NGX_DLSS_FG_OVERRIDE_DEFAULT = NGX_DLSS_FG_OVERRIDE_OFF
}
public enum EValues_NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1 : uint {
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1_DEFAULT = 0,
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1_NUM_VALUES = 1,
}
public enum EValues_NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2 : uint {
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2_DEFAULT = 0,
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2_NUM_VALUES = 1,
}
public enum EValues_NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS : uint {
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NONE = 0x0000,
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_PERF_TO_9X = 0x0001,
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NUM_VALUES = 2,
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_DEFAULT = NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NONE
}
public enum EValues_NGX_DLSS_RR_MODE : uint {
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_PERFORMANCE = 0,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_BALANCED = 1,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_QUALITY = 2,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_SNIPPET_CONTROLLED = 3,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_DLAA = 4,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_ULTRA_PERFORMANCE = 5,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_CUSTOM = 6,
NGX_DLSS_RR_MODE_NUM_VALUES = 7,
NGX_DLSS_RR_MODE_DEFAULT = NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_SNIPPET_CONTROLLED
}
public enum EValues_NGX_DLSS_RR_OVERRIDE : uint {
NGX_DLSS_RR_OVERRIDE_OFF = 0,
NGX_DLSS_RR_OVERRIDE_ON = 1,
NGX_DLSS_RR_OVERRIDE_NUM_VALUES = 2,
NGX_DLSS_RR_OVERRIDE_DEFAULT = NGX_DLSS_RR_OVERRIDE_OFF
}
public enum EValues_NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION : uint {
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_OFF = 0,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_A = 1,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_B = 2,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_C = 3,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_D = 4,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_E = 5,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_F = 6,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_G = 7,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_H = 8,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_I = 9,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_J = 10,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_K = 11,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_L = 12,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_M = 13,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_N = 14,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_O = 15,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_Latest = 0x00ffffff,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_NUM_VALUES = 17,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_DEFAULT = NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_OFF
}
public enum EValues_NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1 : uint {
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1_DEFAULT = 0,
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1_NUM_VALUES = 1,
}
public enum EValues_NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2 : uint {
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2_DEFAULT = 0,
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2_NUM_VALUES = 1,
}
public enum EValues_NGX_DLSS_SR_MODE : uint {
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_PERFORMANCE = 0,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_BALANCED = 1,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_QUALITY = 2,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_SNIPPET_CONTROLLED = 3,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_DLAA = 4,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_ULTRA_PERFORMANCE = 5,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_CUSTOM = 6,
NGX_DLSS_SR_MODE_NUM_VALUES = 7,
NGX_DLSS_SR_MODE_DEFAULT = NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_SNIPPET_CONTROLLED
}
public enum EValues_NGX_DLSS_SR_OVERRIDE : uint {
NGX_DLSS_SR_OVERRIDE_OFF = 0,
NGX_DLSS_SR_OVERRIDE_ON = 1,
NGX_DLSS_SR_OVERRIDE_NUM_VALUES = 2,
NGX_DLSS_SR_OVERRIDE_DEFAULT = NGX_DLSS_SR_OVERRIDE_OFF
}
public enum EValues_NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION : uint {
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_OFF = 0,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_A = 1,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_B = 2,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_C = 3,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_D = 4,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_E = 5,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_F = 6,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_G = 7,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_H = 8,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_I = 9,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_J = 10,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_K = 11,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_L = 12,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_M = 13,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_N = 14,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_O = 15,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_Latest = 0x00ffffff,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_NUM_VALUES = 17,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_DEFAULT = NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_OFF
}
public enum EValues_NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1 : uint {
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1_DEFAULT = 0,
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1_NUM_VALUES = 1,
}
public enum EValues_NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2 : uint {
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2_DEFAULT = 0,
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2_NUM_VALUES = 1,
}
public enum EValues_NV_QUALITY_UPSCALING : uint {
NV_QUALITY_UPSCALING_OFF = 0,
NV_QUALITY_UPSCALING_ON = 1,
@@ -554,62 +721,64 @@
}
public enum EValues_SHIM_MCCOMPAT : uint {
SHIM_MCCOMPAT_INTEGRATED = 0x00000000,
SHIM_MCCOMPAT_ENABLE = 0x00000001,
SHIM_MCCOMPAT_USER_EDITABLE = 0x00000002,
SHIM_MCCOMPAT_MASK = 0x00000003,
SHIM_MCCOMPAT_VIDEO_MASK = 0x00000004,
SHIM_MCCOMPAT_VARYING_BIT = 0x00000008,
SHIM_MCCOMPAT_AUTO_SELECT = 0x00000010,
SHIM_MCCOMPAT_OVERRIDE_BIT = 0x80000000,
SHIM_MCCOMPAT_INTEGRATED = 0x00000000U,
SHIM_MCCOMPAT_ENABLE = 0x00000001U,
SHIM_MCCOMPAT_USER_EDITABLE = 0x00000002U,
SHIM_MCCOMPAT_MASK = 0x00000003U,
SHIM_MCCOMPAT_VIDEO_MASK = 0x00000004U,
SHIM_MCCOMPAT_VARYING_BIT = 0x00000008U,
SHIM_MCCOMPAT_AUTO_SELECT = 0x00000010U,
SHIM_MCCOMPAT_OVERRIDE_BIT = 0x80000000U,
SHIM_MCCOMPAT_NUM_VALUES = 8,
SHIM_MCCOMPAT_DEFAULT = SHIM_MCCOMPAT_AUTO_SELECT
}
public enum EValues_SHIM_RENDERING_MODE : uint {
SHIM_RENDERING_MODE_INTEGRATED = 0x00000000,
SHIM_RENDERING_MODE_ENABLE = 0x00000001,
SHIM_RENDERING_MODE_USER_EDITABLE = 0x00000002,
SHIM_RENDERING_MODE_MASK = 0x00000003,
SHIM_RENDERING_MODE_VIDEO_MASK = 0x00000004,
SHIM_RENDERING_MODE_VARYING_BIT = 0x00000008,
SHIM_RENDERING_MODE_AUTO_SELECT = 0x00000010,
SHIM_RENDERING_MODE_OVERRIDE_BIT = 0x80000000,
SHIM_RENDERING_MODE_INTEGRATED = 0x00000000U,
SHIM_RENDERING_MODE_ENABLE = 0x00000001U,
SHIM_RENDERING_MODE_USER_EDITABLE = 0x00000002U,
SHIM_RENDERING_MODE_MASK = 0x00000003U,
SHIM_RENDERING_MODE_VIDEO_MASK = 0x00000004U,
SHIM_RENDERING_MODE_VARYING_BIT = 0x00000008U,
SHIM_RENDERING_MODE_AUTO_SELECT = 0x00000010U,
SHIM_RENDERING_MODE_OVERRIDE_BIT = 0x80000000U,
SHIM_RENDERING_MODE_NUM_VALUES = 8,
SHIM_RENDERING_MODE_DEFAULT = SHIM_RENDERING_MODE_AUTO_SELECT
}
public enum EValues_SHIM_RENDERING_OPTIONS : uint {
SHIM_RENDERING_OPTIONS_DEFAULT_RENDERING_MODE = 0x00000000,
SHIM_RENDERING_OPTIONS_DISABLE_ASYNC_PRESENT = 0x00000001,
SHIM_RENDERING_OPTIONS_EHSHELL_DETECT = 0x00000002,
SHIM_RENDERING_OPTIONS_FLASHPLAYER_HOST_DETECT = 0x00000004,
SHIM_RENDERING_OPTIONS_VIDEO_DRM_APP_DETECT = 0x00000008,
SHIM_RENDERING_OPTIONS_IGNORE_OVERRIDES = 0x00000010,
SHIM_RENDERING_OPTIONS_RESERVED1 = 0x00000020,
SHIM_RENDERING_OPTIONS_ENABLE_DWM_ASYNC_PRESENT = 0x00000040,
SHIM_RENDERING_OPTIONS_RESERVED2 = 0x00000080,
SHIM_RENDERING_OPTIONS_ALLOW_INHERITANCE = 0x00000100,
SHIM_RENDERING_OPTIONS_DISABLE_WRAPPERS = 0x00000200,
SHIM_RENDERING_OPTIONS_DISABLE_DXGI_WRAPPERS = 0x00000400,
SHIM_RENDERING_OPTIONS_PRUNE_UNSUPPORTED_FORMATS = 0x00000800,
SHIM_RENDERING_OPTIONS_ENABLE_ALPHA_FORMAT = 0x00001000,
SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING = 0x00002000,
SHIM_RENDERING_OPTIONS_DISABLE_CUDA = 0x00004000,
SHIM_RENDERING_OPTIONS_ALLOW_CP_CAPS_FOR_VIDEO = 0x00008000,
SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING_FWD_OPTIMUS = 0x00010000,
SHIM_RENDERING_OPTIONS_DISABLE_DURING_SECURE_BOOT = 0x00020000,
SHIM_RENDERING_OPTIONS_INVERT_FOR_QUADRO = 0x00040000,
SHIM_RENDERING_OPTIONS_INVERT_FOR_MSHYBRID = 0x00080000,
SHIM_RENDERING_OPTIONS_REGISTER_PROCESS_ENABLE_GOLD = 0x00100000,
SHIM_RENDERING_OPTIONS_HANDLE_WINDOWED_MODE_PERF_OPT = 0x00200000,
SHIM_RENDERING_OPTIONS_HANDLE_WIN7_ASYNC_RUNTIME_BUG = 0x00400000,
SHIM_RENDERING_OPTIONS_EXPLICIT_ADAPTER_OPTED_BY_APP = 0x00800000,
SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x01000000,
SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x02000000,
SHIM_RENDERING_OPTIONS_DISABLE_TURING_POWER_POLICY = 0x04000000,
SHIM_RENDERING_OPTIONS_NUM_VALUES = 28,
SHIM_RENDERING_OPTIONS_DEFAULT = 0x00000000
SHIM_RENDERING_OPTIONS_DEFAULT_RENDERING_MODE = 0x00000000U,
SHIM_RENDERING_OPTIONS_DISABLE_ASYNC_PRESENT = 0x00000001U,
SHIM_RENDERING_OPTIONS_EHSHELL_DETECT = 0x00000002U,
SHIM_RENDERING_OPTIONS_FLASHPLAYER_HOST_DETECT = 0x00000004U,
SHIM_RENDERING_OPTIONS_VIDEO_DRM_APP_DETECT = 0x00000008U,
SHIM_RENDERING_OPTIONS_IGNORE_OVERRIDES = 0x00000010U,
SHIM_RENDERING_OPTIONS_RESERVED1 = 0x00000020U,
SHIM_RENDERING_OPTIONS_ENABLE_DWM_ASYNC_PRESENT = 0x00000040U,
SHIM_RENDERING_OPTIONS_RESERVED2 = 0x00000080U,
SHIM_RENDERING_OPTIONS_ALLOW_INHERITANCE = 0x00000100U,
SHIM_RENDERING_OPTIONS_DISABLE_WRAPPERS = 0x00000200U,
SHIM_RENDERING_OPTIONS_DISABLE_DXGI_WRAPPERS = 0x00000400U,
SHIM_RENDERING_OPTIONS_PRUNE_UNSUPPORTED_FORMATS = 0x00000800U,
SHIM_RENDERING_OPTIONS_ENABLE_ALPHA_FORMAT = 0x00001000U,
SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING = 0x00002000U,
SHIM_RENDERING_OPTIONS_DISABLE_CUDA = 0x00004000U,
SHIM_RENDERING_OPTIONS_ALLOW_CP_CAPS_FOR_VIDEO = 0x00008000U,
SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING_FWD_OPTIMUS = 0x00010000U,
SHIM_RENDERING_OPTIONS_DISABLE_DURING_SECURE_BOOT = 0x00020000U,
SHIM_RENDERING_OPTIONS_INVERT_FOR_QUADRO = 0x00040000U,
SHIM_RENDERING_OPTIONS_INVERT_FOR_MSHYBRID = 0x00080000U,
SHIM_RENDERING_OPTIONS_REGISTER_PROCESS_ENABLE_GOLD = 0x00100000U,
SHIM_RENDERING_OPTIONS_HANDLE_WINDOWED_MODE_PERF_OPT = 0x00200000U,
SHIM_RENDERING_OPTIONS_HANDLE_WIN7_ASYNC_RUNTIME_BUG = 0x00400000U,
SHIM_RENDERING_OPTIONS_EXPLICIT_ADAPTER_OPTED_BY_APP = 0x00800000U,
SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x01000000U,
SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x02000000U,
SHIM_RENDERING_OPTIONS_DISABLE_TURING_POWER_POLICY = 0x04000000U,
SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH_MDM = 0x08000000U,
SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH_MDM = 0x10000000U,
SHIM_RENDERING_OPTIONS_NUM_VALUES = 30,
SHIM_RENDERING_OPTIONS_DEFAULT = 0x00000000U
}
public enum EValues_SLI_GPU_COUNT : uint {
@@ -792,14 +961,6 @@
WKS_API_STEREO_MODE_DEFAULT = WKS_API_STEREO_MODE_SHUTTER_GLASSES
}
public enum EValues_WKS_MEMORY_ALLOCATION_POLICY : uint {
WKS_MEMORY_ALLOCATION_POLICY_AS_NEEDED = 0x0,
WKS_MEMORY_ALLOCATION_POLICY_MODERATE_PRE_ALLOCATION = 0x1,
WKS_MEMORY_ALLOCATION_POLICY_AGGRESSIVE_PRE_ALLOCATION = 0x2,
WKS_MEMORY_ALLOCATION_POLICY_NUM_VALUES = 3,
WKS_MEMORY_ALLOCATION_POLICY_DEFAULT = WKS_MEMORY_ALLOCATION_POLICY_AS_NEEDED
}
public enum EValues_WKS_STEREO_DONGLE_SUPPORT : uint {
WKS_STEREO_DONGLE_SUPPORT_OFF = 0,
WKS_STEREO_DONGLE_SUPPORT_DAC = 1,
@@ -888,7 +1049,7 @@
PS_SHADERDISKCACHE_MAX_SIZE_MIN = 0x0,
PS_SHADERDISKCACHE_MAX_SIZE_MAX = 0xffffffff,
PS_SHADERDISKCACHE_MAX_SIZE_NUM_VALUES = 2,
PS_SHADERDISKCACHE_MAX_SIZE_DEFAULT = 0x1000
PS_SHADERDISKCACHE_MAX_SIZE_DEFAULT = 0x2000
}
public enum EValues_PS_TEXFILTER_ANISO_OPTS2 : uint {

View File

@@ -1,46 +1,36 @@
/***************************************************************************\
|* *|
|* Copyright NVIDIA Corporation. All rights reserved. *|
|* *|
|* NOTICE TO USER: *|
|* *|
|* This source code is subject to NVIDIA ownership rights under U.S. *|
|* and international Copyright laws. Users and possessors of this *|
|* source code are hereby granted a nonexclusive, royalty-free *|
|* license to use this code in individual and commercial software. *|
|* *|
|* NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE *|
|* CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR *|
|* IMPLIED WARRANTY OF ANY KIND. NVIDIA DISCLAIMS ALL WARRANTIES WITH *|
|* REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF *|
|* MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR *|
|* PURPOSE. IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, *|
|* INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES *|
|* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN *|
|* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING *|
|* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE *|
|* CODE. *|
|* *|
|* U.S. Government End Users. This source code is a "commercial item" *|
|* as that term is defined at 48 C.F.R. 2.101 (OCT 1995), consisting *|
|* of "commercial computer software" and "commercial computer software *|
|* documentation" as such terms are used in 48 C.F.R. 12.212 (SEPT 1995) *|
|* and is provided to the U.S. Government only as a commercial end item. *|
|* Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through *|
|* 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the *|
|* source code with only those rights set forth herein. *|
|* *|
|* Any use of this source code in individual and commercial software must *|
|* include, in the user documentation and internal comments to the code, *|
|* the above Disclaimer and U.S. Government End Users Notice. *|
|* *|
|* *|
\***************************************************************************/
/*********************************************************************************************************\
|* *|
|* SPDX-FileCopyrightText: Copyright (c) 2019-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. *|
|* SPDX-License-Identifier: MIT *|
|* *|
|* Permission is hereby granted, free of charge, to any person obtaining a *|
|* copy of this software and associated documentation files (the "Software"), *|
|* to deal in the Software without restriction, including without limitation *|
|* the rights to use, copy, modify, merge, publish, distribute, sublicense, *|
|* and/or sell copies of the Software, and to permit persons to whom the *|
|* Software is furnished to do so, subject to the following conditions: *|
|* *|
|* The above copyright notice and this permission notice shall be included in *|
|* all copies or substantial portions of the Software. *|
|* *|
|* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *|
|* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *|
|* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *|
|* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *|
|* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *|
|* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *|
|* DEALINGS IN THE SOFTWARE. *|
|* *|
|* *|
\*********************************************************************************************************/
#ifndef _NVAPI_DRIVER_SETTINGS_H_
#define _NVAPI_DRIVER_SETTINGS_H_
#define OGL_AA_LINE_GAMMA_STRING L"Antialiasing - Line gamma"
#define OGL_CPL_GDI_COMPATIBILITY_STRING L"OpenGL GDI compatibility"
#define OGL_CPL_PREFER_DXPRESENT_STRING L"Vulkan/OpenGL present method"
#define OGL_DEEP_COLOR_SCANOUT_STRING L"Deep color for 3D applications"
#define OGL_DEFAULT_SWAP_INTERVAL_STRING L"OpenGL default swap interval"
#define OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_STRING L"OpenGL default swap interval fraction"
@@ -55,7 +45,6 @@
#define OGL_OVERLAY_SUPPORT_STRING L"Enable overlay"
#define OGL_QUALITY_ENHANCEMENTS_STRING L"High level control of the rendering quality on OpenGL"
#define OGL_SINGLE_BACKDEPTH_BUFFER_STRING L"Unified back/depth buffer"
#define OGL_SLI_CFR_MODE_STRING L"Set CFR mode"
#define OGL_SLI_MULTICAST_STRING L"Enable NV_gpu_multicast extension"
#define OGL_THREAD_CONTROL_STRING L"Threaded optimization"
#define OGL_TMON_LEVEL_STRING L"Event Log Tmon Severity Threshold"
@@ -72,6 +61,8 @@
#define ANSEL_ALLOW_STRING L"NVIDIA Predefined Ansel Usage"
#define ANSEL_ALLOWLISTED_STRING L"Ansel flags for enabled applications"
#define ANSEL_ENABLE_STRING L"Enable Ansel"
#define APPIDLE_DYNAMIC_FRL_FPS_STRING L"Idle Application Max FPS Limit"
#define APPIDLE_DYNAMIC_FRL_THRESHOLD_TIME_STRING L"Idle Application Threshold Time out in seconds"
#define APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_STRING L"Application Profile Notification Popup Timeout"
#define APPLICATION_STEAM_ID_STRING L"Steam Application ID"
#define BATTERY_BOOST_APP_FPS_STRING L"Battery Boost Application FPS"
@@ -86,6 +77,22 @@
#define FXAA_INDICATOR_ENABLE_STRING L"Enable FXAA Indicator"
#define LATENCY_INDICATOR_AUTOALIGN_STRING L"Autoalign flash indicator"
#define MCSFRSHOWSPLIT_STRING L"SLI indicator"
#define NGX_DLAA_OVERRIDE_STRING L"Override DLSS mode to be DLAA"
#define NGX_DLSSG_MULTI_FRAME_COUNT_STRING L"Override DLSSG multi-frame count"
#define NGX_DLSS_FG_OVERRIDE_STRING L"Enable DLSS-FG override"
#define NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1_STRING L"Override reserved key 1 for FG"
#define NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2_STRING L"Override reserved key 2 for FG"
#define NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_STRING L"Override DLSS performance mode to be ultra-perfomance"
#define NGX_DLSS_RR_MODE_STRING L"Override DLSS-RR performance mode"
#define NGX_DLSS_RR_OVERRIDE_STRING L"Enable DLSS-RR override"
#define NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_STRING L"Override DLSS-RR preset"
#define NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1_STRING L"Override reserved key 1 for RR"
#define NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2_STRING L"Override reserved key 2 for RR"
#define NGX_DLSS_SR_MODE_STRING L"Override DLSS-SR performance mode"
#define NGX_DLSS_SR_OVERRIDE_STRING L"Enable DLSS-SR override"
#define NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_STRING L"Override DLSS-SR presets"
#define NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1_STRING L"Override reserved key 1 for SR"
#define NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2_STRING L"Override reserved key 2 for SR"
#define NV_QUALITY_UPSCALING_STRING L"NVIDIA Quality upscaling"
#define OPTIMUS_MAXAA_STRING L"Maximum AA samples allowed for a given application"
#define PHYSXINDICATOR_STRING L"Display the PhysX indicator"
@@ -113,7 +120,6 @@
#define VSYNC_BEHAVIOR_FLAGS_STRING L"Vsync - Behavior Flags"
#define WKS_API_STEREO_EYES_EXCHANGE_STRING L"Stereo - Swap eyes"
#define WKS_API_STEREO_MODE_STRING L"Stereo - Display mode"
#define WKS_MEMORY_ALLOCATION_POLICY_STRING L"Memory Allocation Policy"
#define WKS_STEREO_DONGLE_SUPPORT_STRING L"Stereo - Dongle Support"
#define WKS_STEREO_SUPPORT_STRING L"Stereo - Enable"
#define WKS_STEREO_SWAP_MODE_STRING L"Stereo - swap mode"
@@ -126,6 +132,7 @@
#define MAXWELL_B_SAMPLE_INTERLEAVE_STRING L"Enable sample interleaving (MFAA)"
#define PRERENDERLIMIT_STRING L"Maximum pre-rendered frames"
#define PS_SHADERDISKCACHE_STRING L"Shader Cache"
#define PS_SHADERDISKCACHE_DLL_PATH_WCHAR_STRING L"shader cache path to dll"
#define PS_SHADERDISKCACHE_MAX_SIZE_STRING L"Shader disk cache maximum size"
#define PS_TEXFILTER_ANISO_OPTS2_STRING L"Texture filtering - Anisotropic sample optimization"
#define PS_TEXFILTER_BILINEAR_IN_ANISO_STRING L"Texture filtering - Anisotropic filter optimization"
@@ -141,6 +148,8 @@
enum ESetting {
OGL_AA_LINE_GAMMA_ID = 0x2089BF6C,
OGL_CPL_GDI_COMPATIBILITY_ID = 0x2072C5A3,
OGL_CPL_PREFER_DXPRESENT_ID = 0x20D690F8,
OGL_DEEP_COLOR_SCANOUT_ID = 0x2097C2F6,
OGL_DEFAULT_SWAP_INTERVAL_ID = 0x206A6582,
OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_ID = 0x206C4581,
@@ -155,7 +164,6 @@ enum ESetting {
OGL_OVERLAY_SUPPORT_ID = 0x206C28C4,
OGL_QUALITY_ENHANCEMENTS_ID = 0x20797D6C,
OGL_SINGLE_BACKDEPTH_BUFFER_ID = 0x20A29055,
OGL_SLI_CFR_MODE_ID = 0x20343843,
OGL_SLI_MULTICAST_ID = 0x2092D3BE,
OGL_THREAD_CONTROL_ID = 0x20C1221E,
OGL_TMON_LEVEL_ID = 0x202888C1,
@@ -172,6 +180,8 @@ enum ESetting {
ANSEL_ALLOW_ID = 0x1035DB89,
ANSEL_ALLOWLISTED_ID = 0x1085DA8A,
ANSEL_ENABLE_ID = 0x1075D972,
APPIDLE_DYNAMIC_FRL_FPS_ID = 0x10835016,
APPIDLE_DYNAMIC_FRL_THRESHOLD_TIME_ID = 0x10835017,
APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_ID = 0x104554B6,
APPLICATION_STEAM_ID_ID = 0x107CDDBC,
BATTERY_BOOST_APP_FPS_ID = 0x10115C8C,
@@ -186,6 +196,22 @@ enum ESetting {
FXAA_INDICATOR_ENABLE_ID = 0x1068FB9C,
LATENCY_INDICATOR_AUTOALIGN_ID = 0x1095F170,
MCSFRSHOWSPLIT_ID = 0x10287051,
NGX_DLAA_OVERRIDE_ID = 0x10E41DF4,
NGX_DLSSG_MULTI_FRAME_COUNT_ID = 0x104D6667,
NGX_DLSS_FG_OVERRIDE_ID = 0x10E41E03,
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1_ID = 0x10C7D57E,
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2_ID = 0x10C7D519,
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_ID = 0x10AFB76C,
NGX_DLSS_RR_MODE_ID = 0x10BD9423,
NGX_DLSS_RR_OVERRIDE_ID = 0x10E41E02,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_ID = 0x10E41DF7,
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1_ID = 0x10C7D86C,
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2_ID = 0x10C7D597,
NGX_DLSS_SR_MODE_ID = 0x10AFB768,
NGX_DLSS_SR_OVERRIDE_ID = 0x10E41E01,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_ID = 0x10E41DF3,
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1_ID = 0x10C7D684,
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2_ID = 0x10C7D82C,
NV_QUALITY_UPSCALING_ID = 0x10444444,
OPTIMUS_MAXAA_ID = 0x10F9DC83,
PHYSXINDICATOR_ID = 0x1094F16F,
@@ -213,7 +239,6 @@ enum ESetting {
VSYNC_BEHAVIOR_FLAGS_ID = 0x10FDEC23,
WKS_API_STEREO_EYES_EXCHANGE_ID = 0x11AE435C,
WKS_API_STEREO_MODE_ID = 0x11E91A61,
WKS_MEMORY_ALLOCATION_POLICY_ID = 0x11112233,
WKS_STEREO_DONGLE_SUPPORT_ID = 0x112493BD,
WKS_STEREO_SUPPORT_ID = 0x11AA9E99,
WKS_STEREO_SWAP_MODE_ID = 0x11333333,
@@ -226,6 +251,7 @@ enum ESetting {
MAXWELL_B_SAMPLE_INTERLEAVE_ID = 0x0098C1AC,
PRERENDERLIMIT_ID = 0x007BA09E,
PS_SHADERDISKCACHE_ID = 0x00198FFF,
PS_SHADERDISKCACHE_DLL_PATH_WCHAR_ID = 0x0019A002,
PS_SHADERDISKCACHE_MAX_SIZE_ID = 0x00AC8497,
PS_TEXFILTER_ANISO_OPTS2_ID = 0x00E73211,
PS_TEXFILTER_BILINEAR_IN_ANISO_ID = 0x0084CD70,
@@ -238,9 +264,9 @@ enum ESetting {
SET_VAB_DATA_ID = 0x00AB8687,
VSYNCMODE_ID = 0x00A879CF,
VSYNCTEARCONTROL_ID = 0x005A375C,
TOTAL_DWORD_SETTING_NUM = 94,
TOTAL_WSTRING_SETTING_NUM = 4,
TOTAL_SETTING_NUM = 98,
TOTAL_DWORD_SETTING_NUM = 112,
TOTAL_WSTRING_SETTING_NUM = 5,
TOTAL_SETTING_NUM = 117,
INVALID_SETTING_ID = 0xFFFFFFFF
};
@@ -253,6 +279,22 @@ enum EValues_OGL_AA_LINE_GAMMA {
OGL_AA_LINE_GAMMA_DEFAULT = OGL_AA_LINE_GAMMA_DISABLED
};
enum EValues_OGL_CPL_GDI_COMPATIBILITY {
OGL_CPL_GDI_COMPATIBILITY_PREFER_DISABLED = 0x00000000,
OGL_CPL_GDI_COMPATIBILITY_PREFER_ENABLED = 0x00000001,
OGL_CPL_GDI_COMPATIBILITY_AUTO = 0x00000002,
OGL_CPL_GDI_COMPATIBILITY_NUM_VALUES = 3,
OGL_CPL_GDI_COMPATIBILITY_DEFAULT = OGL_CPL_GDI_COMPATIBILITY_AUTO
};
enum EValues_OGL_CPL_PREFER_DXPRESENT {
OGL_CPL_PREFER_DXPRESENT_PREFER_DISABLED = 0x00000000,
OGL_CPL_PREFER_DXPRESENT_PREFER_ENABLED = 0x00000001,
OGL_CPL_PREFER_DXPRESENT_AUTO = 0x00000002,
OGL_CPL_PREFER_DXPRESENT_NUM_VALUES = 3,
OGL_CPL_PREFER_DXPRESENT_DEFAULT = OGL_CPL_PREFER_DXPRESENT_AUTO
};
enum EValues_OGL_DEEP_COLOR_SCANOUT {
OGL_DEEP_COLOR_SCANOUT_DISABLE = 0,
OGL_DEEP_COLOR_SCANOUT_ENABLE = 1,
@@ -351,14 +393,6 @@ enum EValues_OGL_SINGLE_BACKDEPTH_BUFFER {
OGL_SINGLE_BACKDEPTH_BUFFER_DEFAULT = OGL_SINGLE_BACKDEPTH_BUFFER_DISABLE
};
enum EValues_OGL_SLI_CFR_MODE {
OGL_SLI_CFR_MODE_DISABLE = 0x00,
OGL_SLI_CFR_MODE_ENABLE = 0x01,
OGL_SLI_CFR_MODE_CLASSIC_SFR = 0x02,
OGL_SLI_CFR_MODE_NUM_VALUES = 3,
OGL_SLI_CFR_MODE_DEFAULT = OGL_SLI_CFR_MODE_DISABLE
};
enum EValues_OGL_SLI_MULTICAST {
OGL_SLI_MULTICAST_DISABLE = 0x00,
OGL_SLI_MULTICAST_ENABLE = 0x01,
@@ -664,6 +698,146 @@ enum EValues_MCSFRSHOWSPLIT {
MCSFRSHOWSPLIT_DEFAULT = MCSFRSHOWSPLIT_DISABLED
};
enum EValues_NGX_DLAA_OVERRIDE {
NGX_DLAA_OVERRIDE_DLAA_DEFAULT = 0,
NGX_DLAA_OVERRIDE_DLAA_ON = 1,
NGX_DLAA_OVERRIDE_NUM_VALUES = 2,
NGX_DLAA_OVERRIDE_DEFAULT = NGX_DLAA_OVERRIDE_DLAA_DEFAULT
};
enum EValues_NGX_DLSSG_MULTI_FRAME_COUNT {
NGX_DLSSG_MULTI_FRAME_COUNT_MIN = 1,
NGX_DLSSG_MULTI_FRAME_COUNT_MAX = 15,
NGX_DLSSG_MULTI_FRAME_COUNT_DEFAULT = 1,
NGX_DLSSG_MULTI_FRAME_COUNT_NUM_VALUES = 3,
};
enum EValues_NGX_DLSS_FG_OVERRIDE {
NGX_DLSS_FG_OVERRIDE_OFF = 0,
NGX_DLSS_FG_OVERRIDE_ON = 1,
NGX_DLSS_FG_OVERRIDE_NUM_VALUES = 2,
NGX_DLSS_FG_OVERRIDE_DEFAULT = NGX_DLSS_FG_OVERRIDE_OFF
};
enum EValues_NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1 {
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1_DEFAULT = 0,
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY1_NUM_VALUES = 1,
};
enum EValues_NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2 {
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2_DEFAULT = 0,
NGX_DLSS_FG_OVERRIDE_RESERVED_KEY2_NUM_VALUES = 1,
};
enum EValues_NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS {
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NONE = 0x0000,
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_PERF_TO_9X = 0x0001,
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NUM_VALUES = 2,
NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_DEFAULT = NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NGX_DLSS_OVERRIDE_OPTIMAL_SETTINGS_NONE
};
enum EValues_NGX_DLSS_RR_MODE {
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_PERFORMANCE = 0,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_BALANCED = 1,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_QUALITY = 2,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_SNIPPET_CONTROLLED = 3,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_DLAA = 4,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_ULTRA_PERFORMANCE = 5,
NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_CUSTOM = 6,
NGX_DLSS_RR_MODE_NUM_VALUES = 7,
NGX_DLSS_RR_MODE_DEFAULT = NGX_DLSS_RR_MODE_NGX_DLSS_RR_MODE_SNIPPET_CONTROLLED
};
enum EValues_NGX_DLSS_RR_OVERRIDE {
NGX_DLSS_RR_OVERRIDE_OFF = 0,
NGX_DLSS_RR_OVERRIDE_ON = 1,
NGX_DLSS_RR_OVERRIDE_NUM_VALUES = 2,
NGX_DLSS_RR_OVERRIDE_DEFAULT = NGX_DLSS_RR_OVERRIDE_OFF
};
enum EValues_NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION {
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_OFF = 0,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_A = 1,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_B = 2,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_C = 3,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_D = 4,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_E = 5,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_F = 6,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_G = 7,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_H = 8,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_I = 9,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_J = 10,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_K = 11,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_L = 12,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_M = 13,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_N = 14,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_O = 15,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_Latest = 0x00ffffff,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_NUM_VALUES = 17,
NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_DEFAULT = NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION_OFF
};
enum EValues_NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1 {
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1_DEFAULT = 0,
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY1_NUM_VALUES = 1,
};
enum EValues_NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2 {
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2_DEFAULT = 0,
NGX_DLSS_RR_OVERRIDE_RESERVED_KEY2_NUM_VALUES = 1,
};
enum EValues_NGX_DLSS_SR_MODE {
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_PERFORMANCE = 0,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_BALANCED = 1,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_QUALITY = 2,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_SNIPPET_CONTROLLED = 3,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_DLAA = 4,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_ULTRA_PERFORMANCE = 5,
NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_CUSTOM = 6,
NGX_DLSS_SR_MODE_NUM_VALUES = 7,
NGX_DLSS_SR_MODE_DEFAULT = NGX_DLSS_SR_MODE_NGX_DLSS_SR_MODE_SNIPPET_CONTROLLED
};
enum EValues_NGX_DLSS_SR_OVERRIDE {
NGX_DLSS_SR_OVERRIDE_OFF = 0,
NGX_DLSS_SR_OVERRIDE_ON = 1,
NGX_DLSS_SR_OVERRIDE_NUM_VALUES = 2,
NGX_DLSS_SR_OVERRIDE_DEFAULT = NGX_DLSS_SR_OVERRIDE_OFF
};
enum EValues_NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION {
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_OFF = 0,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_A = 1,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_B = 2,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_C = 3,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_D = 4,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_E = 5,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_F = 6,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_G = 7,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_H = 8,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_I = 9,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_J = 10,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_K = 11,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_L = 12,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_M = 13,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_N = 14,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_O = 15,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_RENDER_PRESET_Latest = 0x00ffffff,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_NUM_VALUES = 17,
NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_DEFAULT = NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION_OFF
};
enum EValues_NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1 {
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1_DEFAULT = 0,
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY1_NUM_VALUES = 1,
};
enum EValues_NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2 {
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2_DEFAULT = 0,
NGX_DLSS_SR_OVERRIDE_RESERVED_KEY2_NUM_VALUES = 1,
};
enum EValues_NV_QUALITY_UPSCALING {
NV_QUALITY_UPSCALING_OFF = 0,
NV_QUALITY_UPSCALING_ON = 1,
@@ -706,62 +880,64 @@ enum EValues_PREVENT_UI_AF_OVERRIDE {
};
enum EValues_SHIM_MCCOMPAT {
SHIM_MCCOMPAT_INTEGRATED = 0x00000000,
SHIM_MCCOMPAT_ENABLE = 0x00000001,
SHIM_MCCOMPAT_USER_EDITABLE = 0x00000002,
SHIM_MCCOMPAT_MASK = 0x00000003,
SHIM_MCCOMPAT_VIDEO_MASK = 0x00000004,
SHIM_MCCOMPAT_VARYING_BIT = 0x00000008,
SHIM_MCCOMPAT_AUTO_SELECT = 0x00000010,
SHIM_MCCOMPAT_OVERRIDE_BIT = 0x80000000,
SHIM_MCCOMPAT_INTEGRATED = 0x00000000U,
SHIM_MCCOMPAT_ENABLE = 0x00000001U,
SHIM_MCCOMPAT_USER_EDITABLE = 0x00000002U,
SHIM_MCCOMPAT_MASK = 0x00000003U,
SHIM_MCCOMPAT_VIDEO_MASK = 0x00000004U,
SHIM_MCCOMPAT_VARYING_BIT = 0x00000008U,
SHIM_MCCOMPAT_AUTO_SELECT = 0x00000010U,
SHIM_MCCOMPAT_OVERRIDE_BIT = 0x80000000U,
SHIM_MCCOMPAT_NUM_VALUES = 8,
SHIM_MCCOMPAT_DEFAULT = SHIM_MCCOMPAT_AUTO_SELECT
};
enum EValues_SHIM_RENDERING_MODE {
SHIM_RENDERING_MODE_INTEGRATED = 0x00000000,
SHIM_RENDERING_MODE_ENABLE = 0x00000001,
SHIM_RENDERING_MODE_USER_EDITABLE = 0x00000002,
SHIM_RENDERING_MODE_MASK = 0x00000003,
SHIM_RENDERING_MODE_VIDEO_MASK = 0x00000004,
SHIM_RENDERING_MODE_VARYING_BIT = 0x00000008,
SHIM_RENDERING_MODE_AUTO_SELECT = 0x00000010,
SHIM_RENDERING_MODE_OVERRIDE_BIT = 0x80000000,
SHIM_RENDERING_MODE_INTEGRATED = 0x00000000U,
SHIM_RENDERING_MODE_ENABLE = 0x00000001U,
SHIM_RENDERING_MODE_USER_EDITABLE = 0x00000002U,
SHIM_RENDERING_MODE_MASK = 0x00000003U,
SHIM_RENDERING_MODE_VIDEO_MASK = 0x00000004U,
SHIM_RENDERING_MODE_VARYING_BIT = 0x00000008U,
SHIM_RENDERING_MODE_AUTO_SELECT = 0x00000010U,
SHIM_RENDERING_MODE_OVERRIDE_BIT = 0x80000000U,
SHIM_RENDERING_MODE_NUM_VALUES = 8,
SHIM_RENDERING_MODE_DEFAULT = SHIM_RENDERING_MODE_AUTO_SELECT
};
enum EValues_SHIM_RENDERING_OPTIONS {
SHIM_RENDERING_OPTIONS_DEFAULT_RENDERING_MODE = 0x00000000,
SHIM_RENDERING_OPTIONS_DISABLE_ASYNC_PRESENT = 0x00000001,
SHIM_RENDERING_OPTIONS_EHSHELL_DETECT = 0x00000002,
SHIM_RENDERING_OPTIONS_FLASHPLAYER_HOST_DETECT = 0x00000004,
SHIM_RENDERING_OPTIONS_VIDEO_DRM_APP_DETECT = 0x00000008,
SHIM_RENDERING_OPTIONS_IGNORE_OVERRIDES = 0x00000010,
SHIM_RENDERING_OPTIONS_RESERVED1 = 0x00000020,
SHIM_RENDERING_OPTIONS_ENABLE_DWM_ASYNC_PRESENT = 0x00000040,
SHIM_RENDERING_OPTIONS_RESERVED2 = 0x00000080,
SHIM_RENDERING_OPTIONS_ALLOW_INHERITANCE = 0x00000100,
SHIM_RENDERING_OPTIONS_DISABLE_WRAPPERS = 0x00000200,
SHIM_RENDERING_OPTIONS_DISABLE_DXGI_WRAPPERS = 0x00000400,
SHIM_RENDERING_OPTIONS_PRUNE_UNSUPPORTED_FORMATS = 0x00000800,
SHIM_RENDERING_OPTIONS_ENABLE_ALPHA_FORMAT = 0x00001000,
SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING = 0x00002000,
SHIM_RENDERING_OPTIONS_DISABLE_CUDA = 0x00004000,
SHIM_RENDERING_OPTIONS_ALLOW_CP_CAPS_FOR_VIDEO = 0x00008000,
SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING_FWD_OPTIMUS = 0x00010000,
SHIM_RENDERING_OPTIONS_DISABLE_DURING_SECURE_BOOT = 0x00020000,
SHIM_RENDERING_OPTIONS_INVERT_FOR_QUADRO = 0x00040000,
SHIM_RENDERING_OPTIONS_INVERT_FOR_MSHYBRID = 0x00080000,
SHIM_RENDERING_OPTIONS_REGISTER_PROCESS_ENABLE_GOLD = 0x00100000,
SHIM_RENDERING_OPTIONS_HANDLE_WINDOWED_MODE_PERF_OPT = 0x00200000,
SHIM_RENDERING_OPTIONS_HANDLE_WIN7_ASYNC_RUNTIME_BUG = 0x00400000,
SHIM_RENDERING_OPTIONS_EXPLICIT_ADAPTER_OPTED_BY_APP = 0x00800000,
SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x01000000,
SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x02000000,
SHIM_RENDERING_OPTIONS_DISABLE_TURING_POWER_POLICY = 0x04000000,
SHIM_RENDERING_OPTIONS_NUM_VALUES = 28,
SHIM_RENDERING_OPTIONS_DEFAULT = 0x00000000
SHIM_RENDERING_OPTIONS_DEFAULT_RENDERING_MODE = 0x00000000U,
SHIM_RENDERING_OPTIONS_DISABLE_ASYNC_PRESENT = 0x00000001U,
SHIM_RENDERING_OPTIONS_EHSHELL_DETECT = 0x00000002U,
SHIM_RENDERING_OPTIONS_FLASHPLAYER_HOST_DETECT = 0x00000004U,
SHIM_RENDERING_OPTIONS_VIDEO_DRM_APP_DETECT = 0x00000008U,
SHIM_RENDERING_OPTIONS_IGNORE_OVERRIDES = 0x00000010U,
SHIM_RENDERING_OPTIONS_RESERVED1 = 0x00000020U,
SHIM_RENDERING_OPTIONS_ENABLE_DWM_ASYNC_PRESENT = 0x00000040U,
SHIM_RENDERING_OPTIONS_RESERVED2 = 0x00000080U,
SHIM_RENDERING_OPTIONS_ALLOW_INHERITANCE = 0x00000100U,
SHIM_RENDERING_OPTIONS_DISABLE_WRAPPERS = 0x00000200U,
SHIM_RENDERING_OPTIONS_DISABLE_DXGI_WRAPPERS = 0x00000400U,
SHIM_RENDERING_OPTIONS_PRUNE_UNSUPPORTED_FORMATS = 0x00000800U,
SHIM_RENDERING_OPTIONS_ENABLE_ALPHA_FORMAT = 0x00001000U,
SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING = 0x00002000U,
SHIM_RENDERING_OPTIONS_DISABLE_CUDA = 0x00004000U,
SHIM_RENDERING_OPTIONS_ALLOW_CP_CAPS_FOR_VIDEO = 0x00008000U,
SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING_FWD_OPTIMUS = 0x00010000U,
SHIM_RENDERING_OPTIONS_DISABLE_DURING_SECURE_BOOT = 0x00020000U,
SHIM_RENDERING_OPTIONS_INVERT_FOR_QUADRO = 0x00040000U,
SHIM_RENDERING_OPTIONS_INVERT_FOR_MSHYBRID = 0x00080000U,
SHIM_RENDERING_OPTIONS_REGISTER_PROCESS_ENABLE_GOLD = 0x00100000U,
SHIM_RENDERING_OPTIONS_HANDLE_WINDOWED_MODE_PERF_OPT = 0x00200000U,
SHIM_RENDERING_OPTIONS_HANDLE_WIN7_ASYNC_RUNTIME_BUG = 0x00400000U,
SHIM_RENDERING_OPTIONS_EXPLICIT_ADAPTER_OPTED_BY_APP = 0x00800000U,
SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x01000000U,
SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x02000000U,
SHIM_RENDERING_OPTIONS_DISABLE_TURING_POWER_POLICY = 0x04000000U,
SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH_MDM = 0x08000000U,
SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH_MDM = 0x10000000U,
SHIM_RENDERING_OPTIONS_NUM_VALUES = 30,
SHIM_RENDERING_OPTIONS_DEFAULT = 0x00000000U
};
enum EValues_SLI_GPU_COUNT {
@@ -944,14 +1120,6 @@ enum EValues_WKS_API_STEREO_MODE {
WKS_API_STEREO_MODE_DEFAULT = WKS_API_STEREO_MODE_SHUTTER_GLASSES
};
enum EValues_WKS_MEMORY_ALLOCATION_POLICY {
WKS_MEMORY_ALLOCATION_POLICY_AS_NEEDED = 0x0,
WKS_MEMORY_ALLOCATION_POLICY_MODERATE_PRE_ALLOCATION = 0x1,
WKS_MEMORY_ALLOCATION_POLICY_AGGRESSIVE_PRE_ALLOCATION = 0x2,
WKS_MEMORY_ALLOCATION_POLICY_NUM_VALUES = 3,
WKS_MEMORY_ALLOCATION_POLICY_DEFAULT = WKS_MEMORY_ALLOCATION_POLICY_AS_NEEDED
};
enum EValues_WKS_STEREO_DONGLE_SUPPORT {
WKS_STEREO_DONGLE_SUPPORT_OFF = 0,
WKS_STEREO_DONGLE_SUPPORT_DAC = 1,
@@ -1040,7 +1208,7 @@ enum EValues_PS_SHADERDISKCACHE_MAX_SIZE {
PS_SHADERDISKCACHE_MAX_SIZE_MIN = 0x0,
PS_SHADERDISKCACHE_MAX_SIZE_MAX = 0xffffffff,
PS_SHADERDISKCACHE_MAX_SIZE_NUM_VALUES = 2,
PS_SHADERDISKCACHE_MAX_SIZE_DEFAULT = 0x1000
PS_SHADERDISKCACHE_MAX_SIZE_DEFAULT = 0x2000
};
enum EValues_PS_TEXFILTER_ANISO_OPTS2 {
@@ -1152,4 +1320,3 @@ typedef struct _SettingWSTRINGNameString {
#endif // _NVAPI_DRIVER_SETTINGS_H_

View File

@@ -424,13 +424,17 @@ namespace nspector.Native.NVAPI2
}
}
private static void GetDelegate<T>(uint id, out T newDelegate) where T : class
private static void GetDelegate<T>(uint id, out T newDelegate, uint? fallbackId = null) where T : class
{
IntPtr ptr = nvapi_QueryInterface(id);
if (ptr != IntPtr.Zero)
{
newDelegate = Marshal.GetDelegateForFunctionPointer(ptr, typeof(T)) as T;
}
else if (fallbackId.HasValue)
{
GetDelegate(fallbackId.Value, out newDelegate);
}
else
{
newDelegate = null;
@@ -604,6 +608,7 @@ namespace nspector.Native.NVAPI2
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate NvAPI_Status DRS_GetSettingDelegate(IntPtr hSession, IntPtr hProfile, uint settingId, ref NVDRS_SETTING pSetting, ref uint x);
private static readonly DRS_GetSettingDelegate _DRS_GetSetting;
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate NvAPI_Status DRS_EnumSettingsDelegate(IntPtr hSession, IntPtr hProfile, uint startIndex, ref uint settingsCount, IntPtr pSetting);
@@ -739,20 +744,19 @@ namespace nspector.Native.NVAPI2
GetDelegate(0xED1F8C69, out DRS_GetApplicationInfo);
GetDelegate(0x7FA2173A, out DRS_EnumApplicationsInternal);
GetDelegate(0xEEE566B2, out DRS_FindApplicationByName);
GetDelegate(0x8A2CF5F5, out _DRS_SetSetting);
GetDelegate(0xEA99498D, out _DRS_GetSetting);
GetDelegate(0xCFD6983E, out DRS_EnumSettingsInternal);
GetDelegate(0xE5DE48E5, out DRS_EnumAvailableSettingIdsInternal);
GetDelegate(0x8A2CF5F5, out _DRS_SetSetting, 0x577DD202);
GetDelegate(0xEA99498D, out _DRS_GetSetting, 0x73BF8338);
GetDelegate(0xCFD6983E, out DRS_EnumSettingsInternal, 0xAE3039DA);
GetDelegate(0xE5DE48E5, out DRS_EnumAvailableSettingIdsInternal, 0xF020614A);
GetDelegate(0x2EC39F90, out DRS_EnumAvailableSettingValuesInternal);
GetDelegate(0xCB7309CD, out DRS_GetSettingIdFromName);
GetDelegate(0x1EB13791, out DRS_GetSettingNameFromId);
GetDelegate(0xE4A26362, out DRS_DeleteProfileSetting);
GetDelegate(0x1EB13791, out DRS_GetSettingNameFromId, 0xD61CBE6E);
GetDelegate(0xD20D29DF, out DRS_DeleteProfileSetting, 0xE4A26362);
GetDelegate(0x5927B094, out DRS_RestoreAllDefaults);
GetDelegate(0xFA5F6134, out DRS_RestoreProfileDefault);
GetDelegate(0x7DD5B261, out DRS_RestoreProfileDefaultSetting);
GetDelegate(0x7DD5B261, out DRS_RestoreProfileDefaultSetting, 0x53F0381E);
GetDelegate(0xDA8466A0, out DRS_GetBaseProfile);
#endregion
}
}
}

View File

@@ -35,7 +35,7 @@ namespace nspector
if (argFileIndex != -1)
{
if (new FileInfo(args[argFileIndex]).Extension.ToLower() == ".nip")
if (new FileInfo(args[argFileIndex]).Extension.ToLowerInvariant() == ".nip")
{
try
{

View File

@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("NVIDIA Profile Inspector")]
[assembly: AssemblyCopyright("©2022 by Orbmu2k")]
[assembly: AssemblyCopyright("©2025 by Orbmu2k")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@@ -73,19 +73,19 @@ namespace nspector.Properties {
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
///&lt;CustomSettingNames&gt;
/// &lt;Settings&gt;
/// &lt;CustomSetting&gt;
/// &lt;UserfriendlyName&gt;VRR Support Indicator&lt;/UserfriendlyName&gt;
/// &lt;HexSettingID&gt;0x8df510&lt;/HexSettingID&gt;
/// &lt;GroupName&gt;2 - Sync and Refresh&lt;/GroupName&gt;
/// &lt;SettingValues&gt;
/// &lt;CustomSettingValue&gt;
/// &lt;UserfriendlyName&gt;Off&lt;/UserfriendlyName&gt;
/// &lt;HexValue&gt;0x00000000&lt;/HexValue&gt;
/// &lt;/CustomSettingValue&gt;
/// &lt;CustomSettingValue&gt;
/// &lt;UserfriendlyName&gt;On&lt;/UserfriendlyName&gt;
/// &lt;HexValue&gt;0x0000000 [Rest der Zeichenfolge wurde abgeschnitten]&quot;; ähnelt.
/// &lt;Settings&gt;
/// &lt;CustomSetting&gt;
/// &lt;UserfriendlyName&gt;DLSS - Enable DLL Override&lt;/UserfriendlyName&gt;
/// &lt;HexSettingID&gt;0x10E41E01&lt;/HexSettingID&gt;
/// &lt;GroupName&gt;5 - Common&lt;/GroupName&gt;
/// &lt;MinRequiredDriverVersion&gt;0&lt;/MinRequiredDriverVersion&gt;
/// &lt;SettingValues&gt;
/// &lt;CustomSettingValue&gt;
/// &lt;UserfriendlyName&gt;Off&lt;/UserfriendlyName&gt;
/// &lt;HexValue&gt;0x00000000&lt;/HexValue&gt;
/// &lt;/CustomSettingValue&gt;
/// &lt;CustomSettingValue&gt;
/// &lt;UserfriendlyName&gt;On [Rest der Zeichenfolge wurde abgeschnitten]&quot;; ähnelt.
/// </summary>
public static string CustomSettingNames {
get {

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace nspector
{
public class WatermarkTextBox : TextBox
{
private const int WM_PAINT = 0x000F;
private string _watermarkText;
[Category("Appearance")]
public string WatermarkText
{
get => _watermarkText;
set { _watermarkText = value; Invalidate(); }
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_PAINT && string.IsNullOrEmpty(this.Text) && !string.IsNullOrEmpty(_watermarkText))
{
using (Graphics g = this.CreateGraphics())
using (Brush brush = new SolidBrush(SystemColors.GrayText))
{
TextFormatFlags flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Left;
TextRenderer.DrawText(g, _watermarkText, this.Font, this.ClientRectangle, SystemColors.GrayText, flags);
}
}
}
}
}

View File

@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1"/></startup></configuration>

View File

@@ -76,7 +76,7 @@ namespace nspector
{
for (int f = 0; f < filters.Length; f++)
{
if (settingProfileNames[p].ToLower().Contains(filters[f].ToLower()))
if (settingProfileNames[p].ToLowerInvariant().Contains(filters[f].ToLower()))
{
profileNames += settingProfileNames[p] + ",";
}

View File

@@ -77,6 +77,7 @@
this.chSettingValueHex = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.tbSettingDescription = new System.Windows.Forms.TextBox();
this.pnlListview = new System.Windows.Forms.Panel();
this.txtFilter = new nspector.WatermarkTextBox();
this.tsMain.SuspendLayout();
this.pnlListview.SuspendLayout();
this.SuspendLayout();
@@ -94,10 +95,10 @@
//
this.pbMain.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pbMain.Location = new System.Drawing.Point(12, 475);
this.pbMain.Margin = new System.Windows.Forms.Padding(4);
this.pbMain.Location = new System.Drawing.Point(22, 877);
this.pbMain.Margin = new System.Windows.Forms.Padding(7);
this.pbMain.Name = "pbMain";
this.pbMain.Size = new System.Drawing.Size(840, 9);
this.pbMain.Size = new System.Drawing.Size(1540, 17);
this.pbMain.TabIndex = 19;
//
// tsMain
@@ -135,10 +136,11 @@
this.tsSep6,
this.tsbApplyProfile});
this.tsMain.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
this.tsMain.Location = new System.Drawing.Point(12, 4);
this.tsMain.Location = new System.Drawing.Point(22, 7);
this.tsMain.Name = "tsMain";
this.tsMain.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0);
this.tsMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
this.tsMain.Size = new System.Drawing.Size(840, 25);
this.tsMain.Size = new System.Drawing.Size(1540, 46);
this.tsMain.TabIndex = 24;
this.tsMain.Text = "toolStrip1";
//
@@ -147,7 +149,7 @@
this.tslProfiles.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tslProfiles.Margin = new System.Windows.Forms.Padding(0, 5, 10, 2);
this.tslProfiles.Name = "tslProfiles";
this.tslProfiles.Size = new System.Drawing.Size(49, 18);
this.tslProfiles.Size = new System.Drawing.Size(86, 39);
this.tslProfiles.Text = "Profiles:";
//
// cbProfiles
@@ -159,7 +161,7 @@
this.cbProfiles.Margin = new System.Windows.Forms.Padding(1);
this.cbProfiles.MaxDropDownItems = 50;
this.cbProfiles.Name = "cbProfiles";
this.cbProfiles.Size = new System.Drawing.Size(290, 23);
this.cbProfiles.Size = new System.Drawing.Size(528, 38);
this.cbProfiles.SelectedIndexChanged += new System.EventHandler(this.cbProfiles_SelectedIndexChanged);
this.cbProfiles.TextChanged += new System.EventHandler(this.cbProfiles_TextChanged);
//
@@ -170,7 +172,7 @@
this.tsbModifiedProfiles.Image = global::nspector.Properties.Resources.home_sm;
this.tsbModifiedProfiles.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbModifiedProfiles.Name = "tsbModifiedProfiles";
this.tsbModifiedProfiles.Size = new System.Drawing.Size(36, 22);
this.tsbModifiedProfiles.Size = new System.Drawing.Size(44, 40);
this.tsbModifiedProfiles.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
this.tsbModifiedProfiles.ToolTipText = "Back to global profile (Home) / User modified profiles";
this.tsbModifiedProfiles.ButtonClick += new System.EventHandler(this.tsbModifiedProfiles_ButtonClick);
@@ -179,7 +181,7 @@
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 46);
//
// tsbRefreshProfile
//
@@ -187,7 +189,7 @@
this.tsbRefreshProfile.Image = ((System.Drawing.Image)(resources.GetObject("tsbRefreshProfile.Image")));
this.tsbRefreshProfile.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbRefreshProfile.Name = "tsbRefreshProfile";
this.tsbRefreshProfile.Size = new System.Drawing.Size(24, 22);
this.tsbRefreshProfile.Size = new System.Drawing.Size(40, 40);
this.tsbRefreshProfile.Text = "Refresh current profile.";
this.tsbRefreshProfile.Click += new System.EventHandler(this.tsbRefreshProfile_Click);
//
@@ -197,7 +199,7 @@
this.tsbRestoreProfile.Image = ((System.Drawing.Image)(resources.GetObject("tsbRestoreProfile.Image")));
this.tsbRestoreProfile.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbRestoreProfile.Name = "tsbRestoreProfile";
this.tsbRestoreProfile.Size = new System.Drawing.Size(24, 22);
this.tsbRestoreProfile.Size = new System.Drawing.Size(40, 40);
this.tsbRestoreProfile.Text = "Restore current profile to NVIDIA defaults.";
this.tsbRestoreProfile.Click += new System.EventHandler(this.tsbRestoreProfile_Click);
//
@@ -207,7 +209,7 @@
this.tsbCreateProfile.Image = ((System.Drawing.Image)(resources.GetObject("tsbCreateProfile.Image")));
this.tsbCreateProfile.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbCreateProfile.Name = "tsbCreateProfile";
this.tsbCreateProfile.Size = new System.Drawing.Size(24, 22);
this.tsbCreateProfile.Size = new System.Drawing.Size(40, 40);
this.tsbCreateProfile.Text = "Create new profile";
this.tsbCreateProfile.Click += new System.EventHandler(this.tsbCreateProfile_Click);
//
@@ -217,14 +219,14 @@
this.tsbDeleteProfile.Image = global::nspector.Properties.Resources.ieframe_1_18212;
this.tsbDeleteProfile.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbDeleteProfile.Name = "tsbDeleteProfile";
this.tsbDeleteProfile.Size = new System.Drawing.Size(24, 22);
this.tsbDeleteProfile.Size = new System.Drawing.Size(40, 40);
this.tsbDeleteProfile.Text = "Delete current Profile";
this.tsbDeleteProfile.Click += new System.EventHandler(this.tsbDeleteProfile_Click);
//
// tsSep2
//
this.tsSep2.Name = "tsSep2";
this.tsSep2.Size = new System.Drawing.Size(6, 25);
this.tsSep2.Size = new System.Drawing.Size(6, 46);
//
// tsbAddApplication
//
@@ -232,7 +234,7 @@
this.tsbAddApplication.Image = global::nspector.Properties.Resources.window_application_add;
this.tsbAddApplication.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbAddApplication.Name = "tsbAddApplication";
this.tsbAddApplication.Size = new System.Drawing.Size(24, 22);
this.tsbAddApplication.Size = new System.Drawing.Size(40, 40);
this.tsbAddApplication.Text = "Add application to current profile.";
this.tsbAddApplication.Click += new System.EventHandler(this.tsbAddApplication_Click);
//
@@ -242,7 +244,7 @@
this.tssbRemoveApplication.Image = global::nspector.Properties.Resources.window_application_delete;
this.tssbRemoveApplication.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tssbRemoveApplication.Name = "tssbRemoveApplication";
this.tssbRemoveApplication.Size = new System.Drawing.Size(36, 22);
this.tssbRemoveApplication.Size = new System.Drawing.Size(44, 40);
this.tssbRemoveApplication.Text = "Remove application from current profile";
this.tssbRemoveApplication.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.tssbRemoveApplication_DropDownItemClicked);
this.tssbRemoveApplication.Click += new System.EventHandler(this.tssbRemoveApplication_Click);
@@ -250,7 +252,7 @@
// tsSep3
//
this.tsSep3.Name = "tsSep3";
this.tsSep3.Size = new System.Drawing.Size(6, 25);
this.tsSep3.Size = new System.Drawing.Size(6, 46);
//
// tsbExportProfiles
//
@@ -263,35 +265,35 @@
this.tsbExportProfiles.Image = global::nspector.Properties.Resources.export1;
this.tsbExportProfiles.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbExportProfiles.Name = "tsbExportProfiles";
this.tsbExportProfiles.Size = new System.Drawing.Size(36, 22);
this.tsbExportProfiles.Size = new System.Drawing.Size(44, 40);
this.tsbExportProfiles.Text = "Export user defined profiles";
this.tsbExportProfiles.Click += new System.EventHandler(this.tsbExportProfiles_Click);
//
// exportCurrentProfileOnlyToolStripMenuItem
//
this.exportCurrentProfileOnlyToolStripMenuItem.Name = "exportCurrentProfileOnlyToolStripMenuItem";
this.exportCurrentProfileOnlyToolStripMenuItem.Size = new System.Drawing.Size(343, 22);
this.exportCurrentProfileOnlyToolStripMenuItem.Size = new System.Drawing.Size(602, 40);
this.exportCurrentProfileOnlyToolStripMenuItem.Text = "Export current profile only";
this.exportCurrentProfileOnlyToolStripMenuItem.Click += new System.EventHandler(this.exportCurrentProfileOnlyToolStripMenuItem_Click);
//
// exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem
//
this.exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem.Name = "exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem";
this.exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem.Size = new System.Drawing.Size(343, 22);
this.exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem.Size = new System.Drawing.Size(602, 40);
this.exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem.Text = "Export current profile including predefined settings";
this.exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem.Click += new System.EventHandler(this.exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem_Click);
//
// exportUserdefinedProfilesToolStripMenuItem
//
this.exportUserdefinedProfilesToolStripMenuItem.Name = "exportUserdefinedProfilesToolStripMenuItem";
this.exportUserdefinedProfilesToolStripMenuItem.Size = new System.Drawing.Size(343, 22);
this.exportUserdefinedProfilesToolStripMenuItem.Size = new System.Drawing.Size(602, 40);
this.exportUserdefinedProfilesToolStripMenuItem.Text = "Export all customized profiles";
this.exportUserdefinedProfilesToolStripMenuItem.Click += new System.EventHandler(this.exportUserdefinedProfilesToolStripMenuItem_Click);
//
// exportAllProfilesNVIDIATextFormatToolStripMenuItem
//
this.exportAllProfilesNVIDIATextFormatToolStripMenuItem.Name = "exportAllProfilesNVIDIATextFormatToolStripMenuItem";
this.exportAllProfilesNVIDIATextFormatToolStripMenuItem.Size = new System.Drawing.Size(343, 22);
this.exportAllProfilesNVIDIATextFormatToolStripMenuItem.Size = new System.Drawing.Size(602, 40);
this.exportAllProfilesNVIDIATextFormatToolStripMenuItem.Text = "Export all driver profiles (NVIDIA Text Format)";
this.exportAllProfilesNVIDIATextFormatToolStripMenuItem.Click += new System.EventHandler(this.exportAllProfilesNVIDIATextFormatToolStripMenuItem_Click);
//
@@ -304,28 +306,28 @@
this.tsbImportProfiles.Image = global::nspector.Properties.Resources.import1;
this.tsbImportProfiles.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbImportProfiles.Name = "tsbImportProfiles";
this.tsbImportProfiles.Size = new System.Drawing.Size(36, 22);
this.tsbImportProfiles.Size = new System.Drawing.Size(44, 40);
this.tsbImportProfiles.Text = "Import user defined profiles";
this.tsbImportProfiles.Click += new System.EventHandler(this.tsbImportProfiles_Click);
//
// importProfilesToolStripMenuItem
//
this.importProfilesToolStripMenuItem.Name = "importProfilesToolStripMenuItem";
this.importProfilesToolStripMenuItem.Size = new System.Drawing.Size(363, 22);
this.importProfilesToolStripMenuItem.Size = new System.Drawing.Size(639, 40);
this.importProfilesToolStripMenuItem.Text = "Import profile(s)";
this.importProfilesToolStripMenuItem.Click += new System.EventHandler(this.importProfilesToolStripMenuItem_Click);
//
// importAllProfilesNVIDIATextFormatToolStripMenuItem
//
this.importAllProfilesNVIDIATextFormatToolStripMenuItem.Name = "importAllProfilesNVIDIATextFormatToolStripMenuItem";
this.importAllProfilesNVIDIATextFormatToolStripMenuItem.Size = new System.Drawing.Size(363, 22);
this.importAllProfilesNVIDIATextFormatToolStripMenuItem.Size = new System.Drawing.Size(639, 40);
this.importAllProfilesNVIDIATextFormatToolStripMenuItem.Text = "Import (replace) all driver profiles (NVIDIA Text Format)";
this.importAllProfilesNVIDIATextFormatToolStripMenuItem.Click += new System.EventHandler(this.importAllProfilesNVIDIATextFormatToolStripMenuItem_Click);
//
// tsSep4
//
this.tsSep4.Name = "tsSep4";
this.tsSep4.Size = new System.Drawing.Size(6, 25);
this.tsSep4.Size = new System.Drawing.Size(6, 46);
//
// tscbShowCustomSettingNamesOnly
//
@@ -334,14 +336,14 @@
this.tscbShowCustomSettingNamesOnly.Image = global::nspector.Properties.Resources.filter_user;
this.tscbShowCustomSettingNamesOnly.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tscbShowCustomSettingNamesOnly.Name = "tscbShowCustomSettingNamesOnly";
this.tscbShowCustomSettingNamesOnly.Size = new System.Drawing.Size(24, 22);
this.tscbShowCustomSettingNamesOnly.Size = new System.Drawing.Size(40, 40);
this.tscbShowCustomSettingNamesOnly.Text = "Show the settings and values from CustomSettingNames file only.";
this.tscbShowCustomSettingNamesOnly.CheckedChanged += new System.EventHandler(this.cbCustomSettingsOnly_CheckedChanged);
//
// tsSep5
//
this.tsSep5.Name = "tsSep5";
this.tsSep5.Size = new System.Drawing.Size(6, 25);
this.tsSep5.Size = new System.Drawing.Size(6, 46);
//
// tscbShowScannedUnknownSettings
//
@@ -351,7 +353,7 @@
this.tscbShowScannedUnknownSettings.Image = global::nspector.Properties.Resources.find_set2;
this.tscbShowScannedUnknownSettings.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tscbShowScannedUnknownSettings.Name = "tscbShowScannedUnknownSettings";
this.tscbShowScannedUnknownSettings.Size = new System.Drawing.Size(24, 22);
this.tscbShowScannedUnknownSettings.Size = new System.Drawing.Size(40, 40);
this.tscbShowScannedUnknownSettings.Text = "Show unknown settings from NVIDIA predefined profiles";
this.tscbShowScannedUnknownSettings.Click += new System.EventHandler(this.tscbShowScannedUnknownSettings_Click);
//
@@ -361,14 +363,14 @@
this.tsbBitValueEditor.Image = global::nspector.Properties.Resources.text_binary;
this.tsbBitValueEditor.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbBitValueEditor.Name = "tsbBitValueEditor";
this.tsbBitValueEditor.Size = new System.Drawing.Size(24, 22);
this.tsbBitValueEditor.Size = new System.Drawing.Size(40, 40);
this.tsbBitValueEditor.Text = "Show bit value editor.";
this.tsbBitValueEditor.Click += new System.EventHandler(this.tsbBitValueEditor_Click);
//
// tsSep6
//
this.tsSep6.Name = "tsSep6";
this.tsSep6.Size = new System.Drawing.Size(6, 25);
this.tsSep6.Size = new System.Drawing.Size(6, 46);
//
// tsbApplyProfile
//
@@ -377,7 +379,7 @@
this.tsbApplyProfile.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbApplyProfile.Name = "tsbApplyProfile";
this.tsbApplyProfile.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never;
this.tsbApplyProfile.Size = new System.Drawing.Size(109, 22);
this.tsbApplyProfile.Size = new System.Drawing.Size(173, 40);
this.tsbApplyProfile.Text = "Apply changes";
this.tsbApplyProfile.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.tsbApplyProfile.Click += new System.EventHandler(this.tsbApplyProfile_Click);
@@ -387,10 +389,10 @@
this.btnResetValue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnResetValue.Enabled = false;
this.btnResetValue.Image = global::nspector.Properties.Resources.nv_btn;
this.btnResetValue.Location = new System.Drawing.Point(732, 175);
this.btnResetValue.Margin = new System.Windows.Forms.Padding(0, 1, 0, 0);
this.btnResetValue.Location = new System.Drawing.Point(1342, 323);
this.btnResetValue.Margin = new System.Windows.Forms.Padding(0, 2, 0, 0);
this.btnResetValue.Name = "btnResetValue";
this.btnResetValue.Size = new System.Drawing.Size(25, 19);
this.btnResetValue.Size = new System.Drawing.Size(46, 35);
this.btnResetValue.TabIndex = 7;
this.btnResetValue.UseVisualStyleBackColor = true;
this.btnResetValue.Click += new System.EventHandler(this.btnResetValue_Click);
@@ -402,12 +404,13 @@
this.lblApplications.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(185)))), ((int)(((byte)(0)))));
this.lblApplications.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblApplications.ForeColor = System.Drawing.Color.White;
this.lblApplications.Location = new System.Drawing.Point(12, 32);
this.lblApplications.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblApplications.Location = new System.Drawing.Point(22, 59);
this.lblApplications.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.lblApplications.Name = "lblApplications";
this.lblApplications.Size = new System.Drawing.Size(840, 17);
this.lblApplications.Size = new System.Drawing.Size(1540, 31);
this.lblApplications.TabIndex = 25;
this.lblApplications.Text = "fsagame.exe, bond.exe, herozero.exe";
this.lblApplications.DoubleClick += new System.EventHandler(this.tsbAddApplication_Click);
//
// toolStripButton5
//
@@ -443,10 +446,10 @@
//
this.cbValues.BackColor = System.Drawing.SystemColors.Window;
this.cbValues.FormattingEnabled = true;
this.cbValues.Location = new System.Drawing.Point(524, 175);
this.cbValues.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.cbValues.Location = new System.Drawing.Point(961, 323);
this.cbValues.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.cbValues.Name = "cbValues";
this.cbValues.Size = new System.Drawing.Size(72, 21);
this.cbValues.Size = new System.Drawing.Size(129, 32);
this.cbValues.TabIndex = 5;
this.cbValues.Visible = false;
this.cbValues.SelectedValueChanged += new System.EventHandler(this.cbValues_SelectedValueChanged);
@@ -454,40 +457,40 @@
//
// lblWidth96
//
this.lblWidth96.Location = new System.Drawing.Point(77, 233);
this.lblWidth96.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblWidth96.Location = new System.Drawing.Point(141, 430);
this.lblWidth96.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.lblWidth96.Name = "lblWidth96";
this.lblWidth96.Size = new System.Drawing.Size(96, 18);
this.lblWidth96.Size = new System.Drawing.Size(176, 33);
this.lblWidth96.TabIndex = 77;
this.lblWidth96.Text = "96";
this.lblWidth96.Visible = false;
//
// lblWidth330
//
this.lblWidth330.Location = new System.Drawing.Point(77, 210);
this.lblWidth330.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblWidth330.Location = new System.Drawing.Point(141, 388);
this.lblWidth330.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.lblWidth330.Name = "lblWidth330";
this.lblWidth330.Size = new System.Drawing.Size(330, 22);
this.lblWidth330.Size = new System.Drawing.Size(605, 41);
this.lblWidth330.TabIndex = 78;
this.lblWidth330.Text = "330 (Helper Labels for DPI Scaling)";
this.lblWidth330.Visible = false;
//
// lblWidth16
//
this.lblWidth16.Location = new System.Drawing.Point(77, 269);
this.lblWidth16.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblWidth16.Location = new System.Drawing.Point(141, 497);
this.lblWidth16.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.lblWidth16.Name = "lblWidth16";
this.lblWidth16.Size = new System.Drawing.Size(16, 18);
this.lblWidth16.Size = new System.Drawing.Size(29, 33);
this.lblWidth16.TabIndex = 79;
this.lblWidth16.Text = "16";
this.lblWidth16.Visible = false;
//
// lblWidth30
//
this.lblWidth30.Location = new System.Drawing.Point(77, 251);
this.lblWidth30.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblWidth30.Location = new System.Drawing.Point(141, 463);
this.lblWidth30.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.lblWidth30.Name = "lblWidth30";
this.lblWidth30.Size = new System.Drawing.Size(30, 18);
this.lblWidth30.Size = new System.Drawing.Size(55, 33);
this.lblWidth30.TabIndex = 80;
this.lblWidth30.Text = "30";
this.lblWidth30.Visible = false;
@@ -503,12 +506,12 @@
this.lvSettings.GridLines = true;
this.lvSettings.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.lvSettings.HideSelection = false;
this.lvSettings.Location = new System.Drawing.Point(0, 0);
this.lvSettings.Margin = new System.Windows.Forms.Padding(4);
this.lvSettings.Location = new System.Drawing.Point(0, 29);
this.lvSettings.Margin = new System.Windows.Forms.Padding(7);
this.lvSettings.MultiSelect = false;
this.lvSettings.Name = "lvSettings";
this.lvSettings.ShowItemToolTips = true;
this.lvSettings.Size = new System.Drawing.Size(840, 372);
this.lvSettings.Size = new System.Drawing.Size(1540, 661);
this.lvSettings.SmallImageList = this.ilListView;
this.lvSettings.TabIndex = 2;
this.lvSettings.UseCompatibleStateImageBehavior = false;
@@ -537,12 +540,13 @@
// tbSettingDescription
//
this.tbSettingDescription.Dock = System.Windows.Forms.DockStyle.Bottom;
this.tbSettingDescription.Location = new System.Drawing.Point(0, 372);
this.tbSettingDescription.Location = new System.Drawing.Point(0, 690);
this.tbSettingDescription.Margin = new System.Windows.Forms.Padding(6);
this.tbSettingDescription.Multiline = true;
this.tbSettingDescription.Name = "tbSettingDescription";
this.tbSettingDescription.ReadOnly = true;
this.tbSettingDescription.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.tbSettingDescription.Size = new System.Drawing.Size(840, 44);
this.tbSettingDescription.Size = new System.Drawing.Size(1540, 78);
this.tbSettingDescription.TabIndex = 81;
this.tbSettingDescription.Visible = false;
//
@@ -552,17 +556,29 @@
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlListview.Controls.Add(this.lvSettings);
this.pnlListview.Controls.Add(this.txtFilter);
this.pnlListview.Controls.Add(this.tbSettingDescription);
this.pnlListview.Location = new System.Drawing.Point(12, 52);
this.pnlListview.Location = new System.Drawing.Point(22, 96);
this.pnlListview.Margin = new System.Windows.Forms.Padding(6);
this.pnlListview.Name = "pnlListview";
this.pnlListview.Size = new System.Drawing.Size(840, 416);
this.pnlListview.Size = new System.Drawing.Size(1540, 768);
this.pnlListview.TabIndex = 82;
//
// txtFilter
//
this.txtFilter.Dock = System.Windows.Forms.DockStyle.Top;
this.txtFilter.Location = new System.Drawing.Point(0, 0);
this.txtFilter.Name = "txtFilter";
this.txtFilter.Size = new System.Drawing.Size(1540, 29);
this.txtFilter.TabIndex = 82;
this.txtFilter.WatermarkText = "Search for setting...";
this.txtFilter.TextChanged += new System.EventHandler(this.txtFilter_TextChanged);
//
// frmDrvSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 22F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(864, 492);
this.ClientSize = new System.Drawing.Size(1584, 908);
this.Controls.Add(this.pnlListview);
this.Controls.Add(this.lblWidth30);
this.Controls.Add(this.lblWidth16);
@@ -573,8 +589,8 @@
this.Controls.Add(this.pbMain);
this.Controls.Add(this.btnResetValue);
this.Controls.Add(this.cbValues);
this.Margin = new System.Windows.Forms.Padding(4);
this.MinimumSize = new System.Drawing.Size(879, 346);
this.Margin = new System.Windows.Forms.Padding(7);
this.MinimumSize = new System.Drawing.Size(1592, 585);
this.Name = "frmDrvSettings";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "nSpector - Driver Profile Settings";
@@ -639,5 +655,6 @@
private System.Windows.Forms.ToolStripMenuItem exportCurrentProfileIncludingPredefinedSettingsToolStripMenuItem;
private System.Windows.Forms.TextBox tbSettingDescription;
private System.Windows.Forms.Panel pnlListview;
private WatermarkTextBox txtFilter;
}
}

View File

@@ -497,7 +497,8 @@ namespace nspector
var numberFormat = new NumberFormatInfo() { NumberDecimalSeparator = "." };
var version = Assembly.GetExecutingAssembly().GetName().Version;
var fileVersionInfo = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
Text = $"{Application.ProductName} {version} - Geforce {_drs.DriverVersion.ToString("#.00", numberFormat)} - Profile Settings - {fileVersionInfo.LegalCopyright}";
var externalCsn = DrsServiceLocator.IsExternalCustomSettings ? " - CSN OVERRIDE!" : "";
Text = $"{Application.ProductName} {version} - Geforce {_drs.DriverVersion.ToString("#.00", numberFormat)} - Profile Settings - {fileVersionInfo.LegalCopyright}{externalCsn}";
}
private static void InitMessageFilter(IntPtr handle)
@@ -530,8 +531,16 @@ namespace nspector
Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
}
public static double ScaleFactor = 1;
private void SetupDpiAdjustments()
{
ScaleFactor = lblWidth330.Width / 330;
// Later Windows versions changed DPI scaling method, check with Graphics and use it if larger
using (Graphics g = CreateGraphics())
ScaleFactor = Math.Max(ScaleFactor, Math.Max(g.DpiX / 96f, g.DpiY / 96f));
chSettingID.Width = lblWidth330.Width;
chSettingValueHex.Width = lblWidth96.Width;
}
@@ -622,8 +631,12 @@ namespace nspector
ResetSelectedValue();
}
ToolTip appPathsTooltip = new ToolTip() { InitialDelay = 250 };
private void ChangeCurrentProfile(string profileName)
{
txtFilter.Text = "";
if (profileName == GetBaseProfileName() || profileName == _baseProfileName)
{
_CurrentProfile = _baseProfileName;
@@ -631,6 +644,7 @@ namespace nspector
tsbDeleteProfile.Enabled = false;
tsbAddApplication.Enabled = false;
tssbRemoveApplication.Enabled = false;
appPathsTooltip.SetToolTip(lblApplications, "");
}
else
{
@@ -638,9 +652,9 @@ namespace nspector
tsbDeleteProfile.Enabled = true;
tsbAddApplication.Enabled = true;
tssbRemoveApplication.Enabled = true;
appPathsTooltip.SetToolTip(lblApplications, "Double-click to add application");
}
RefreshCurrentProfile();
}
@@ -801,7 +815,15 @@ namespace nspector
}
}
else
ResetCurrentProfile();
{
if (MessageBox.Show(this,
"Restore profile to NVIDIA driver defaults?",
"Restore profile",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
ResetCurrentProfile();
}
}
}
private void tsbRefreshProfile_Click(object sender, EventArgs e)
@@ -912,15 +934,24 @@ namespace nspector
private void tsbAddApplication_Click(object sender, EventArgs e)
{
var openDialog = new OpenFileDialog();
openDialog.DefaultExt = "*.exe";
openDialog.Filter = "Application EXE Name|*.exe|Application Absolute Path|*.exe";
if (_CurrentProfile == GetBaseProfileName() || _CurrentProfile == _baseProfileName)
return;
if (openDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
var applications = new Dictionary<string, string>();
_currentProfileSettingItems = _drs.GetSettingsForProfile(_CurrentProfile, GetSettingViewMode(), ref applications);
var existingPaths = new HashSet<string>(applications.Values, StringComparer.OrdinalIgnoreCase);
var applicationName = "";
if (InputBox.Show("Add Application", "Enter an application path/filename/UWP ID to add to the profile:", ref applicationName, new List<string>(), "", 2048, true) == DialogResult.OK)
{
string applicationName = new FileInfo(openDialog.FileName).Name;
if (openDialog.FilterIndex == 2)
applicationName = openDialog.FileName;
// Add new application path
if (existingPaths.Contains(applicationName))
{
MessageBox.Show("This application is already assigned to this profile!",
"Error adding Application", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try
{
@@ -931,25 +962,26 @@ namespace nspector
if (ex.Status == Native.NVAPI2.NvAPI_Status.NVAPI_EXECUTABLE_ALREADY_IN_USE || ex.Status == Native.NVAPI2.NvAPI_Status.NVAPI_ERROR)
{
if (lblApplications.Text.ToUpper().IndexOf(" " + applicationName.ToUpper() + ",") != -1)
MessageBox.Show("This application executable is already assigned to this profile!",
MessageBox.Show("This application is already assigned to this profile!",
"Error adding Application", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
string profileNames = _scanner.FindProfilesUsingApplication(applicationName);
if (profileNames == "")
MessageBox.Show("This application executable might already be assigned to another profile!",
MessageBox.Show("This application might already be assigned to another profile!",
"Error adding Application", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
MessageBox.Show(
"This application executable is already assigned to the following profiles: " +
"This application is already assigned to the following profiles: " +
profileNames, "Error adding Application", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
throw;
}
RefreshCurrentProfile();
}
RefreshCurrentProfile();
}
private void tssbRemoveApplication_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
@@ -1074,6 +1106,8 @@ namespace nspector
private async void RefreshAll()
{
txtFilter.Text = "";
RefreshProfilesCombo();
await ScanProfilesSilentAsync(true, false);
@@ -1154,7 +1188,7 @@ namespace nspector
if (files.Length == 1)
{
var fileInfo = new FileInfo(files[0]);
if (fileInfo.Extension.ToLower().Equals(".nip"))
if (fileInfo.Extension.ToLowerInvariant().Equals(".nip"))
{
ImportProfiles(fileInfo.FullName);
return;
@@ -1275,34 +1309,36 @@ namespace nspector
if (e.Control && e.KeyCode == Keys.F)
{
SearchSetting();
txtFilter.Focus();
}
if (e.KeyCode == Keys.Escape)
{
RefreshCurrentProfile();
}
}
private void SearchSetting()
private void txtFilter_TextChanged(object sender, EventArgs e)
{
string inputString = "";
if (InputBox.Show("Search Setting", "Please enter setting name:", ref inputString, new List<string>(), "", 2048) == System.Windows.Forms.DialogResult.OK)
RefreshCurrentProfile();
if (string.IsNullOrEmpty(txtFilter.Text.Trim()))
{
var lowerInput = inputString.Trim().ToLower();
lvSettings.BeginUpdate();
foreach(ListViewItem itm in lvSettings.Items)
{
if (!itm.Text.ToLower().Contains(lowerInput))
{
itm.Remove();
}
}
lvSettings.EndUpdate();
return;
}
var lowerInput = txtFilter.Text.Trim().ToLowerInvariant();
lvSettings.BeginUpdate();
foreach (ListViewItem itm in lvSettings.Items)
{
if (!itm.Text.ToLowerInvariant().Contains(lowerInput))
{
itm.Remove();
}
}
lvSettings.EndUpdate();
txtFilter.Focus(); // Setting listbox sometimes steals focus away
}
private void EnableDevmode()
@@ -1394,7 +1430,6 @@ namespace nspector
}
Clipboard.SetText(sbSettings.ToString());
}
}
}

View File

@@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>nspector</RootNamespace>
<AssemblyName>nvidiaProfileInspector</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<PlatformTarget>x86</PlatformTarget>
<TargetFrameworkProfile />
@@ -204,6 +204,9 @@
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="WatermarkTextBox.cs">
<SubType>Component</SubType>
</Compile>
<EmbeddedResource Include="frmBitEditor.resx">
<DependentUpon>frmBitEditor.cs</DependentUpon>
<SubType>Designer</SubType>