; -------------------------------------------------------
[Upscalers]
; -------------------------------------------------------
; Select Upscaler for Dx11 games
; fsr22 (native DX11), fsr31 (native DX11), xess (native DX11, Arc only), xess_12 (dx11on12), fsr21_12 (dx11on12), fsr22_12 (dx11on12), fsr31_12 (dx11on12, FSR4), dlss - Default (auto) is fsr22
Dx11Upscaler=auto

; Select Upscaler for Dx12 games
; xess, fsr21, fsr22, fsr31 (also for FSR4), dlss - Default (auto) is xess
Dx12Upscaler=auto

; Select Upscaler for Vulkan games
; fsr21 (native VK), fsr22 (native VK), fsr31 (native VK), xess (native VK), fsr21_12 (VKon12), fsr31_12 (VKon12, FSR4), dlss - Default (auto) is fsr22
VulkanUpscaler=auto



; -------------------------------------------------------
[FrameGen]
; -------------------------------------------------------
; Enables Frame Generation
; true or false - Default (auto) is false
Enabled=auto

; Selected FG Input/Source
; dlssg     - Can be used with any FG Output. Supports Hudless out of the box. Limited to games that use Streamline v2 and DLSSG
; nukems    - Limited to FSR 3 FG. Requires DLSSG in the game. Supports Hudless out of the box. Uses Streamline swapchain for pacing. 
; fsrfg     - Can be used with any FG Output. Supports Hudless out of the box. 
; upscaler  - Upscaler must be enabled. Can be used with any FG Output, but might be imperfect with some. To prevent UI glitching, Hudfix is required
; fsrfg30   - Can be used with any FG Output. Supports Hudless out of the box. 
; nofg, dlssg, nukems, fsrfg, upscaler, fsrfg30 - Default (auto) is nofg
FGInput=auto

; Selected FG Output
; fsrfg  - requires amd_fidelityfx_dx12.dll or amd_fidelityfx_loader_dx12.dll + amd_fidelityfx_framegeneration_dx12.dll
; xefg   - requires libxess_fg.dll, libxell.dll and latest fakenvapi dll
; nukems - requires dlssg_to_fsr3_amd_is_better.dll, AMD/Intel GPU users need to add fakenvapi as well
; nofg, fsrfg, xefg, nukems - Default (auto) is nofg
FGOutput=auto

; Frametime source, would affect frame pacing
; 0: Input (DLSSG/FSRFG/OptiFG) | 1: Time between Present calls | 2: Zero (Only for XeFG)
; true or false - Default (auto) is 0
FTInput=auto

; Enables Frame Generation Debug View
; true or false - Default (auto) is false
DebugView=auto

; Draw UI over FG, requires Hudless and a UI texture, mostly for FSR FG
; true or false - Default (auto) is false
DrawUIOverFG=auto

; Sets the type of a provided UI texture, with DrawUIOverFG + FSR FG it will change how the UI looks
; true or false - Default (auto) is true
UIPremultipliedAlpha=auto

; Control Hudless, even if FG source provides one
; true or false - Default (auto) is false
DisableHudless=auto

; Control a UI texture, even if FG source provides one
; true or false - Default (auto) is true
DisableUI=auto

; Ignores Reset signals coming from FG inputs
; true or false - Default (auto) is false
SkipReset=auto

; Defines FG rectangle
; integer value - Default (auto) is whole screen
RectLeft=auto
RectTop=auto
RectWidth=auto
RectHeight=auto

; Number of frames the FG is allowed to be ahead of the game
; Might prevent FG on/off switching but also might cause issues
; 1 to 3 - Default (auto) is 1
AllowedFrameAhead=auto

; Always tag Depth as ValidNow
; Will use more VRAM but needed for Uniscaler
; true or false - Default (auto) is false
DepthValidNow=auto

; Always tag Velocity as ValidNow
; Will use more VRAM but needed for Uniscaler
; true or false - Default (auto) is false
VelocityValidNow=auto

; Always tag Hudless as ValidNow
; Will use more VRAM but needed for Uniscaler
; true or false - Default (auto) is false
HudlessValidNow=auto

; If source tags more than one hudless only use first one
; true or false - Default (auto) is false
OnlyAcceptFirstHudless=auto

; Preserve and prevent releasing FG swapchain
; Might prevents crashes when releasing swapchain
; true or false - Default (auto) is true
PreserveSwapChain=auto

; Skip ResizeBuffers call to swapchain
; If old and new descriptions are the same
; Prevents crashes after ResizeBuffers calls
; true or false - Default (auto) is false
SkipResizeBuffers=auto

; Normally after ResizeBuffers call swapchain buffers
; should be in state COMMON, when this option enabled
; OptiScaler will try to set swapchain buffer states
; when skipping ResizeBuffers call
; Might cause crashes or fix them
; true or false - Default (auto) is false
ModifyBufferState=auto

; Normally after ResizeBuffers call swapchain current index
; should be 0, when this option enabled
; OptiScaler will try to set swapchain index by calling present
; until index reaches 0
; Might cause crashes or fix them
; true or false - Default (auto) is false
ModifySCIndex=auto



; -------------------------------------------------------
[FSRFG]
; -------------------------------------------------------
; Enables FSR3.1 Frame Generation Tear Lines
; true or false - Default (auto) is false
DebugTearLines=auto

; Enables FSR3.1 Frame Generation interpolation skip lines
; true or false - Default (auto) is false
DebugResetLines=auto

; Enables FSR3.1 Frame Generation pacing lines
; true or false - Default (auto) is false
DebugPacingLines=auto

; Enables Async FSR3.1 Frame Generation 
; true or false - Default (auto) is false
AllowAsync=auto

; Enables usage of mutex for FG swapchain present calls
; Disabling it might improve performance in cost of stability
; true or false - Default (auto) is true
UseMutexForSwapchain=auto

; Frame Pace Tuning
; -------------------------------------------------------
; Enables custom Frame Pace Tuning parameters
; true or false - Default (auto) is true
FramePacingTuning=auto

