NvRTX 5.1 SER has regressed performance

Hello, I’m using the NvRTX 5.1.0-1 release build that came out today and when using SER on the path tracer with my 4090 (Windows 10, Game Ready Driver: 527.56) my performance either has marginal difference or it performs worse than without SER. I tested on two scenarios, one of them which I tested on the 5.0 NvRTX build where I saw a 35% increase on performance with SER now on that same scene in 5.1 I see a -45% decrease in performance when r.PathTracing.Reorder 1 is enabled.

Hi @mglade30 , thank you for bringing this up! I will make sure to pass it on. Did you also raise an issue on the GitHub page? Might be a good idea to do that as well.

I assume you worked with the sample code from our SER Intro page? And what kind of content did you test the performance on, some sample project or your own design? If the latter, would you be able to share something that exhibits the perf regression?

Thanks again!

@mglade30 I do have a bug on performance regression in the SER path tracing path. It wasn’t quite as drastic as what you’ve found. The issue is being worked on, and I expect to have a solution in the near future.

In fact, it turns out that this appears to be a ~1 line fix. The path tracer changes in 5.1 resulted in reordering being more expensive than it previously was for camera rays. Skipping the reorder on the camera rays restores the performance for my local test scene. I’ll work on getting this simple patch published ASAP.

@mglade30 FYI, the hotfix is live on the NvRTX 5.1 branch. You’ll need to sync tip of tree instead of the label, but you should see the issue resolved.

Thanks I’ll check out the branch changes, also @MarkusHoHo I’m not too sure how to raise issues on GitHub, I don’t see that tab on the NvRTX repo.

Update:

@ehart To add onto this I did use try it out with the hotfix and I tested the same scene I used in the 5.0 NvRTX and the original 5.1 NvRTX release as well some other scenes. With the initial scene where I saw a 35% increase on 5.0, on 5.1 hotfix it now it runs 22% faster compared to the release 5.1 which had a 45% decrease in performance. So back in the green for increased performance but still not matching the original uplift of 5.0. That being said I still experienced many cases where SER was actively decreasing the performance. In one situation it was 10% slower, another was 22% slower and I had one scene where SER was rendering 60% slower than without as well as the viewport performance also being slower.

I can’t speak on whether SER would still have the same performance regression on the 5.0 branch with this scene since I no longer have the 5.0 branch and also projects are not backwards compatible afaik. But right now as it stands there are still situations where SER on the path tracer is better disabled. I can’t share the scene since it’s too big but I used some diverse use cases involving some large scale scenes along with complex models with subsurface/emissives/fog etc and some simple more basic scenes where SER in both was still showing regression.

Thanks for the follow-up and feedback. Without access to your particular test, it is hard for me to say what regressions you might be hitting. Like many optimizations, SER might not improve all workloads, and since there is a cost tied to reordering, it might be slower at times. I expect to be making additional improvements to the code in the new year, which I expect will make performance gains more robust across different scenarios.

Realistically, the UE path tracer has only received a couple engineer days of effort across a few scenes with SER so far, so I expect that there are still substantial improvements to come.

Yeah maybe if I use it more and come across a scene or workload I can share I will. Anyway, I understand the implementation of SER is still early and I hope there is more to come.