You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 19e934e
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .github/workflows/just_build_no_signature.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -133,7 +133,7 @@ jobs:
133
133
& $env:ComSpec /d /c $command
134
134
if ($LASTEXITCODE) { throw "Compatibility guard test failed: $name" }
135
135
}
136
-
foreach ($script in @('test_shutdown_routing.py','test_provider_publication_routes.py','test_provider_dll_boundary.py','test_combo_release.py','test_native_operation_routes.py','test_native_module_publication.py','test_native_init_scopes.py','test_ngx_init_paths.py','test_ngx_init_metadata.py','test_provider_release_admission.py','test_provider_call_admission.py')) {
136
+
foreach ($script in @('test_shutdown_routing.py','test_provider_publication_routes.py','test_provider_dll_boundary.py','test_combo_release.py','test_native_operation_routes.py','test_native_module_publication.py','test_native_init_scopes.py','test_ngx_init_paths.py','test_ngx_init_metadata.py','test_provider_release_admission.py','test_provider_call_admission.py','test_provider_init_footprint.py')) {
Copy file name to clipboardExpand all lines: docs/PROVIDER_TRANSITIONS_20260924.md
+8-1Lines changed: 8 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,20 @@ The per-handle registry prevented Release racing Evaluate for the same public to
6
6
7
7
ProviderCallAdmission now separates lifecycle transitions from ordinary operations across the one shared replacement provider, including its D3D12 and Vulkan entry points. A transition is admitted only when no operation/transition is active; an operation is admitted only outside a transition. Conflicting calls return FAIL_NotInitialized without waiting. A movable scope owner releases admission on normal return and exceptions. The short metadata mutex is never held while calling native/provider/application code. Concurrent ordinary operations remain allowed as before; this change is transition exclusion, not universal provider thread safety.
8
8
9
-
All 22 NVSDK-result entry points in Nvngx_FG are covered. The three Create variants clear OutHandle even when admission is denied. Both exported shutdown coordinators hold provider transition admission across native shutdown, provider shutdown and local cleanup. A busy provider therefore prevents the exported shutdown from touching native ownership in the first place. A later provider error propagates and preserves local cleanup state for retry; a successful native shutdown is not rolled back or repeated because its existing ownership ledger already records completion. A published provider is closed even if the current configuration selector has changed to None. An absent provider or unsupported API closes as a no-op without loading a DLL.
9
+
All 22 NVSDK-result entry points in Nvngx_FG are covered. The three Create variants clear OutHandle even when admission is denied. Both exported shutdown coordinators hold provider transition admission across native shutdown, provider shutdown and local cleanup. A busy provider therefore prevents the exported shutdown from touching native ownership in the first place. A later provider error propagates and preserves local cleanup state for retry; a successful native shutdown is not rolled back or repeated because its existing ownership ledger already records completion. A provider with an outstanding Init attempt is closed even if the current configuration selector has changed to None. An absent provider or unsupported API closes as a no-op without loading a DLL.
10
10
11
11
The shutdown callback supplied to the coordinator must be used synchronously within its admitted scope; it is not a stored/deferred teardown API. No game/driver settings, SL1 runtime policy, installer behavior or frame multiplier code changes.
12
12
13
+
## Init cleanup footprint follow-up
14
+
15
+
A capability query can publish the provider without ever initializing it. Propagating that provider's Shutdown failure would incorrectly reject ordinary DLSS-only shutdown. Five provider Init routes now record a per-API/device cleanup footprint immediately before calling the SDK. Shutdown skips devices with no attempt; successful close clears only the affected footprint (or all for global close). Failed or throwing Init may have partially allocated resources and therefore keeps its cleanup obligation; failed or throwing close keeps it for retry. Null Init devices are rejected before invoking the SDK. Published-but-unused providers close without calling the SDK.
16
+
17
+
These sets are accessed only under transition admission. They track attempted initialization, not readiness, COM ownership, reference counts or handle generations. Repeated Init behavior remains forwarded. Combo child-level partial success still requires its own bookkeeping.
18
+
13
19
## Focused checks
14
20
15
21
- 85 new extracted entry-prefix/production-admission checks cover all 22 provider SDK entry points, busy transition/operation routing, empty Create outputs, moved leases, reentrant callback threads, exceptions, admission retained through caller cleanup, and no-op unsupported/absent-provider shutdown. Native/GPU bodies beyond ordinary admission are stand-ins.
22
+
- 104 new checks execute all five complete Init bodies and the real shutdown coordinators with fake SDK results: never-initialized provider, wrong/null device, busy/Pending/unavailable lookup, failed/throwing Init and close, retry, global clearing, and independent API footprints.
16
23
- Actual exported native/provider shutdown checks expand from 43 to 52: blocked shutdown changes neither API/device ownership nor local state, provider failure is propagated, and retry does not repeat a successful native shutdown.
17
24
- Affected 36 provider publication-route and 18 per-handle Release-route checks pass with the actual new coordinator bodies.
18
25
- Full Windows build/format/package outcome will be recorded after CI completes. These CPU checks do not establish that the Witcher loading/toggle crash is fixed.
0 commit comments