; This info is from: 
; https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/54fbaafdc34716811751bea5032700e78f5a0f33/ffx-api/include/ffx_api/ffx_api_types.h#L197
;
; Default Tuning  
; safetyMarginInMs==0.1ms and varianceFactor==0.1.
; 
; Tuning set A 
; safetyMarginInMs==0.75ms, and varianceFactor==0.1.
;
; Tuning Set B 
; safetyMarginInMs==0.01ms and varianceFactor==0.3.
;
; If your game when using FG, frame rate is running at unexpectly low frame rate, after gradual transition from rendering complex to easy scene complexity, 
; you could try setting "Tuning Set B" to recover lost FPS at cost of a bit higher variance.
;
; OptiScaler will use Tuning B as default

; Frame Pace Tuning
; Sets safety margin
; float - Default (auto) is 0.01
FPTSafetyMarginInMs=auto

; Frame Pace Tuning
; Sets variance factor
; 0.0 - 1.0 - Default (auto) is 0.3
FPTVarianceFactor=auto

; Frame Pace Tuning 
; Allows pacing spinlock to sleep, should reduce CPU usage
; Might cause slow ramp up of FPS
; true or false - Default (auto) is false
FPTHybridSpin=auto

; Frame Pace Tuning
; How long to spin if FPTHybridSpin is true. Measured in timer resolution units. 
; Not recommended to go below 2. Will result in frequent overshoots
; uint - Default (auto) is 2
FPTHybridSpinTime=auto

; Frame Pace Tuning 
; Allows WaitForSingleObject instead of spinning for fence value
; true or false - Default (auto) is false
FPTWaitForSingleObjectOnFence=auto

; Enable FSR-FG Redstone Watermark
; true or false - Default (auto) is false
EnableWatermark=auto



; -------------------------------------------------------
[XeFG]
; -------------------------------------------------------
; Skips pre ini checks for XeFG
; Might cause bad IQ or crashes!
; true or false - Default (auto) is false
IgnoreInitChecks=auto

; Sets interpolated frame count (MFG)
; 1 = 2X | 2 = 3X | 3 = 4X
; true or false - Default (auto) is 1
InterpolationCount=auto

; XeFG DepthInverted flag
; true or false - Default (auto) is true
DepthInverted=auto

; Disable UI interpolation 
; Only works when hudless is provided 
; true or false - Default (auto) is false
UIComposition=auto

; XeFG JitteredMV flag
; true or false - Default (auto) is false
JitteredMV=auto

; XeFG HighResMV flag
; true or false - Default (auto) is false
HighResMV=auto

; Enables XeFG debug squares
; true or false - Default (auto) is false
DebugView=auto

; Forces Borderless mode instead of Exclusive Fullscreen
; It might cause stability issues on mode changes
; or IQ issues when exclusive fullscreen mode is
; smaller than diplay resolution
; true or false - Default (auto) is false
ForceBorderless=auto



; -------------------------------------------------------
[OptiFG]
; -------------------------------------------------------

; Disables HUDFix resource tracking
; along with reducing CPU overhead when used with
; ML Frame Generators which handle HUD elements
; true or false - Default (auto) is false
DisableHUDFix=auto

; Enables HUDFix Hudless tracking for Frame Generation
; Might cause crashes, especially with Async
; true or false - Default (auto) is false
HUDFix=auto

; Delays HUDless image capture
; Might cause crashes, especially if set too high!
; integer value above > 0 - Default (auto) is 1
HUDLimit=auto

; Extended HUDless checks for more image formats
; Might cause crash and slowdowns.
; true or false - Default (auto) is false
HUDFixExtended=auto

; Do not use CreateRenderTargetView for resource tracking
; true or false - Default (auto) is false
HudfixDisableRTV=auto

; Do not use CreateShaderResourceView for resource tracking
; true or false - Default (auto) is false
HudfixDisableSRV=auto

; Do not use CreateUnorderedAccessView for resource tracking
; true or false - Default (auto) is false
HudfixDisableUAV=auto

; Do not use OMSetRenderTargets for resource tracking
; true or false - Default (auto) is false
HudfixDisableOM=auto

; Do not use SetComputeRootDescriptorTable for resource tracking
; true or false - Default (auto) is true
HudfixDisableSCR=auto

; Do not use SetGraphicsRootDescriptorTable for resource tracking
; true or false - Default (auto) is true
HudfixDisableSGR=auto

; Do not use DrawInstanced for resource tracking
; true or false - Default (auto) is false
HudfixDisableDI=auto

; Do not use DrawIndexedInstanced for resource tracking
; true or false - Default (auto) is false
HudfixDisableDII=auto

; Do not use Dispatch for resource tracking
; true or false - Default (auto) is false
HudfixDisableDispatch=auto

; Prevent swapchain buffers to be used as Hudless
; Might help fixing overlay issues but also might reduce compatibility
; true or false - Default (auto) is false
HUDFixDontUseSwapchainBuffers=auto

; Relax resolution checks for Hudless by 32 pixels
; Helps games which use black borders for some resolutions and screen ratios (e.g. Witcher 3)
; true or false - Default (auto) is false
HUDFixRelaxedResolutionCheck=auto

; Enables capturing of resources before shader execution.
; Increase hudless capture chances but might cause capturing of unnecessary resources.
; true or false - Default (auto) is false
HUDFixImmediate=auto

; Resource tracking is always enabled regardless of Hudfix setting
; Might cause performance issues but disabling might cause stability issues
; true or false - Default (auto) is false
AlwaysTrackHeaps=auto

; Instead of single mutex use shards for tracking resources
; Might improve performance on heavy multithreaded games
; true or false - Default (auto) is false
UseShards=auto

; Block rarely used resources from using as hudless
; to prevent flickers and other issues
; true or false - Default (auto) is false
ResourceBlocking=auto

; Makes a copy of Depth to be used with Hudfix FG call
; Setting it false most probably cause occasional garbling 
; true or false - Default (auto) is true
MakeDepthCopy=auto

