Fix: Assert in Cycles multi-device OIDN check #119267

Merged
Brecht Van Lommel merged 3 commits from Alaska/blender:fix-oidn-gpu-cpu-assert into blender-v4.1-release 2024-03-11 12:54:54 +01:00
2 changed files with 7 additions and 3 deletions
Showing only changes of commit b6f3e8f3dc - Show all commits

View File

@ -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 {

View File

@ -36,6 +36,8 @@ bool OIDNDenoiserGPU::is_device_supported(const DeviceInfo &device)
return true;
}
}
return false;
}
int device_type = OIDN_DEVICE_TYPE_DEFAULT;