Topic-Free Mega Thread - v 1.11.2020

I tried both aces and same results

step by step when first enabling hdr should I choose rec709 rec2020 or native?

None of that stuff, just use scRGB.

I am gonna point to what you need to change.

See where that arrow is pointing. Pick the other Aces option. Which is SDR → HDR.

That Aces mode you are picking I think is for videos and such that is native HDR.

I don’t see scRGB option at top when first enable HDR widget. Only thing you pick from is Rec709 / Rec2020 or Native which is monitor one.

At top of this part of HDR. It seems to pick for you.

That’s because you haven’t restarted the game yet.

Also, disable NvAPI HDR in Special K’s INI file. These stupid Ubisoft games like to physically turn HDR off using NvAPI and now that I’m watching for metadata sent using NvAPI, when they turn HDR off they change the the output levels of your display.

He meant when you first boot game with HDR to turn on. scRGB. Below it is all those other things. Native / Rec709 / Rec 2020. :wink:

Edit:
I have AMD so I shouldn’t have that problem lol. The Nvidia HDR stuff. Though I sometimes disable it in config just in case.

That’s unfortunately why SK’s HDR isn’t doing such a good job for you when combined with the game’s HDR. Ubisoft doesn’t use DXGI, they use the NvAPI and AGS, and I want to strangle them for doing this :stuck_out_tongue:

Nothing irritates me more than 99% of all games on Windows using NvAPI and AGS for HDR when DXGI is superior to both and more reliable.

I found out by disabling HDR ingame of WDL option, I get better results with SK’s HDR on in WDL. Don’t know why it clearly causes me a ton of Noise in the game when both SK’s HDR and WDL HDR ingame on is working at same time. Though it probably doesn’t help that I have an HDR600 monitor.

Ubisoft’s mastering level is 4000 nits full field, 8000 nits 10% window.

Typically when someone declares master levels in HDR10 metadata, it’s meant to refer to the display device that the artist / color (not sure what they’re called … colorist?) who decided what the content is actually supposed to look like was using when they did the checking.

Ubisoft’s putting superfluous information in their metadata. Their HDR’s going to suck regardless because I guarantee you they did not check the output of their engine on an 8000 nits display. 8000 nits displays don’t really exist on Earth outside of very specialized theaters (e.g. Dolby Theater).

well did everything. The only thing thats not correct is the sky. SK version posted in calibration guide works ok

How do you even use the HDR widget like that? That widget more than any other needs a background / border :slight_smile: You can easily change slider settings that cause light levels below the widget to bleed through it and the border is important to protect against that.

And FYI, for complete HDR10 pass-through, use:

Luminance = 80 nits
Tonemap = HDR10 Passthrough
Gamma = 2.2

Disable Remaster 10-bit render passes.

(the screenshot below – captured using the game bar – is a bit too bright compared to how it looks in-game)

https://images.aemony.se/sharex/Assassin’s%20Creed®%20Odyssey%202020-10-31%2007_27_18.png

Edit: Here’s a slightly better screenshot captured using SK’s screenshot tool:

HDR-to-SDR tonemapping is a headache and a half…

@Kaldaien: Is there a plan for a separate screenshot feature of SK that doesn’t hook into Steam’s functionality?

So that capturing screenshots, and tonemapping them to SDR, is available even when running a non-Steam game or having Steam enhancements disabled?

Actual values are wrong (e.g. there’s no special significance to 80 nits), those are just values that produce 1:1 in/out when converting the HDR10 image to scRGB for further processing. This will be a much simpler mode with no settings to configure in the future, with the intended purpose of doing waveform analysis and luminance level histogram monitoring.


EDIT: And I guess, the more practical things Aemony just mentioned too :stuck_out_tongue: I’m thinking big, potentially so big that I might use this to collect training data for an AI tonemapper. The passthrough mode is less about users manipulating anything and more about taking an image produced by an engine with real HDR support and making sense out of it.

1 Like

Here’s a build with corrections made for that unexpected gamma:

dxgi.7z (7.6 MB)

Just put this into HDR10 Passthrough mode in the HDR Widget and it strips out that gamma and seems to clean things up a bit.

Yes, that’s all trivial to do. I just haven’t played games on a non-Steam store up until recently, lol. I took for granted that the Steam overlay was there. I won’t be doing that again, updated screenshot request code will be all my own design – the hard work already is all uniquely my design, it’s just the user-facing stuff for importing screenshots that I leaned heavily on Steam for.

Might as well make it something that other developers can trigger, to that end. Hell, I could just add a function to SK’s DLL where a lazy developer hands me some HDR pixels and I do all the processing to produce a screenshot(s) :wink:

“Now I am become Steam, the destroyer of overlays.”


Still really sad how the whole Steam thing turned out. My original plan was to get SK established on Steam with a growing userbase and then get enough leverage to convince Valve to re-design part of the UGC framework so that I could deliver to PC gaming an intuitive way of sharing HDR screenshots.

Now I’m at a complete loss on how to go about that. There are no HDR image hosting websites and I am completely and utterly incompetent when it comes to developing anything web-related :slight_smile:

I could probably foot the hosting bill myself, but somebody’s still gotta actually build a web backend to take uploads of SDR and HDR screenshots and associate them with one another, which is probably trivial but still a level of trivial above what I am capable of.

1 Like

On my PC, Assassin’s Creed Odyssey is very choppy with this new version. The game run fine with version from 2020-10-25.

AC:Odyssey with Special K (2020-10-31):

AC:Odyssey with Special K (2020-10-25):

Special K Settings

[Compatibility.General]
DisableBloatWare_NVIDIA=false
RehookLoadLibrary=false

[SpecialK.System]
ShowEULA=false
Silent=false
LogLevel=0
IgnoreRTSSHookDelay=false
UseCrashHandler=true
GameOutput=true
EnableCEGUI=true
SafeInitCEGUI=true
TraceLoadLibrary=true
StrictCompliant=false
Version=0.11.1

[ImGui.Render]
DisableAlpha=false
AntialiasLines=true
AntialiasContours=true

[API.Hook]
LastKnown=64
d3d9=false
d3d9ex=false
d3d11=true
OpenGL=false
d3d12=false
Vulkan=false

[NVIDIA.API]
DisableHDR=false
Disable=false

[NVIDIA.Bugs]
AnselSleepsWithFishes=true

[Input.Keyboard]
CatchAltF4=true
DisabledToGame=false

[Input.Mouse]
DisabledToGame=false

[Input.Cursor]
Manage=false
KeyboardActivates=true
Timeout=1.5
ForceCaptureInUI=false
UseHardwareCursor=true
BlockInvisibleCursorInput=false
NoWarpUI=true
NoWarpVisibleGameCursor=true
FixSynapticsTouchpadScroll=false
AntiwarpDeadzonePercent=2.5
UseRelativeInput=true

[Input.Gamepad]
DisabledToGame=false
DisablePS4HID=false
AllowHapticUI=false
DisableRumble=true

[Input.XInput]
Rehook=false
PlaceholderMask=0
UISlot=0
SlotReassignment=0,1,2,3

[Input.Steam]
UISlot=0

[Threads.Analyze]
MemoryAllocation=false
FileActivity=true

[Window.System]
Borderless=true
Center=true
RenderInBackground=false
MuteInBackground=false
XOffset=0.0%
YOffset=0.0%
ConfineCursor=false
UnconfineCursor=false
PersistentDragPos=false
Fullscreen=false
FixMouseCoords=false
AlwaysOnTop=0
DisableScreensaver=false
DontHookWndProc=false
OverrideRes=1920x1080

[Display.Output]
ForceFullscreen=false
ForceWindowed=false

[Render.FrameRate]
TargetFPS=50.0
BackgroundFPS=0.0
SleeplessRenderThread=false
SleeplessWindowThread=false
EnableMMCSS=true
MaxBusyWaitPercent=0.0
WaitForVBLANK=false
PreRenderLimit=7
BackBufferCount=6
PresentationInterval=1
RescanRatio=-1/1
RefreshRate=-1.0
LimitEnforcementPolicy=4

[FrameRate.Control]
OverrideCPUCoreCount=-1