; Scale depth buffer according to DepthScaleMax value
; Fixes broken depth buffer info for DLSS-D + UE 
; true or false - Default (auto) is false
EnableDepthScale=auto

; Scale value for EnableDepthScale
; Depth value will be divided to this value
; float - Default (auto) is 10000.0
DepthScaleMax=auto

; Makes a copy of motion vectors to be used with Hudfix FG call
; Setting it false most probably cause occasional garbling 
; true or false - Default (auto) is true
MakeMVCopy=auto

; Flip Depth & Velocity textures 
; This should fix OptiFG issues with Unity games
; true or false - Default (auto) is false
ResourceFlip=auto

; Flip Depth & Velocity textures according to interpolation area 
; This should fix OptiFG issues with Unity games
; true or false - Default (auto) is false
ResourceFlipOffset=auto

; Always captures and swaps FSR-FG 3.1 swapchain with selected output
; This should fix double present call issue with 
; games create but not use FSR-FG swapchain (Silent Hill f)
; true or false - Default (auto) is false
AlwaysCaptureFSRFGSwapchain=auto



; -------------------------------------------------------
[Inputs]
; -------------------------------------------------------
; OptiScaler will hook (nvngx.dll) and use Dlss Inputs
; true or false - Default (auto) is true
EnableDlssInputs=auto

; OptiScaler will hook (libxess.dll) and use XeSS Inputs
; true or false - Default (auto) is true
EnableXeSSInputs=auto

; OptiScaler will hook Fsr2 Inputs
; true or false - Default (auto) is true
EnableFsr2Inputs=auto

; OptiScaler will hook Fsr2 Dx11 Inputs instead of Dx12 one
; true or false - Default (auto) is false
UseFsr2Dx11Inputs=auto

; OptiScaler will hook Fsr2 Vulkan Inputs instead of Dx11 & Dx12 ones
; true or false - Default (auto) is false
UseFsr2VulkanInputs=auto

; OptiScaler will use Fsr2 Inputs
; true or false - Default (auto) is true
UseFsr2Inputs=auto

; Try to find FSR2 methods with pattern matching
; Will slow down the loading of the game
; true or false - Default (auto) is false
Fsr2Pattern=auto

; OptiScaler will hook Fsr3 Inputs
; true or false - Default (auto) is true
EnableFsr3Inputs=auto

; OptiScaler will use Fsr3 Inputs
; true or false - Default (auto) is true
UseFsr3Inputs=auto

; Try to find FSR3 methods with pattern matching
; Will slow down the loading of the game
; true or false - Default (auto) is false
Fsr3Pattern=auto

; OptiScaler will hook FidelityFX (amd_fidelityfx_dx12.dll) API Inputs
; true or false - Default (auto) is true
EnableFfxInputs=auto

; OptiScaler will use FidelityFX API Inputs
; true or false - Default (auto) is true
UseFfxInputs=auto

; Enables hot swapping between games FSR3.1 upscaler and OptiScaler's selected upscaler
; true or false - Default (auto) is false
EnableHotSwapping=auto



; -------------------------------------------------------
[FSRFGInputs]
; -------------------------------------------------------
; Do not use Hudless set at ffxConfig
; true or false - Default (auto) is false
SkipConfigForHudless=auto

; Do not use Hudless set at ffxDispatch
; true or false - Default (auto) is false
SkipDispatchForHudless=auto



; -------------------------------------------------------
[Framerate]
; -------------------------------------------------------
; Frame rate limit that uses Reflex, therefore the game has to support Reflex and have it enabled
; AMD users can use Fakenvapi to get this feature working
; float - Default (auto) is 0.0 (disabled)
FramerateLimit=auto



; -------------------------------------------------------
[XeSS]
; -------------------------------------------------------
; Building pipeline for XeSS before init
; true or false - Default (auto) is true
BuildPipelines=auto 

; Creating heap objects for XeSS before init
; true or false - Default (auto) is false
CreateHeaps=auto 

; Select XeSS network model
; Currently doesn't seem to do anything
; 0 = KPSS | 1 = Splat | 2 = Model 3 | 3 = Model 4 | 4 = Model 5 | 5 = Model 6
; Default (auto) is 0
NetworkModel=auto



; -------------------------------------------------------
[FSR]
; -------------------------------------------------------
; Sets camera vertical FOV value for FSR and FSR FG
; 0.0 to 180.0 - Default (auto) is 60.0
VerticalFov=auto

; If Vertical FOV is not defined will be used to calculate Vertical FOV
; 0.0 to 180.0 - Default (auto) is off
HorizontalFov=auto

; Sets camera near value for FSR and FSR FG
; 0.0 to max float value - Default (auto) is 0.1
CameraNear=auto

; Sets camera far value for FSR and FSR FG
; 0.0 to max float value - Default (auto) is 10000.0
CameraFar=auto

; Enables usage of camera values (near, far, FOV)
; received from FSR2/3 or FFX inputs
; true or false - Default (auto) is true
UseFsrInputValues=auto

; Enables Debug View for FSR3.X upscaler
; true or false - Default (auto) is false
DebugView=auto

; Selects upscaler backend for FSR3.X/4
; 0 = FSR 4.0.2 | 1 = FSR 3.1.5 | 2 = FSR 2.3.4 
; Depending on GPU - Default (auto) is 0 - FSR4 for RDNA4, FSR3 for the rest
UpscalerIndex=auto

; Selects FG backend for FFX
; 0 = FSR 4.0.0 | 1 = FSR 3.1.6
; Depending on GPU - Default (auto) is 0 - FSR4 for RDNA4, FSR3 for the rest
FGIndex=auto

; Sets Velocity Factor for FSR3.1.1 and above
; Value of 0.0f can improve temporal stability of bright pixels.
; 0.0 to 1.0 - Default (auto) is 1.0
VelocityFactor=auto

; Sets Reactiveness Scale for FSR3.1.4 and above
; Meant for development purpose to test if writing a larger value to reactive mask, reduces ghosting
; 0.0 to infinite - Default (auto) is 1.0
ReactiveScale=auto

