Skip to content

Optimize solari initial and temporal DI #20156

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

SparkyPotato
Copy link
Contributor

@SparkyPotato SparkyPotato commented Jul 16, 2025

Objective

Optimizes the initial + temporal ReSTIR DI pass. In the example cornell box scene, it goes from 2.37 ms to 1.97 ms. On a more complex scene, the Lumberyard bistro, with many emissive lights, it goes from 130+ ms to about 80.8 ms at 1440p on a 4070.

I also noticed that triangle area calculation didn't take object scale into account and fixed that.

Solution

  • Switch to textures instead of buffers for reservoir storage.
  • There's also a bunch of other micro-optimizations to increase SM occupancy and reduce memory pressure.

Testing

  • This was tested on the cornell box example scene and bistro.
  • Everything was tested on Windows 11 with a 4070 running at 1440p. Testing on other platforms and GPUs by running the example.

Showcase

image

@JMS55 JMS55 self-requested a review July 16, 2025 00:28
@alice-i-cecile alice-i-cecile added this to the 0.17 milestone Jul 16, 2025
@alice-i-cecile alice-i-cecile added C-Bug An unexpected or incorrect behavior A-Rendering Drawing game state to the screen C-Performance A change motivated by improving speed, memory usage or compile times labels Jul 16, 2025
@alice-i-cecile alice-i-cecile added S-Needs-Review Needs reviewer attention (from anyone!) to move forward M-Needs-Release-Note Work that should be called out in the blog due to impact labels Jul 16, 2025
@alice-i-cecile
Copy link
Member

Please add this PR (and yourself!) to the draft release notes :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Rendering Drawing game state to the screen C-Bug An unexpected or incorrect behavior C-Performance A change motivated by improving speed, memory usage or compile times M-Needs-Release-Note Work that should be called out in the blog due to impact S-Needs-Review Needs reviewer attention (from anyone!) to move forward
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

2 participants