Files
OptiScaler/OptiScaler.ini
T
Michał Lewandowski 3410c976e7 Rework nvapi code and deal with externally overridden DLSS presets (#199)
* Clean up nvapi

* Fix up fakenvapi

* Clean up nvapi hooks

* Minor fixes

* Don't log reflex calls by default

* Add warning and config for externally overridden DLSS presets

* Add missing value_for_config()

* Add support for the "Latest" preset

* Fix typo in the config
2025-02-09 19:16:47 +03:00

823 lines
23 KiB
INI

; -------------------------------------------------------
[Upscalers]
; -------------------------------------------------------
; Select upscaler for Dx11 games
; fsr22 (native dx11), fsr31 (native dx11), xess (with dx12), fsr21_12 (dx11 with dx12), fsr22_12 (dx11 with dx12), fsr31_12 (dx11 with dx12), dlss - Default (auto) is fsr22
Dx11Upscaler=auto
; Select upscaler for Dx12 games
; xess, fsr21, fsr22, fsr31, dlss - Default (auto) is xess
Dx12Upscaler=auto
; Select upscaler for Vulkan games
; fsr21, fsr22, fsr31, dlss - Default (auto) is fsr21
VulkanUpscaler=auto
[FrameGen]
; Select the FG type to be used
; optifg - requires amd_fidelityfx_dx12.dll
; nukems - requires dlssg_to_fsr3_amd_is_better.dll, AMD/Intel GPU users need to add fakenvapi as well
; nofg, optifg, nukems - Default (auto) is optifg
FGType=auto
; -------------------------------------------------------
[OptiFG]
; -------------------------------------------------------
; Enables FSR3.1 frame generation
; true or false - Default (auto) is false
Enabled=auto
; Creates FG CommandQueue with _PRIORITY_HIGH flag
; Might help or cause issues with pacing
; true or false - Default (auto) is true
HighPriority=auto
; Enables FSR3.1 frame generation debug view
; true or false - Default (auto) is false
DebugView=auto
; Enables async FSR3.1 frame generation
; true or false - Default (auto) is false
AllowAsync=auto
; Enables HUD fix FSR3.1 frame generation
; Might cause crashes, specially with Async
; true or false - Default (auto) is false
HUDFix=auto
; Delays HUDless image capture
; Might cause crashes, specially 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
; 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
HUDFixImmadiate=auto
; Defines FG rectangle
; integer value - Default (auto) is whole screen
RectLeft=auto
RectTop=auto
RectWidth=auto
RectHeight=auto
; Enables blocking of Steam and Epic overlays
; true or false - Default (auto) is true
DisableOverlays=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
; 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
; Closes Hudfix Cmdlist after Swapchain callback
; Setting it false most probably cause occasional garbling
; true or false - Default (auto) is true
HudFixCloseAfterCallback=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
UseMutexForSwaphain=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
; -------------------------------------------------------
[Inputs]
; -------------------------------------------------------
; Optiscaler will hook (nvngx.dll) and use Dlss Inputs
; true or false - Default (auto) is true
Dlss=auto
; Optiscaler will hook (libxess.dll) and use XeSS Inputs
; true or false - Default (auto) is true
XeSS=auto
; Optiscaler will hook and use Fsr2 Inputs
; true or false - Default (auto) is true
Fsr2=auto
; Try to find FSR2 methods with pattern matching
; Will slow down the loading of game
; true or false - Default (auto) is false
Fsr2Pattern=auto
; Optiscaler will hook and use Fsr3 Inputs
; true or false - Default (auto) is true
Fsr3=auto
; Try to find FSR3 methods with pattern matching
; Will slow down the loading of game
; true or false - Default (auto) is false
Fsr3Pattern=auto
; Optiscaler will hook (amd_fidelityfx_dx12.dll) and use FidelityFX Api Inputs
; true or false - Default (auto) is true
Ffx=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
; 0 = KPSS | 1 = Splat | 2 = Model 3 | 3 = Model 4 | 4 = Model 5 | 5 = Model 6
; Default (auto) is 0
NetworkModel=auto
; Path of libxess.dll
; Default (auto) is same folder as mod dll
LibraryPath=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 100000.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
; 0 = FSR 3.1.2 | 1 = FSR 2.3.2
; 0 or 1 (for now) - Default (auto) is 0
UpscalerIndex=auto
; Sets velocity factor for FSR3.1.1 and above
; 0.0 to 1.0 - Default (auto) is 1.0
VelocityFactor=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
; -------------------------------------------------------
[DLSS]
; -------------------------------------------------------
; Enables calls to original NVNGX
; true or false - Default (auto) is true
Enabled=auto
; Path of nvngx.dll / _nvngx.dll
; Default (auto) is path defined in registry
LibraryPath=auto
; Path of custom nvngx_dlss.dll
; Default (auto) is means override disabled
NVNGX_DLSS_Path=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
; -------------------------------------------------------
[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
; true or false - Default (auto) is false
MakeDepthCopy=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
; 1.0 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
; https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
; Integer value - Default (auto) is 45 -> VK_INSERT (0x2D), previous default key VK_HOME is 36 (0x24)
ShortcutKey=auto
; Extends scaling ratio limits to 0.1 - 6.0
; true or false - Default (auto) is false
ExtendedLimits=auto
; Enables Fps overlay
; true or false - Default (auto) is false
ShowFps=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 = Simple | 1 = Detailed | 2 = Detailed + Graph | 3 Full | 4 Full + Graph
; 0 to 4 - Default (auto) is 0
FpsOverlayType=auto
; Shortcut key for fps overlay
; Integer value - Default (auto) is 33 -> VK_PRIOR (0x21)
FpsShortcutKey=auto
; Shortcut key for fps overlay type cycle
; Integer value - Default (auto) is 34 -> VK_NEXT (0x22)
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
; -------------------------------------------------------
[Spoofing]
; -------------------------------------------------------
; Spoofed GPU name
; Default (auto) is NVIDIA GeForce RTX 4090
SpoofedGPUName=auto
; Enables Nvidia GPU spoofing for DXGI
; true or false - Default (auto) is true
Dxgi=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
; 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, let's RTX40xx series users use DLSSG without HAGS enabled
; true or false - Default (auto) is false, unless DLSSG mod is enabled
SpoofHAGS=auto
; -------------------------------------------------------
[Plugins]
; -------------------------------------------------------
; Path that will be searched for same filename plugins (dxgi.dll, winmm.dll, etc.)
; Default is .\plugins
Path=auto
; Loads SpecialK64.dll from game's exe folder
; Please put a 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 FG SWAPCHAIN IS ENABLED
; true or false - Default (auto) is false
LoadSpecialK=auto
; Loads Reshade64.dll from game's exe folder
; 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
; If nvapi override enabled and file path defined here
; will try to load it from here, otherwise will check current folder for nvapi64.dll
; Default (auto) is local folder
NvapiDllPath=auto
; -------------------------------------------------------
[Dx11withDx12]
; -------------------------------------------------------
; Syncing meathods for Dx11 with Dx12
;
; Valid values are;
; 0 - No syncing (fastest, most prone to errors)
; 1 - Fence
; 2 - Fences + Flush
; 3 - Fences + Event
; 4 - Fences + Flush + Event
; 5 - Query Only
; Default (auto) is 1
TextureSyncMethod=auto
; Default (auto) is 5
CopyBackSyncMethod=auto
; Start output copy back sync after or before Dx12 execution
; true or false - Default (auto) is true
SyncAfterDx12=auto
; 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 false
DontUseNTShared=auto
; -------------------------------------------------------
[Hooks]
; -------------------------------------------------------
; 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
; -------------------------------------------------------
[Sharpness]
; -------------------------------------------------------
; Override DLSS sharpness paramater with fixed shapness 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
; Enable FSR for upscaling & downscaling, otherwise bicubic will be used
; true or false - Default (auto) is true
UseFsr=auto
; Downscaler to use when FSR is disabled
; 0 = Bicubic | 1 = Lanczos | 2 = Catmull-Rom | 3 = MAGC
; 0 to 3 - Default (auto) is 0 (Bicubic)
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 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 debug highlighting for motion sharpening
; Reddish hue for added greenish for reduced sharpness
; true or false - Default (auto) is false
MotionSharpnessDebug=auto
; -------------------------------------------------------
[Log]
; -------------------------------------------------------
; Log file, if undefined OptiScaler.log file in current folder
; Default (auto) is OptiScaler.log in same folder
LogFile=auto
; Verbosity level of file logs
; 0 = Trace / 1 = Debug / 2 = Info / 3 = Warning / 4 = Error
; Default (auto) is 2 = Info
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 file
; true or false - Default (auto) is false
LogToFile=auto
; Log to NVNGX API
; true or false - Default (auto) is false
LogToNGX=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
; 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 needs 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
; true or false - Default (auto) is false
UseHDR10=auto
; -------------------------------------------------------
[Hotfix]
; -------------------------------------------------------
; 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
; 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
; Override max anisotropy for textures
; 2, 4, 8, 16 - Default (auto) is disabled
AnisotropyOverride=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
; Use precompiled shaders for RCAS, Output Scaling ans 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 it to 4 (D3D12_RESOURCE_STATE_RENDER_TARGET)
; Default (auto) is state correction disabled
ColorResourceBarrier=auto
; Default (auto) is state correction disabled
; For UE engine games on AMD, set it to 8 (D3D12_RESOURCE_STATE_UNORDERED_ACCESS)
MotionVectorResourceBarrier=auto
; Default (auto) is state correction disabled
DepthResourceBarrier=auto
; Default (auto) is state correction disabled
ColorMaskResourceBarrier=auto
; Default (auto) is state correction disabled
ExposureResourceBarrier=auto
; Default (auto) is state correction disabled
OutputResourceBarrier=auto
; Use generic appid with NGX, fixes OptiScaler preset override not working with certain games
; true or false - Default (auto) is false
UseGenericAppIdWithDlss=auto
; 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