; Sets Shading Scale for FSR3.1.4 and above
; Increasing this scales fsr3.1 computed shading change value at read to have higher reactiveness.
; 0.0 to infinite - Default (auto) is 1.0
ShadingScale=auto

; Sets Accumulation added per frame for FSR3.1.4 and above
; Corresponds to amount of accumulation added per frame at pixel coordinate where disocclusion occurred or when reactive mask value is > 0.0f. 
; Decreasing this and drawing the ghosting object (IE no mv) to reactive mask with value close to 1.0f can decrease temporal ghosting. 
; Decreasing this value could result in more thin feature pixels flickering.
; 0.0 to 1.0 - Default (auto) is 0.333
AccAddPerFrame=auto

; Sets Minimum Disocclusion Accumulation for FSR3.1.4 and above
; Increasing this value may reduce white pixel temporal flickering around swaying thin objects that are disoccluding one another often. 
; Too high value may increase ghosting. A sufficiently negative value means for pixel coordinate at frame N that is disoccluded, 
; add fAccumulationAddedPerFrame starting at frame N+2.
; -1.0 to 1.0 - Default (auto) is -0.333
MinDisOccAcc=auto

; Use raw DLSS reactive mask as transparency mask
; true or false - Default (auto) is true
UseReactiveMaskForTransparency=auto

; Bias to apply DLSS reactive mask when using with FSR
; Higher the value, more bias on new frame
; 0.0 - 0.9 - Default (auto) is 0.45
DlssReactiveMaskBias=auto

; Enables updating of FSR3.X to FSR4
; true or false - Default (auto) depends on GPU - true for RDNA4
Fsr4Update=auto

; Enables INT8 model for all GPUs
; true or false - Default (auto) is false
Fsr4ForceEnableInt8=auto

; Select internal FSR4 preset to use
; 0 = For FSR Native AA, 1 = Ultra Quality/Quality, 2 = Balanced, 3 = Performance, 4 = DRS, 5 = Ultra Performance
; From 0 to 5 - Default (auto) is game's default
Fsr4Preset=auto

; Enable FSR4 Debug View visualization
; Might consume more VRAM
; true or false - Default (auto) is false
Fsr4EnableDebugView=auto

; Enable FSR4 Watermark
; true or false - Default (auto) is false
Fsr4EnableWatermark=auto

; Prevents OptiScaler from loading amdxc64.dll
; true or false - Default (auto) is false
Fsr4DoNotLoadAmdxc64=auto

; Indicates input color resource uses Non-Linear color space
; Might improve IQ of FSR4
; true or false - Default (auto) is false
FsrNonLinearColorSpace=auto

; Indicates input color resource contains perceptual sRGB colors
; Might improve IQ of FSR4
; true or false - Default (auto) is false
FsrNonLinearSRGB=auto

; Indicates input color resource contains perceptual PQ colors
; Might improve IQ of FSR4
; true or false - Default (auto) is false
FsrNonLinearPQ=auto

; Updates the DirectX 12 Agility SDK
; Enabling the use of FSR4 on Windows 10 in older titles like Cyberpunk 2077
; You MUST copy D3D12_OptiScaler folder next to game's exe!
; true or false - Default (auto) is false
FsrAgilitySDKUpgrade=auto



; -------------------------------------------------------
[DLSS]
; -------------------------------------------------------
; Enables calls to original NVNGX
; true or false - Default (auto) is true
Enabled=auto

; Set this to true to enable custom render preset overrides
; true or false - Default (auto) is false
RenderPresetOverride=auto

; Render presets for quality settings
; Depends on DLSS version, but most recent order is
; 0 = Default | 1 = A | 2 = B | 3 = C | 4 = D | 5 = E | 6 = F | 7 = G 
; 8 = H | 9 = I | 10 = J | 11 = K | 12 = L | 13 = M | 14 = N | 15 = O 
; Default (auto) is 0
RenderPresetForAll=auto
RenderPresetDLAA=auto
RenderPresetUltraQuality=auto
RenderPresetQuality=auto
RenderPresetBalanced=auto
RenderPresetPerformance=auto
RenderPresetUltraPerformance=auto

; Use generic appid with NGX, fixes OptiScaler preset override not working with certain games
; true or false - Default (auto) is false
UseGenericAppIdWithDlss=auto



; -------------------------------------------------------
[DLSSD]
; -------------------------------------------------------
; Set this to true to enable custom render preset overrides
; true or false - Default (auto) is false
RenderPresetOverride=auto

; Render presets for quality settings
; Depends on DLSSD version, but most recent order is
; 0 = Default | 1 = A | 2 = B | 3 = C | 4 = D | 5 = E
; Default (auto) is 0
RenderPresetForAll=auto
RenderPresetDLAA=auto
RenderPresetUltraQuality=auto
RenderPresetQuality=auto
RenderPresetBalanced=auto
RenderPresetPerformance=auto
RenderPresetUltraPerformance=auto



; -------------------------------------------------------
[Nukems]
; -------------------------------------------------------
; Fix broken visuals in some games (mostly non-UE) on AMD GPUs under Windows
; Can cause stutters, so best to use only when necessary and mentioned
; true or false - Default (auto) is false
MakeDepthCopy=auto



; -------------------------------------------------------
; -------------------------------------------------------
[Libraries]
; -------------------------------------------------------
; Main folder for OptiScaler to check dll files below
; Default is .\
OptiDllPath=auto

; Options below for overriding path per dll
; -----------------------------------------

; nvngx.dll or _nvngx.dll
NvngxPath=auto

; nvngx_dlss.dll
NvngxDlssPath=auto

; nvapi64.dll or fakenvapi.dll
NvapiPath=auto
                     
; amd_fidelityfx_dx12.dll or amd_fidelityfx_loader_dx12.dll
FfxDx12Path=auto

; amd_fidelityfx_upscaler_dx12.dll
FfxDx12SRPath=auto

; amd_fidelityfx_framegeneration_dx12.dll
FfxDx12FGPath=auto

; amd_fidelityfx_denoiser_dx12.dll
FfxDx12RRPath=auto

