diff options
-rw-r--r-- | intern/cycles/kernel/light/light.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/intern/cycles/kernel/light/light.h b/intern/cycles/kernel/light/light.h index d05fe47cc2c..40642bdb413 100644 --- a/intern/cycles/kernel/light/light.h +++ b/intern/cycles/kernel/light/light.h @@ -394,11 +394,19 @@ ccl_device bool light_sample_from_distant_ray(KernelGlobals kg, float costheta = dot(-lightD, ray_D); float cosangle = klight->distant.cosangle; + /* Workaround to prevent a hang in the classroom scene with AMD HIP drivers 22.10, + * Remove when a compiler fix is available. */ +#ifdef __HIP__ + ls->shader = klight->shader_id; +#endif + if (costheta < cosangle) return false; ls->type = type; +#ifndef __HIP__ ls->shader = klight->shader_id; +#endif ls->object = PRIM_NONE; ls->prim = PRIM_NONE; ls->lamp = lamp; @@ -947,4 +955,4 @@ ccl_device_inline bool light_distribution_sample_new_position(KernelGlobals kg, } } -CCL_NAMESPACE_END
\ No newline at end of file +CCL_NAMESPACE_END |