[Render.DXGI]
MaxDeltaTime=0
UseFlipDiscard=true
DisableFlipModel=false
AllowTearingInDWM=true
DropLateFrames=true
MaxRes=0x0
MinRes=0x0
SwapChainWait=15
Scaling=DontCare
ScanlineOrder=DontCare
ExceptionMode=DontCare
EnableDebugLayer=false
SafeFullscreenMode=false
Use64BitDepthStencil=false
IsolateD3D11DeferredContexts=false
SkipSwapChainPresentTest=false
OverrideMSAA=-1

[Textures.D3D11]
Cache=true
PreciseHash=false
Inject=true
InjectionKeepsFormat=false
GenerateMipmaps=false

[Textures.Cache]
MaxEntries=65536
MinEntries=512
MaxEvict=1024
MinEvict=64
MaxSizeInMiB=8192
MinSizeInMiB=384
IgnoreNonMipmapped=false
AllowStaging=false
AllowUnsafeRefCounting=false
ManageResidency=false

[Render.OSD]
ShowInVideoCapture=true
HDRLuminance=4.0625

[Textures.General]
ResourceRoot=SK_Res
DumpOnFirstLoad=false

[DPI.Scaling]
Disable=false
PerMonitorAware=false
MonitorAwareOnAllThreads=false

[Steam.Achievements]
SoundFile=

[Steam.System]
AppID=812140
AutoInitDelay=0
AutoPumpCallbacks=true
BlockUserStatsCallback=false
FilterExternalDataFromCallbacks=false
PreLoadSteamClient=false
PreLoadSteamOverlay=false
ForceLoadSteamAPI=false
AutoInjectSteamAPI=true
NotifyCorner=DontCare
ReuseOverlayPause=true
SteamPipeDLL=steam_api64.dll
CallbackThrottle=-1

[Steam.Social]
OnlineStatus=-1

[Steam.Log]
Silent=false

[Steam.DRMWorks]
SpoofBLoggedOn=false

[Steam.Screenshots]
EnableSmartCapture=true

[AMD.ADL]
Disable=false

[AssassinsCreed.Threads]
AltTaskSchedule=false
AutoRebalanceInterval=0.0

[SpecialK.HDR]
scRGBLuminance_[0]=12.5
scRGBGamma_[0]=1.0
ToneMapper_[0]=1
Saturation_[0]=1.0
MiddleGray_[0]=1.25
scRGBLuminance_[1]=1.25
scRGBGamma_[1]=1.0
ToneMapper_[1]=1
Saturation_[1]=1.0
MiddleGray_[1]=1.25
scRGBLuminance_[2]=1.0
scRGBGamma_[2]=1.0
ToneMapper_[2]=1
Saturation_[2]=1.0
MiddleGray_[2]=1.25
scRGBLuminance_[3]=2.5
scRGBGamma_[3]=1.0
ToneMapper_[3]=1
Saturation_[3]=1.0
MiddleGray_[3]=1.25
Use10BitSwapChain=false
Use16BitSwapChain=false
Promote8BitRTsTo16=false
Promote10BitRTsTo16=true
Promote11BitRTsTo16=true
AllowFullLuminance=true
Preset=0

[HDR.Presets]
Activate0=Shift+F1
Activate1=Shift+F2
Activate2=Shift+F3
Activate3=Shift+F4

[DXGI.Hooks]
IDXGIFactory_CreateSwapChain=c:\windows\system32\dxgi.dll?59230
c:\windows\system32\dxgi.dll=DirectX Graphics Infrastructure 10.0.17763.1 (WinBuild.160101.0800)
IDXGIFactory2_CreateSwapChainForHwnd=c:\windows\system32\dxgi.dll?59b00
IDXGISwapChain_Present=c:\windows\system32\dxgi.dll?4910
IDXGISwapChain1_Present1=c:\windows\system32\dxgi.dll?632c0
IDXGIFactory2_CreateSwapChainForCoreWindow=c:\windows\system32\dxgi.dll?59930
EnableGlobalCache=true
EnableLocalCache=false

Hi @galumn,

do you have a 50 Hz refresh capable monitor?
If yes, okay. If not, set TargetFPS=60.0

And also test it with these settings:
PreRenderLimit=3
BackBufferCount=2