; amd_fidelityfx_radiancecache_dx12.dll
FfxDx12RCPath=auto

; amd_fidelityfx_vk.dll
FfxVkPath=auto

; libxess.dll
XeSSPath=auto

; libxess_fg.dll
XeFGPath=auto

; libxell.dll
XeLLPath=auto

; libxess_dx11.dll
XeSSDx11Path=auto

; This path will be added to paths of Nvngx during init
NvngxFeaturePath=auto



; -------------------------------------------------------
[Menu]
; -------------------------------------------------------
; Enables new Overlay ImGui menus
; without this option OptiScaler will disable all FG features
; true or false - Default (auto) is when OptiScaler is nvngx.dll false otherwise true
OverlayMenu=auto

; In-game ImGui menu scale
; 0.5 to 2.0 - Default (auto) is 1.0, gets lower below 900p
Scale=auto

; Shortcut key for opening menu
; For all keycode values, you can check this address
; Match Description with key Value
; https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
; Integer value - Default (auto) is 0x2D which equals VK_INSERT/Insert key, previous default key was 0x24 -> VK_HOME/Home key
; If you want to use e.g. VK_BACK/Backspace key, that would be 0x08 - set ShortcutKey=0x08
; -1 -> No shortcut key
ShortcutKey=auto

; Extends Scaling Ratio limits to 0.1 - 6.0
; true or false - Default (auto) is false
ExtendedLimits=auto

; Use High Quality Font for Menu
; Might use more VRAM
; If you see a black overlay or experience menu related crashes with Vulkan, try disabling
; true or false - Default (auto) is true
UseHQFont=auto

; Controls the size of just the font without touching other style elements
; Mostly useful when using custom fonts via TTFFontPath
; float - Default (auto) is 14.0
FontSize=auto

; Path to a font to be used as HQ Font, requires UseHQFont=true
; Best to use monospace fonts
; Example path: C:\\Windows\\Fonts\\comic.ttf
; Default (auto) is Hack-Regular bundled with OptiScaler
TTFFontPath=auto

; Disables Startup Splash message
; true or false - Default (auto) is false
DisableSplash=auto

; Enables FPS overlay
; true or false - Default (auto) is false
ShowFps=auto

; In-game FPS Overlay scale
; 0.5 to 2.0 - Default (auto) is using the same scale as menu
FpsScale=auto

; FPS overlay position
; 0 = Top Left | 1 = Top Right | 2 = Bottom Left | 3 Bottom Right
; 0 to 3 - Default (auto) is 0
FpsOverlayPos=auto

; FPS overlay type
; 0 = Just FPS | 1 = Simple | 2 = Detailed | 3 = Detailed + Graph | 4 Full | 5 Full + Graph | 6 Reflex timings
; 0 to 6 - Default (auto) is 0
FpsOverlayType=auto

; Shortcut key for FPS overlay
; https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
; Integer value - Default (auto) is 0x21 -> VK_PRIOR/Page up key
; -1 -> No shortcut key
FpsShortcutKey=auto

; Shortcut key for FPS overlay type cycle
; https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
; Integer value - Default (auto) is 0x22 -> VK_NEXT/Page down key 
; -1 -> No shortcut key
FpsCycleShortcutKey=auto

; Enables Horizontal FPS overlay layout
; true or false - Default (auto) is false
FpsOverlayHorizontal=auto

; FPS Overlay background alpha
; 0.0 to 1.0 - Default (auto) is 0.4
FpsOverlayAlpha=auto

; Shortcut key for FG enabled/disabled
; https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
; Integer value - Default (auto) is 0x23 -> VK_END/End key
; -1 -> No shortcut key
FGShortcutKey=auto

; Enables Light Theme for Menu  
; true or false - Default (auto) is false
LightTheme=auto

; Accent color for the menu
; R/G/B float colors values of the accent color for the menu
; 0.0 to 1.0 - Default (auto) R: 0.0, G: 0.4, B: 0.77 (Blue)
AccentColorR=auto
AccentColorG=auto
AccentColorB=auto

; Background color for the menu
; R/G/B float colors values of the accent color for the menu
; 0.0 to 1.0 - Default (auto) R: 0.0, G: 0.0, B: 0.0 (Black)
BGColorR=auto
BGColorG=auto
BGColorB=auto

; Background alpha for the menu
; 0 is transparent and 1 is opaque
; 0.0 to 1.0 - Default (auto) 0.99
BGColorA=auto




; -------------------------------------------------------
[Spoofing]
; -------------------------------------------------------
; VendorID to spoof 
; 0x10de = Nvidia | 0x8086 = Intel | 0x1002 = AMD
; Integer value - Default (auto) is 0x10de 
SpoofedVendorId=auto

; DeviceID to spoof 
; 0x2684 = 4090 | 0xE20B = B580 | 0x7550 9070 XT
; Integer value - Default (auto) is 0x2684 (4090)
SpoofedDeviceId=auto

; Target VendorID to be spoofed
; Integer value - Default (auto) is all 
TargetVendorId=auto

; Target DeviceID to be spoofed
; Default (auto) is all 
TargetDeviceId=auto

; Spoofed GPU name
; NVIDIA GeForce RTX 4090 | Intel(R) Arc(TM) B580 Graphics | AMD Radeon RX 9070 XT
; Default (auto) is NVIDIA GeForce RTX 4090
SpoofedGPUName=auto

; Enables GPU spoofing for Streamline, even if Dxgi spoofing is disabled for the rest of the game
; Usually allows for using Fakenvapi without spoofing the whole game, and sometimes DLSS/DLSSG
; true or false - Default (auto) is true
StreamlineSpoofing=auto

; Enables Nvidia GPU spoofing for DXGI (can be changed above to spoof other vendors)
; true or false - Default (auto) is true for AMD/Intel, false for Nvidia
Dxgi=auto

; Enables wrapping of DxgiFactory instead of hooking
; Might cause issues or help Nvidia cards with other mods
; true or false - Default (auto) is false
DxgiFactoryWrapping=auto

