I found a root cause of the reported issue - the bug is located in this line 84bab7f300/intern/cycles/kernel/de
…
@Alaska , could you please clarify what is a problem, which you try to solve here and how to reproduce it? I was trying to cause this multiple "Loading Denoising Kernels" message when Denoiser is…
@Sergey, can you please take a look on this bug fix?
I have tested a build from the build bot, and I can confirm that the reported issue is indeed gone with this changes. Howewer, it looks like denoiser couldn't be actually created from the CUDA…
@Sergey , so essentially you want to go from `device.type == DEVICE_CUDA
The only problem I can think of now is that the driver requirements for CUDA is different from OptiX. So a user could have two NVIDIA GPUs, both with Compute Capabiltiy 5.0 or higher, but one is…
Looks good to me, but I think it make sense to test the changes first before merging them.
Alaska, let's discuss if we want a static check for support, or dynamic one.
@Alaska , what about more dynamic check? With assumption what Blender is built with Optix 7.3.0, I think we could use such condition - but I haven't tested it yet:
We could resolve this issue by only allowing OptiX devices to use the OptiX denoiser. But so far Cycles and OptiX seems to have been happy using CUDA or OptiX devices for OptiX denoising, as…
Thanks Alaska, good catch of this issue! I am overall agreed with a fix, but I think it make sense to restructure its code a bit.
@Alaska, could you please move this new check to the new method OIDNDenoiserGPU::is_device_supported(const DeviceInfo &device)
in a similar manner to how it's implemented for OIDNDenoiserGPU in the following code below? I believe the most logical approach would be to have the Denoiser subclass determine support capability rather than incorporating direct checks and conditions into the Denoiser::create
method.
Looks good and correct! Although I haven't actually run it, but I think it should work.
I hit an assertion
intern/cycles/integrator/denoiser_oidn_gpu.cpp Lines 126 to 128 in 685817888e
case DEVICE_CPU: /* This is the GPU denoiser - CPU devices shouldn't end up here. */ assert(0);
Hi Weizhen, you…