Page MenuHome

Fix T84872: OptiX+CPU rendering is using hidden CPU Branched Path Tracing samples
AbandonedPublic

Authored by Patrick Mours (pmoursnv) on Jan 20 2021, 1:33 PM.

Details

Summary

Enabling OptiX hides the Branched Path Tracing option and should always use normal Path Tracing.
When enabling CPU devices in addition to OptiX devices however, the device type is no longer set to DEVICE_OPTIX, but to DEVICE_MULTI, an edge case the Branched Path Tracing support check during synchronization did not catch.
This fixes that by checking if any device is an OptiX device and also disabling the Branched Path Tracing integrator method globally if so (which we should have done before, since right now the OptiX device just ignores that option, but that's a bit hacky since there is no guarantee other parts of the code don't use it).

Quick review to ensure the direct access of scene->device is fine (didn't see API encapsulation for it yet).

Diff Detail

Repository
rB Blender
Branch
cycles_fix_hybrid_samples (branched from master)
Build Status
Buildable 12296
Build 12296: arc lint + arc unit