; Skips DXGI GPU spoofing when caller method in the list (example: slInit|slGetPluginFunction|nvapi_QueryInterface)
; Be careful this will disable spoofing for rest of the calls, also does not work on Linux
; method names seperated with pipe "|" - Default (auto) is disabled
DxgiBlacklist=auto

; Spoof amount of VRAM for DXGI
; Spoofed amount in GBs - Default (auto) is disabled
DxgiVRAM=auto

; Enables Nvidia GPU spoofing for Vulkan (can be changed above to spoof other vendors)
; true or false - Default (auto) is false
Vulkan=auto

; Enables Nvidia extension spoofing for Vulkan
; true or false - Default (auto) is false
VulkanExtensionSpoofing=auto

; Spoof amount of VRAM for Vulkan
; Spoofed amount in GBs - Default (auto) is disabled
VulkanVRAM=auto

; Enables spoofing of Hardware Accelerated GPU Scheduling
; Required for Nukem's mod, also lets RTX40xx series users use DLSSG without HAGS enabled 
; true or false - Default (auto) is false, unless DLSSG mod is enabled
SpoofHAGS=auto

; Enables overriding of requested D3D feature level
; true or false - Default (auto) is false
D3DFeatureLevel=auto

; Prevents DirectX12 not supported error on UE games
; with Intel cards when spoofing enabled
; true or false - Default (auto) is false
UEIntelAtomics=auto

; Spoofs Vendor ID, Device ID and Driver Version at registry level
; true or false - Default (auto) is false
Registry=auto

; Driver version to be spoofed at registry
; string value - Default (auto) is 32.0.15.9155 (For Nvidia)
RegistryDriver=auto

; Spoofs Vendor ID, Device ID at User32 level
; true or false - Default (auto) is false
User32=auto



; -------------------------------------------------------
[Plugins]
; -------------------------------------------------------
; Path that will be searched for same filename plugins (dxgi.dll, winmm.dll, etc.)
; Default is plugins under OptiDllPath ".\OptiScaler\plugins\"
Path=auto

; Lets OptiScaler load *.asi files in plugins folder
; true or false - Default (auto) is false
LoadAsiPlugins=auto

; Delay before injecting late-loaded *.asi files in plugins folder
; To load an ASI plugin late, add -loadlate to its filename before the extension, e.g. "myplugin-loadlate.asi"
; Integer value in seconds - Default (auto) is 30
LateAsiPluginsDelay=auto

; Loads SpecialK64.dll from game's exe folder
; Please create an empty SpecialK.dxgi file next to SpecialK64.dll
; to set SpecialK's working mode, otherwise it will not be activated
; BECAUSE OF STABILITY ISSUES, WILL NOT BE LOADED WHEN OPTIFG, DLSSG via SL or FSR-FG INPUTS ARE ENABLED
; true or false - Default (auto) is false
LoadSpecialK=auto

; Loads Reshade64.dll from game's exe folder
; Rename Reshade dll to ReShade64.dll, put next to OptiScaler and set to true
; true or false - Default (auto) is false
LoadReshade=auto



; -------------------------------------------------------
[NvApi]
; -------------------------------------------------------
; Override loading of nvapi64.dll 
; true or false - Default (auto) is false for Nvidia, true for others
OverrideNvapiDll=auto

; Disable FlipMetering
; Fix the thick frametime graph caused by Nvidia's Flip Metering when using NukemFG, needs Fakenvapi to work
; true or false - Default (auto) is false for Nvidia, true for others
DisableFlipMetering=auto

; Do not use fakenvapi for converting Reflex calls to XeLL calls on Nvidia GPUs
; Default (auto) is false
DontUseFakenvapiForXeLLOnNvidia=auto



; -------------------------------------------------------
[Dx11withDx12]
; -------------------------------------------------------
; Delay some operations during creation of D11wDx12 features to increase compatibility
; true or false - Default (auto) is false
UseDelayedInit=auto

; Prefer using D3D11_RESOURCE_MISC_SHARED, which is lower level
; and a bit more performant and possibly less compatible
; true or false - Default (auto) is true
DontUseNTShared=auto



; -------------------------------------------------------
[Hooks]
; -------------------------------------------------------
; Early hooking of kernel methods 
; May cause compatibility issues!!!
; true or false - Default (auto) is false
EarlyHooking=auto

; Skip hooking of local nvngx files and only hook nvngx at registry
; Needed for Uniscaler + FG
; true or false - Default (auto) is false
HookOriginalNvngxOnly=auto

; Only hook ntdll.dll methods, skip kernel32.dll and kernelbase.dll hooks
; true or false - Default (auto) is true
UseNtdllHooks=auto



; -------------------------------------------------------
[Sharpness]
; -------------------------------------------------------
; Override DLSS Sharpness parameter with fixed Sharpness value
; true or false - Default (auto) is false
OverrideSharpness=auto

; Strength of Sharpening, 
; value range between 0.0 and 1.0 (while using upper limit is RCAS 1.3) - Default (auto) is 0.3
Sharpness=auto



; -------------------------------------------------------
[OutputScaling]
; -------------------------------------------------------
; Enable Output Scaling option for Dx12 and Dx11 with Dx12 backends
; true or false - Default (auto) is false
Enabled=auto

; Output Scaling ratio 
; 0.5 - 3.0 - Default (auto) is 1.5
Multiplier=auto

; Downscaler to use for Output Scaling
; 0 = FSR1 | 1 = Bicubic | 2 = Catmull-Rom | 3 = Lanczos2 | 4 = Lanczos3 | 5 = Kaiser2 | 6 = Kaiser3 | 7 = MAGIC
; 0 to 7 - Default (auto) is 0 (FSR1)
Downscaler=auto



; -------------------------------------------------------
[CAS]
; -------------------------------------------------------
; Enables RCAS sharpening 
; true or false - Default (auto) is false
Enabled=auto

; Enable Motion Sharpness
; true or false - Default (auto) is false
MotionSharpnessEnabled=auto

