Fix: Assert in Cycles multi-device OIDN check #119267
|
@ -27,7 +27,7 @@ unique_ptr<Denoiser> Denoiser::create(Device *path_trace_device, const DenoisePa
|
|||
/* If available and allowed, then we will use OpenImageDenoise on GPU. */
|
||||
if (params.type == DENOISER_OPENIMAGEDENOISE && params.use_gpu &&
|
||||
path_trace_device->info.type != DEVICE_CPU &&
|
||||
OIDNDenoiserGPU::is_device_supported(path_trace_device->info))
|
||||
(path_trace_device->info.denoisers & DENOISER_OPENIMAGEDENOISE))
|
||||
{
|
||||
return make_unique<OIDNDenoiserGPU>(path_trace_device, params);
|
||||
}
|
||||
|
@ -49,14 +49,16 @@ unique_ptr<Denoiser> Denoiser::create(Device *path_trace_device, const DenoisePa
|
|||
DenoiserType Denoiser::automatic_viewport_denoiser_type(const DeviceInfo &path_trace_device_info)
|
||||
{
|
||||
if (path_trace_device_info.type != DEVICE_CPU &&
|
||||
OIDNDenoiserGPU::is_device_supported(path_trace_device_info))
|
||||
(path_trace_device_info.denoisers & DENOISER_OPENIMAGEDENOISE))
|
||||
{
|
||||
return DENOISER_OPENIMAGEDENOISE;
|
||||
}
|
||||
else if (!Device::available_devices(DEVICE_MASK_OPTIX).empty()) {
|
||||
return DENOISER_OPTIX;
|
||||
}
|
||||
else if (openimagedenoise_supported()) {
|
||||
else if (path_trace_device_info.type == DEVICE_CPU &&
|
||||
(path_trace_device_info.denoisers & DENOISER_OPENIMAGEDENOISE))
|
||||
{
|
||||
return DENOISER_OPENIMAGEDENOISE;
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -36,6 +36,8 @@ bool OIDNDenoiserGPU::is_device_supported(const DeviceInfo &device)
|
|||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int device_type = OIDN_DEVICE_TYPE_DEFAULT;
|
||||
|
|
Loading…
Reference in New Issue