Skip to content

Improve Quantum Break DLSS depth, jitter, and transition handlingvior, transition handling, PDB behavior, and validation status.#130

Merged
mqhaji merged 2 commits into
Filoppi:mainfrom
mqhaji:main
Jun 9, 2026
Merged

Improve Quantum Break DLSS depth, jitter, and transition handlingvior, transition handling, PDB behavior, and validation status.#130
mqhaji merged 2 commits into
Filoppi:mainfrom
mqhaji:main

Conversation

@mqhaji

@mqhaji mqhaji commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

This improves the Quantum Break super-resolution path by fixing the depth source used for upscaling, correcting the jitter values passed to DLSS/FSR, and hardening DLSS startup across loading-to-gameplay transitions.

Changes

  • Source SR depth from the depth-linearization pass input instead of the already-linearized output.
  • Cache the pre-linearized clip/device depth from 0xA43343D6 PS SRV0.
  • Prefer ssaa.g_vSSAAJitterOffset[0] as the authoritative temporal jitter source.
  • Convert SSAA jitter from normalized UV units to DLSS/FSR input pixel units.
  • Flip jitter Y to match the SR convention.
  • Treat cb_update_1.g_vJitterOffset as already pixel-space if it is ever used.
  • Add transition guards for temporal-resolve variants missing valid scene constant buffers.
  • Skip invalid transition resolves instead of replaying them through the post-SR path.
  • Add DLSS scene warmup counted in valid temporal resolves.
  • Keep DLSS history reset across no-scene/title/loading periods and SR resource rebuilds.
  • Copy generated PDBs for symbol-producing Quantum Break addon configurations.
  • Update UpscalingNotes.md with the current SR input map, jitter behavior, transition handling, and validation status.

Notes

The logged Quantum Break jitter sequence is a 4-sample pattern sourced from g_vSSAAJitterOffset[0]. At the observed 2560x1440 internal render size used by QB's own upscaling at 4K output, it maps to:

( 0.375,  0.125 )
( -0.375, -0.125 )
( 0.125, -0.375 )
( -0.125,  0.375 )

mqhaji added 2 commits June 8, 2026 22:57
- Convert Quantum Break's temporal resolve SSAA jitter from raw normalized UV units to DLSS/FSR input pixel units.
- Prefer `ssaa.g_vSSAAJitterOffset[0]` as the authoritative jitter source because QB's temporal resolve adds it directly to current color/depth sampling UVs.
- Flip the converted jitter Y value to match the SR convention used by DLSS/FSR integrations.
- Avoid projection-style half scaling for the SSAA jitter path; `g_vSSAAJitterOffset[0]` is already UV-space and needs full render-size scaling.
- Treat the `cb_update_1.g_vJitterOffset` fallback as already pixel-space if it is ever used, since captured scene frames showed it as zero and other QB shaders add it to `SV_Position`.
- Document the logged QB 4-sample jitter sequence and its expected render-pixel values for the observed 2560x1440 internal render size when QB's own upscaling is enabled at 4K output.
- Add transition guards for temporal-resolve variants that bind scene-looking resources without valid scene constant buffers.
- Skip those invalid transition resolves instead of replaying them through the post-SR path, avoiding the DLSS AA-off save-load device hang.
- Add DLSS scene warmup counted in valid temporal resolves so DLSS does not start on unstable loading-to-gameplay frames.
- Keep DLSS history reset across no-scene/title/loading periods and SR resource rebuilds.
- Copy generated PDBs for symbol-producing Quantum Break addon configurations to make runtime debugging easier.
- Update the Quantum Break upscaling notes with current jitter behavior, transition handling, PDB behavior, and validation status.
@mqhaji mqhaji merged commit 5316c71 into Filoppi:main Jun 9, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant