Skip to content

Latest commit

 

History

History
53 lines (39 loc) · 4.75 KB

AGENTS.md

File metadata and controls

53 lines (39 loc) · 4.75 KB

Project instructions

Product contract

  • The deliverable is a drop-in native dxgi.dll proxy loaded by Bodycam during its normal Steam launch. Keep the install limited to the proxy, BodycamDLSSFG.yaml, runtime DLLs, and licenses. Do not add a launcher, shortcut, helper executable, service, scheduled task, resident process, ReShade, or separate configurator.
  • Force the real DLSS input path, NVIDIA DLSS Frame Generation, the configured 2x/3x/4x multiplier, and Reflex On + Boost independently of Bodycam's FSR/DLSS menu state. Smooth Motion and VR are out of scope for main.
  • The Insert overlay is the user-facing configuration surface. Keep it compact and isolated from OptiScaler's general-purpose menu.
  • Neural Rendering is optional and fail-open. Missing local NR files must not prevent DLSS, DLSSG, Reflex, or the base menu from working.

Source ownership

  • OptiScaler/ is the vendored, directly buildable source tree. Bodycam-specific code lives beside the upstream code as OptiScaler/OptiScaler/Bodycam*.{cpp,h}; related integration points are edited in place. Do not recreate a generated source tree, patch pipeline, or source-overlay directory.
  • build.ps1 initializes the public dependency submodules and builds OptiScaler/OptiScaler.sln as Release x64. The MSBuild project copies the finished proxy and default YAML to bin/.
  • package.ps1 downloads and verifies the pinned official Streamline archive, assembles the game-root ZIP, and optionally installs it into a Bodycam directory. .build/ is disposable download/staging output only; source must never live there.
  • third_party/nvidia-dlss-nr/nvngx_dlssnr.dll and third_party/renodx-dlss5/renodx-dlss5.addon64 are exact ignored local inputs. Their directories and README files remain tracked.

Runtime boundaries

  • Keep all Bodycam-only behavior gated by the exact Bodycam-Win64-Shipping.exe process name.
  • The NR compatibility host is not a general ReShade implementation. It exports only the ReShade API used by the RenoDX DLSS 5 add-on, loads both local NR files outside the loader lock, and advances event 74 once per real non-test Present.
  • Do not introduce another DXGI/D3D12 wrapper. ReShade chaining previously caused _nvngx access violations, invalid D3D12 command lists, recursion, and startup deadlocks.
  • Keep the Bodycam NVSDK_NGX_D3D12_Shutdown/Shutdown1 guard. Removing it reproduces an _nvngx access violation during Unreal shutdown while Streamline DLSSG is loaded.
  • Face censorship is controlled on the Unreal game thread through the native ProcessEvent hook and the Censor Face mesh components. Pattern-scan failure must disable only that toggle.

Configuration and packaging

  • Preserve the YAML keys multiplier, neural_rendering, neural_preset, neural_style, neural_intensity, and face_censorship. Invalid or duplicate values fall back to defaults. Only the multiplier requires a restart; menu-controlled NR and censorship values persist immediately.
  • NVIDIA Streamline files come only from the official URL and SHA-256 in versions.json. Do not substitute unrelated files from another game or SDK bundle.
  • Include Neural Rendering only when both ignored local files exist; a half-present pair is an error. Never generate a .sha256 sidecar.
  • Preserve third-party license files in the package and keep THIRD_PARTY_NOTICES.md accurate.

Verification

This project intentionally has no unit-test suite or test harness. Do not add one. Use the smallest applicable set of real checks:

./build.ps1
./package.ps1 -Version dev
git diff --check
  • Build changes require a Release x64 build from OptiScaler/OptiScaler.sln, no debug CRT dependency, and the ten ReShade* compatibility exports when NR support changes.
  • Packaging changes require exact ZIP-path inspection and verification that the NR pair is either complete or absent.
  • Runtime changes require one representative Bodycam run: responsive rendering, Steam overlay, expected DLSSG/Reflex/NR modules, working Insert menu, stable Present progression, and no newer Crash Reporter entry. Avoid repeating equivalent long runs once these invariants are established.
  • Before committing, review the entire diff and git status --short; remove dead helpers, stale fallbacks, temporary diagnostics, local absolute paths, logs, dumps, binaries, SDK archives, and generated outputs.

Durable references

  • Read docs/agents/architecture.md before changing source or layer ownership.
  • Read docs/agents/runtime-lifecycle.md before changing initialization, Present timing, or shutdown.
  • Read docs/agents/neural-rendering-findings.md before changing the NR host.
  • Read docs/agents/dependencies.md before updating or packaging runtimes.
  • Read docs/agents/verification.md before declaring a runtime change complete.