; Sharpening will be added or removed according to motion length
; value range between -1.3 and 1.3 - Default (auto) is 0.4
MotionSharpness=auto

; How much a pixel should move before Motion Sharpness is applied
; 0.0 - 100.0 - Default (auto) is 0.0
MotionThreshold=auto

; How much a pixel should move to reach maximum MotionSharpness value 
; Values between MotionThreshold and this value will use be used to scale sharpness value
; 0.0 - 100.0 - Default (auto) is 10.0
MotionScaleLimit=auto

; Enable Contrast based sharpening 
; Increases sharpness at high contrast areas.
; true or false - Default (auto) is false
ContrastEnabled=auto

; Contrast based sharpening value
; Higher values increases sharpness at high contrast areas.
; High values might cause graphical GLITCHES when used with high sharpness values !!!
; -2.0 - 2.0  - Default (auto) is -0.3
Contrast=auto

; Enable Debug Highlighting for Motion/DA Sharpening
; Reddish hue for added, greenish for reduced sharpness
; Blue tint for detected edges in Depth Aware sharpening
; true or false - Default (auto) is false
SharpenerDebug=auto

; Enables Depth-Aware RCAS sharpening.
; Reduces sharpening across object boundaries to prevent halos and artifacts.
; The farther away is the object, the more sharpening is applied (limited to 1.0)
; Recommended for scenes with complex geometry or upscaling.
; true or false - Default (auto) is false
UseDepthAwareSharpen=auto

; Enables Depth-Aware Directional Adaptive Sharpening (DAS).
; Reduces sharpening across object boundaries to prevent halos and artifacts.
; The farther away is the object, the more sharpening is applied (limited to 1.0)
; Recommended for scenes with complex geometry or upscaling.
; true or false - Default (auto) is false
UseDASDepthAwareSharpen=auto

; Indicates whether the input depth is already linear.
; Enable if depth represents real distance (linear space).
; Disable if using hardware depth (non-linear), which will be linearized in the shader.
; Incorrect setting will cause broken edge detection.
; true or false - Default (auto) is false
DADepthIsLinear=auto

; Controls how strongly sharpening is reduced across depth edges.
; Higher values more aggressively block sharpening at object boundaries (reduces halos).
; Lower values allow more sharpening across edges (sharper, but riskier).
; 2.0 - 600.0  - Default (auto) is 4.0
DADepthScale=auto

; Ignores small depth differences before edge detection.
; Higher values reduce noise and flickering from minor depth changes.
; Lower values preserve fine detail, but may react to depth noise.
; 0.005 - 0.03  - Default (auto) is 0.01
DADepthBias=auto

; Clamps the final image to the [0, 1] range.
; Prevents overshoot artifacts such as bright halos or negative colors.
; Recommended for LDR pipelines; optional for HDR depending on tone-mapping.
; true or false - Default (auto) is false
DAClampOutput=auto



; -------------------------------------------------------
[Log]
; -------------------------------------------------------
; Should a log file be created 
; true or false - Default (auto) is false
LogToFile=auto

; Verbosity level of file logs
; 0 = Trace / 1 = Debug / 2 = Info / 3 = Warning / 4 = Error
; Default (auto) is 0 = Trace
LogLevel=auto

; Log to console (Log level is always 2 (Info) for performance reasons) 
; true or false - Default (auto) is false
LogToConsole=auto

; Log to NVNGX API
; true or false - Default (auto) is false
LogToNGX=auto

; Log to Debug output
; true or false - Default (auto) is false
LogToDebug=auto

; Open console window for logs
; true or false - Default (auto) is false
OpenConsole=auto

; When set to false creates a new log file for every OptiScaler session
; true or false - Default (auto) is true
SingleFile=auto

; Custom log filename
; You can also specify a custom *path* for the log
; Default (auto) is OptiScaler.log in current folder
LogFileName=auto

; Enables Async logging
; true or false - Default (auto) is true
LogAsync=auto

; Async logging threads 
; 1 - 8 - Default (auto) is 1
LogAsyncThreads=auto



; -------------------------------------------------------
[InitFlags]
; -------------------------------------------------------
; Force add ENABLE_AUTOEXPOSURE to init flags
; Some Unreal Engine games need this, fixes colors specially in dark areas
; true or false - Default (auto) is  DLSS value
AutoExposure=auto

; Force add HDR_INPUT_COLOR to init flags
; true or false - Default (auto) is  DLSS value
HDR=auto

; Force add INVERTED_DEPTH to init flags
; true or false - Default (auto) is DLSS value
DepthInverted=auto

; Force add JITTERED_MV flag to init flags
; true or false - Default (auto) is  DLSS value
JitterCancellation=auto

; Force add HIGH_RES_MV flag to init flags
; true or false - Default (auto) is  DLSS value
DisplayResolution=auto

; Force remove RESPONSIVE_PIXEL_MASK from init flags
; true or false - Default (auto) is true
DisableReactiveMask=auto



; -------------------------------------------------------
[UpscaleRatio]
; -------------------------------------------------------
; Set this to true to enable the internal Resolution Override 
; true or false - Default (auto) is false
UpscaleRatioOverrideEnabled=auto

; Set the forced Upscale Ratio value
; Default (auto) is 1.3
UpscaleRatioOverrideValue=auto



; -------------------------------------------------------
[QualityOverrides]
; -------------------------------------------------------
; Set this to true to enable Custom quality mode overrides
; true or false - Default (auto) is false
QualityRatioOverrideEnabled=auto

; Set Custom Upscaling Ratio for each quality mode
;
; Default (auto) values:
; DLAA					: 1.0
; Ultra Quality         : 1.3
; Quality               : 1.5
; Balanced              : 1.7
; Performance           : 2.0
; Ultra Performance     : 3.0
QualityRatioDLAA=auto
QualityRatioUltraQuality=auto
QualityRatioQuality=auto
QualityRatioBalanced=auto
QualityRatioPerformance=auto
QualityRatioUltraPerformance=auto



; -------------------------------------------------------
[DRS]
; -------------------------------------------------------
; Set this to true to enable limiting DRS min resolution to Rendering resolution
; true or false - Default (auto) is false
DrsMinOverrideEnabled=auto

; Set this to true to enable limiting DRS max resolution to Rendering resolution
; true or false - Default (auto) is false
DrsMaxOverrideEnabled=auto



; -------------------------------------------------------
[HDR]
; -------------------------------------------------------
; Force HDR color space
; true or false - Default (auto) is false
ForceHDR=auto

; Use HDR10
; DXGI_FORMAT_R10G10B10A2_UNORM instead of DXGI_FORMAT_R16G16B16A16_FLOAT
; true or false - Default (auto) is false
UseHDR10=auto

; Skip setting HDR colorspace 
; true or false - Default (auto) is false
SkipColorSpace=auto



; -------------------------------------------------------
[V-Sync]
; -------------------------------------------------------
; Enable V-Sync controls
; true or false - Default (auto) is false
OverrideVsync=auto

; Force V-Sync value
; true or false - Default (auto) is none selected
ForceVsync=auto

; Sync interval value for V-Sync
; 0 to 3 - Default (auto) is none selected
SyncInterval=auto



; -------------------------------------------------------
[Anisotropy]
; -------------------------------------------------------
; Override max Anisotropy/Anisotropic Filtering for textures
; 2, 4, 8, 16 - Default (auto) is disabled
AnisotropyOverride=auto

; Change comparison filters to Anisotropic ones
; true or false - Default (auto) is true
ModifyComparison=auto

; Change min/max filters to Anisotropic ones
; true or false - Default (auto) is true
ModifyMinMax=auto

; Skip overriding on point filters
; true or false - Default (auto) is true
SkipPointFilter=auto



; -------------------------------------------------------
[Mipmap]
; -------------------------------------------------------
; Override value for Mipmap LOD bias
; -15.0 - 15.0 - Default (auto) is disabled
MipmapBiasOverride=auto

; Use a fixed value for LOD bias 
; true or false - Default (auto) is false
MipmapBiasFixedOverride=auto

; Use override value as scale multiplier 
; true or false - Default (auto) is false
MipmapBiasScaleOverride=auto

; Override all textures LOD bias (normally only overriding < 0 values)
; true or false - Default (auto) is false
MipmapBiasOverrideAll=auto



; -------------------------------------------------------
[ProcessFilter]
; -------------------------------------------------------
; Only inject into this specific process (case-insensitive)
; Example: TargetProcessName=endfield.exe
; Default (auto) is disabled (injects into all processes)
TargetProcessName=auto

; Don't inject into this specific process (case-insensitive)
; Process names seperated with pipe "|" - Default (auto) is 
; crashpad_handler.exe and others - listed in Config.h under ProcessFilter
ProcessExclusionList=auto



; -------------------------------------------------------
[Hotfix]
; -------------------------------------------------------
; Enables checking for latest version from Github
; true or false - Default (auto) is true
CheckForUpdate=auto

; Enables blocking of Steam and Epic overlays
; Also blocks Steam Input
; true or false - Default (auto) is false, except for OptiFG when true
DisableOverlays=auto

; Use manual input polling instead of hooking WndProc
; Might help games which does not capture inputs properly
; As a downside it will not be able to block inputs when menu is open
; true or false - Default (auto) is false
ManualInputPolling=auto

; Simulate waitable object event signals for FG swapchain
; true or false - Default (auto) is false
SimulateWaitableObject=auto

; OptiScaler will delay loading of Reshade and create D3D12 device first
; This option will prevent warnings/crashes with Luma and some other ReShade mods
; When using Luma mod and this will be enabled
; true or false - Default (auto) is false
CreateD3D12DeviceForLuma=auto

; OptiScaler will try to force High Performance GPU
; true or false - Default (auto) is false
PreferDedicatedGpu=auto

; OptiScaler will report only first High Performance GPU
; true or false - Default (auto) is false
PreferFirstDedicatedGpu=auto

; Rounds internal resolutions width and height to multiple of this value
; 2, 4, 8, 16 ...  - Default (auto) is disabled
RoundInternalResolution=auto

; Skips upscaling of n frames
; n is integer number  - Default (auto) is disabled
SkipFirstFrames=auto

; Restore last used compute signature after upscaling
; true or false - Default (auto) is false
RestoreComputeSignature=auto

; Restore last used graphics signature after upscaling
; true or false - Default (auto) is false
RestoreGraphicSignature=auto

; Tries to track signature changes to fully restore them
; Useful for games using bindless
; true or false - Default (auto) is false
ExtendedStateRestore=auto

; Use precompiled shaders for RCAS, Output Scaling and Mask Bias
; true or false - Default (auto) is true
UsePrecompiledShaders=auto

; Color texture resource state to fix for rainbow colors on AMD cards (for mostly UE games) 
; For UE engine games on AMD, set Color to 4 (D3D12_RESOURCE_STATE_RENDER_TARGET)
ColorResourceBarrier=auto
; For UE engine games on AMD, set MotionVector to 8 (D3D12_RESOURCE_STATE_UNORDERED_ACCESS)
MotionVectorResourceBarrier=auto
DepthResourceBarrier=auto
ColorMaskResourceBarrier=auto
ExposureResourceBarrier=auto
OutputResourceBarrier=auto

; Default (auto) is state correction disabled
; These settings defines each resources initial resource 
; state and add resource barrier for correct state
;
; Common resource barrier states
; ----------------------------------------------------
; D3D12_RESOURCE_STATE_COMMON = 0,
; D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 1,
; D3D12_RESOURCE_STATE_INDEX_BUFFER	= 2,
; D3D12_RESOURCE_STATE_RENDER_TARGET = 4,
; D3D12_RESOURCE_STATE_UNORDERED_ACCESS	= 8,
; D3D12_RESOURCE_STATE_DEPTH_WRITE = 16,
; D3D12_RESOURCE_STATE_DEPTH_READ = 32,
; D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 64,
; D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 128,
;------------------------------------------------------
; 
; All state values can be checked from here
; https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_resource_states
