Orbmu2k / nvidiaProfileInspector

MIT License
3.32k stars 248 forks source link

DLSS related settings added #156

Open emoose opened 11 months ago

emoose commented 11 months ago

Seems DLSS 3.1.11+ started reading a few settings from DRS, here's what was found in 3.1.30:

0x10E41DF3 (NGX_OVERRIDE_RENDER_PRESET_SELECTION) - dword (0 - 6 which goes to disabled/preset A/B/C/D etc)
0x10E41DF4 (FORCE_DLAA) - boolean
0x10E41DF5 ("scaling ratio from DRS") - float, valid range 0.33333333f to 1.0f
0x10E41DF6 (NGX_DLSSG_PRIVATE_FLAGS) - framegen flags, 1 = DISABLE_SCENE_CHANGE_DETECTION (added in 3.5)
0x10AFB76A ("Fast UAV clear") - dword flags (1 / 2 / 4), might be existing setting that DLSS now taps into?
0x10AFB76B - string, logging related, might be log filename
0x10AFB76C (OVERRIDE_PERF_TO_9X) - boolean, seems to just change Performance to work as UltraPerf instead

FORCEDLAA & "scaling ratio from DRS" both seem to work fine, but unfortunately only when setting them on the base profile, doesn't look like DLSS tries reading the profile for the current game at all ;;

Would be great if these can be added, I'm not sure if profile inspector supports float values though, converting it from float to int first was needed.

emoose commented 10 months ago

EDIT: updates for this XML have been posted to https://www.nexusmods.com/site/mods/781?tab=files (the NVIDIA Profile Inspector XML download under Optional Files), that includes settings for RTX HDR & the new DLSS 3.7 presets, easier for me to keep things updated at one location.

Original XML is still available below, but note that it's now outdated:


Here's a CustomSettingNames.xml file which contains options to force DLAA / scaling ratio / preset to use, extract this next to "nvidiaProfileInspector.exe" and they should appear under "5 - Common" group.

CustomSettingNames-DLSS.zip

Not sure if inspector can support floats, so I just added a few different ratios that I think people would use, 0.33 / 0.5 / 0.75 / 0.8 / 0.85 / 0.9 / 0.95 / 0.99 / 1.00.

Make sure you only apply this on the _GLOBAL_DRIVER_PROFILE (Base Profile) profile, since DLSS only seems to read from that and doesn't check the game specific one for some reason.

OliverMD15 commented 10 months ago

I quickly tried it out in "Battlefield 2042", forcing DLAA seems to work there without any issues. I'm not entirely sure about "Forced Scaling" though, but at least it's a promising start.

I then tried verify my findings in "Baldur's Gate 3" using "DLSSTweaks" and the DLSS debug overlay. Forced Scaling functions smoothly, as does enforcing specific presets from what I can see.

Now, if you could provide me with a 0.625 option, that would be all I'm missing personally. For context: BF2042 used version 3.1.11 and BG3 version 3.1.30

emoose commented 10 months ago

Now, if you could provide me with a 0.625 option, that would be all I'm missing personally. For context: BF2042 used version 3.1.11 and BG3 version 3.1.30

Sorry for being late with it, but should be able to use 0.625 by changing one of the HexValue settings in that XML to:

<HexValue>0x3F200000</HexValue>

OliverMD15 commented 10 months ago

No reason to apologize. Before asking for help, I tried to fix it myself but always failed at the conversion for some reason or another. Anyway, now it's fixed and working – all that matters in the end!

Gunnar-Chanterelle commented 10 months ago

No reason to apologize. Before asking for help, I tried to fix it myself but always failed at the conversion for some reason or another. Anyway, now it's fixed and working – all that matters in the end!

I was confused i'm not used to using hex floating point numbers and i don't actually know the correct way to solve it on paper on calculators but here is a converter that does it automatically:

https://www.h-schmidt.net/FloatConverter/IEEE754.html

Since i found DLSS Tweaker I set my own on almost all dlss capable games i play, one thing that is specially useful in dlss tweaker though is being able to set specific resolutions even with non matching width to height ratio (cyberpunk 2077 doesn't work with this but every other game i've tried accepts it), i'd love to do that here too... Usually I add height so running input in 16:10 or even 4:3 or even square... sometimes in full native resolution in heght so basically running DLAA vertically, DLSS horizontaly... 2640x2160 or something.

But in Baldur's Gate 3 which already looks really good in DLSS, I use a newer dlss, 3.1.30 and set it to 2624x1431 (i run in 3840x2160 natively) so wider instead, since the main thing that can look not so good in baldur's gate with dlss, is hair, and hair tends to hang down so the lines are mainly vertical, so adding some width info can help the hair looking better, while not costing as much in performance as increasing the size of both inputs... Since the DLSS in itself clearly allows this as DLSS tweaks proves I wonder why games can't just use a slider instead, or why game developers can't just be allowed to set their own (i guess now they have the choice of DLAA and ultra quality, but something between quality and balanced would be very nice for most games in 4k) put their own ratios they think would be suitable compromise between performance and quality...

OliverMD15 commented 10 months ago

Interesting, I never thought about using DLSS to only upscale one axis. I usually just go with .625 and call it a day. Thanks for the idea!

TheOriginalBabu commented 8 months ago

Ultra Quality - 0.77x might also be useful to add, since it's a semi-official preset.

RealSankiri commented 6 months ago

Nice work :) When will be get Nvidia inspector Profile with above 3.5.xx?

yamaci17 commented 4 months ago

Hello, emoose, thanks for this XML file. What I would like to ask is if it is possible to add extra options for DLSS ratios such as 0.25x and 0.4x. 0.25x for fun reasons and 0.4x can be a nice alternative to 0.33x

Foul-Tarnished commented 1 month ago

Still need to set force dlaa on base profile ? Only nvidia can fix this ?