Skip to content

DLSS Ray Reconstruction — persistent "swimming/flowing" artifact during camera motion (even at 16 SPP) #103

@sakada3

Description

@sakada3

Environment

  • Streamline SDK 2.10.3
  • nvngx_dlssd 310.5.3
  • Custom DXR path tracer (Unity), 1–16 SPP
  • All DLSS-RR input buffers provided: color, depth, motion vectors, albedo, normal, roughness, specHitDist, diffuseHitDist, specularAlbedo, exposure

Problem Description

We are seeing a persistent "flowing/swimming" visual artifact on surfaces during camera motion — it appears as a liquid shimmer flowing across geometry.

Key observations:

  • Static camera: image converges cleanly, no artifact
  • Moving camera: flowing artifact appears on all surfaces
  • 16 SPP does NOT fix it — artifact is identical at 1, 2, 4, 8, and 16 SPP
  • Changing jitter pattern (Halton / R2 / random), jitter scale, DLSS preset, and preExposure has no effect
  • Forcing all surfaces to fully diffuse (specular = 0) reduces oscillation MSE by ~33%, but the artifact persists

Since increasing SPP to 16 does not help, we believe this is not a noise/variance issue, but rather a temporal reprojection or motion vector integration issue.


Questions

Q1. Motion vector jitter compensation
Should the motion vectors we provide to DLSS-RR include the sub-pixel jitter delta between the current and previous frame? Or does DLSS-RR handle jitter compensation internally using the jitter parameters passed via slSetConstants?

Q2. mvecScale sign and value
We currently pass mvecScale = {-screenWidth, -screenHeight} for Unity's normalized motion vectors (range [-1, 1] in NDC). Is this the correct scale and sign convention for Streamline DLSSD?

Q3. Depth buffer source
We are currently using the rasterized depth buffer. For a pure path tracer, should we instead provide a linear depth buffer derived from first-hit ray distance? Would a mismatch here cause the symptoms we're seeing?

Q4. Known issue in nvngx_dlssd 310.5.x?
We noticed that DLSS 4's transformer model reportedly addresses an "oily and runny unstable look." Is this the same artifact class we are experiencing? If so, is there a newer DLSSD DLL available that addresses this?

Q5. Diagnostic tools
Beyond the Streamline validation layer, are there any diagnostic flags, overlay modes, or buffer visualization tools that can help verify correct DLSS-RR buffer integration (e.g., inspect reprojected vs. current frame, confidence maps)?


What We Have Already Tried

Change Result
SPP: 1 → 16 No improvement
Jitter: Halton → R2 → random No improvement
Jitter scale adjustment No improvement
DLSS preset A–F No improvement
preExposure tuning No improvement
Specular → 0 (fully diffuse) MSE reduced ~33%, artifact still present

Any guidance would be greatly appreciated. Happy to provide additional buffer captures or repro details if helpful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions