[Bf-blender-cvs] [abc3128011b] master: Fix T85779: Cycles not using all threads when using OpenImageDenoise

Brecht Van Lommel noreply at git.blender.org
Tue Oct 19 11:43:33 CEST 2021


Commit: abc3128011b484c270701211b40831d11c8ac44b
Author: Brecht Van Lommel
Date:   Tue Oct 19 11:37:28 2021 +0200
Branches: master
https://developer.blender.org/rBabc3128011b484c270701211b40831d11c8ac44b

Fix T85779: Cycles not using all threads when using OpenImageDenoise

The thread affinity setting in OIDN can break multithreading on some CPUs.
While this leads to somewhat worse performance on CPUs that do work correctly,
it's better than having some CPUs use only half the cores.

===================================================================

M	intern/cycles/integrator/denoiser_oidn.cpp
M	source/blender/compositor/operations/COM_DenoiseOperation.cc

===================================================================

diff --git a/intern/cycles/integrator/denoiser_oidn.cpp b/intern/cycles/integrator/denoiser_oidn.cpp
index ee3b62668a7..cc9a3f51387 100644
--- a/intern/cycles/integrator/denoiser_oidn.cpp
+++ b/intern/cycles/integrator/denoiser_oidn.cpp
@@ -169,6 +169,7 @@ class OIDNDenoiseContext {
     OIDNPass oidn_color_access_pass = read_input_pass(oidn_color_pass, oidn_output_pass);
 
     oidn::DeviceRef oidn_device = oidn::newDevice();
+    oidn_device.set("setAffinity", false);
     oidn_device.commit();
 
     /* Create a filter for denoising a beauty (color) image using prefiltered auxiliary images too.
diff --git a/source/blender/compositor/operations/COM_DenoiseOperation.cc b/source/blender/compositor/operations/COM_DenoiseOperation.cc
index 53417112974..9b9670c6f06 100644
--- a/source/blender/compositor/operations/COM_DenoiseOperation.cc
+++ b/source/blender/compositor/operations/COM_DenoiseOperation.cc
@@ -64,6 +64,7 @@ class DenoiseFilter {
     BLI_mutex_lock(&oidn_lock);
 
     device = oidn::newDevice();
+    device.set("setAffinity", false);
     device.commit();
     filter = device.newFilter("RT");
     initialized_ = true;



More information about the Bf-blender-cvs mailing list