Advance native Windows RR integration, kernel tooling and local packaging
Implement native NGX feature-13 RR through a LUID-matched D3D12/Vulkan shared-memory and timeline-fence bridge. Add owned parameter snapshots, GPU resource lifetime handling, inherited/enhanced barriers, optional guides, sampled input formats and depth-plane support with stencil preservation. Separate RR initialization from the SR CUDA runtime and expose explicit backend/model selection through player configuration. Add synthetic bridge, snapshot and NGX lifecycle harnesses covering camera/history/reset, parameter mutation, delayed submission, early release, capability gating and unsupported-input rejection. Add exact gfx11 D/E model generation, verified caches, versioned local deployment with configuration backups, and isolated portable model tools with pinned Python, NumPy and glslang dependencies. Extend Windows K benchmarking and private native-cache selection. Fix LLVM 22 emitter/helper compatibility and preserve exact-output validation for local output-kernel optimization. Add native FSR RR provider diagnostics, local development package refresh tooling, installer/checker updates, FidelityFX headers and Windows parity documentation. Keep NVIDIA binaries, derived models and private optimized kernels out of distributable packages. Native RR evidence remains synthetic; game validation, FSR RR dispatch, installer integration and Linux performance parity remain incomplete.
This commit is contained in:
1 parent
3345fffcd3
commit
247fe1092d
60 files changed
+7168
-66
No files matched your search
@@ -3,7 +3,8 @@ param(
|
||||
[Parameter(Mandatory=$true)][string]$DlssdDll,
|
||||
[ValidateSet('D','E')][string]$Preset='D',
|
||||
[string]$OutputDirectory,
|
||||
[string]$GitBash='C:\Program Files\Git\bin\bash.exe'
|
||||
[string]$GitBash='C:\Program Files\Git\bin\bash.exe',
|
||||
[switch]$ReuseCache
|
||||
)
|
||||
$ErrorActionPreference='Stop'
|
||||
$repo=[IO.Path]::GetFullPath((Join-Path $PSScriptRoot '../..'))
|
||||
@@ -18,7 +19,7 @@ $buildRoot=[IO.Path]::GetFullPath((Join-Path $repo 'build'))
|
||||
if(!$OutputDirectory.StartsWith($buildRoot+'\',[StringComparison]::OrdinalIgnoreCase)){
|
||||
throw "RR model output must stay under the ignored build directory: $OutputDirectory"
|
||||
}
|
||||
if(Test-Path -LiteralPath $OutputDirectory){throw "Use a new RR model output directory: $OutputDirectory"}
|
||||
if((Test-Path -LiteralPath $OutputDirectory) -and !$ReuseCache){throw "Use a new RR model output directory or -ReuseCache: $OutputDirectory"}
|
||||
$glslang=Join-Path $repo '.tools/glslang-16.6.0/bin'
|
||||
$pythonHome=Split-Path (Get-Command python.exe -ErrorAction Stop).Source
|
||||
$pythonShim=Join-Path $repo '.tools/rr-build-bin'
|
||||
@@ -35,6 +36,8 @@ $unixOut=(& $cygpath -u $OutputDirectory).Trim()
|
||||
if(!$unixRepo -or !$unixDll -or !$unixOut){throw 'Git Bash path conversion failed.'}
|
||||
$oldPath=$env:PATH
|
||||
$oldPythonPath=$env:PYTHONPATH
|
||||
$oldGfx11=$env:D4R_RR_GFX11
|
||||
$oldRelaxed=$env:D4R_RR_RELAXED
|
||||
$env:PATH="$pythonShim;$pythonHome;$glslang;$(Split-Path $GitBash -Parent);$oldPath"
|
||||
$env:PYTHONPATH=$pythonVendor
|
||||
$env:D4R_RR_GFX11='1'
|
||||
@@ -43,7 +46,16 @@ $log=Join-Path $buildRoot ("native-rr-$($Preset.ToLower())-windows-build.log")
|
||||
try{
|
||||
& $python3 -c 'import numpy; print("numpy", numpy.__version__)'
|
||||
if($LASTEXITCODE){throw 'Pinned NumPy could not load in the Windows RR build environment.'}
|
||||
$command="cd '$unixRepo' && D4R_RR_GFX11=1 D4R_RR_RELAXED=0 bash engine/rr/build_native_model.sh --dll '$unixDll' '$Preset' '$unixOut'"
|
||||
$cacheArguments=@('--model',$OutputDirectory,'--dll',$DlssdDll,'--preset',$Preset,
|
||||
'--glslang',(Join-Path $glslang 'glslangValidator.exe'),'--bash',$GitBash)
|
||||
$cacheTool=Join-Path $PSScriptRoot 'rr-model-cache.py'
|
||||
if(Test-Path -LiteralPath $OutputDirectory){
|
||||
& $python3 $cacheTool check @cacheArguments
|
||||
if($LASTEXITCODE){throw 'RR model cache is absent, stale or changed. Use a new output directory.'}
|
||||
return
|
||||
}
|
||||
function Quote-Bash([string]$Value){return "'"+$Value.Replace("'","'\''")+"'"}
|
||||
$command="cd $(Quote-Bash $unixRepo) && D4R_RR_GFX11=1 D4R_RR_RELAXED=0 bash engine/rr/build_native_model.sh --dll $(Quote-Bash $unixDll) '$Preset' $(Quote-Bash $unixOut)"
|
||||
$previousPreference=$ErrorActionPreference
|
||||
try{
|
||||
$ErrorActionPreference='Continue'
|
||||
@@ -54,6 +66,8 @@ try{
|
||||
foreach($required in @('rr.txt','model.json','enc0_m.spv','dec0_m.spv','hkpn.spv','enc0.args','hkpn.args')){
|
||||
if(!(Test-Path -LiteralPath (Join-Path $OutputDirectory $required))){throw "RR build incomplete; missing $required"}
|
||||
}
|
||||
& $python3 $cacheTool write @cacheArguments
|
||||
if($LASTEXITCODE){throw 'RR build completed but cache manifest could not be written.'}
|
||||
Write-Host "Built local preset $Preset native RR model: $OutputDirectory"
|
||||
Write-Host "DLL SHA256: $hash. Build log: $log"
|
||||
}finally{$env:PATH=$oldPath;$env:PYTHONPATH=$oldPythonPath}
|
||||
}finally{$env:PATH=$oldPath;$env:PYTHONPATH=$oldPythonPath;$env:D4R_RR_GFX11=$oldGfx11;$env:D4R_RR_RELAXED=$oldRelaxed}
|
||||
Reference in new issue
Block a user