diff --git a/intern/cycles/device/metal/device.mm b/intern/cycles/device/metal/device.mm index 8bad96db4ce..2a517f67a06 100644 --- a/intern/cycles/device/metal/device.mm +++ b/intern/cycles/device/metal/device.mm @@ -55,8 +55,11 @@ void device_metal_info(vector &devices) info.denoisers = DENOISER_NONE; info.id = id; - info.has_nanovdb = MetalInfo::get_device_vendor(device) == METAL_GPU_APPLE; - info.has_light_tree = MetalInfo::get_device_vendor(device) != METAL_GPU_AMD; + MetalGPUVendor vendor = MetalInfo::get_device_vendor(device); + + info.has_nanovdb = vendor == METAL_GPU_APPLE; + info.has_light_tree = vendor != METAL_GPU_AMD; + info.use_hardware_raytracing = vendor != METAL_GPU_INTEL; devices.push_back(info); device_index++; diff --git a/intern/cycles/device/metal/device_impl.mm b/intern/cycles/device/metal/device_impl.mm index 659e082dfcf..65fab56ee7b 100644 --- a/intern/cycles/device/metal/device_impl.mm +++ b/intern/cycles/device/metal/device_impl.mm @@ -100,16 +100,15 @@ MetalDevice::MetalDevice(const DeviceInfo &info, Stats &stats, Profiler &profile } case METAL_GPU_AMD: { max_threads_per_threadgroup = 128; - use_metalrt = info.use_hardware_raytracing; break; } case METAL_GPU_APPLE: { max_threads_per_threadgroup = 512; - use_metalrt = info.use_hardware_raytracing; break; } } + use_metalrt = info.use_hardware_raytracing; if (auto metalrt = getenv("CYCLES_METALRT")) { use_metalrt = (atoi(metalrt) != 0); }