diff options
author | Sv. Lockal <lockalsash@gmail.com> | 2014-02-10 17:19:26 +0400 |
---|---|---|
committer | Sv. Lockal <lockalsash@gmail.com> | 2014-02-10 17:19:26 +0400 |
commit | 7096529704989286f30d645fae54e40c8335ec5e (patch) | |
tree | 852c89a45ea6c75e49fc16f1b7b191bacd03649c /intern/cycles/kernel/kernel_film.h | |
parent | 2f01be2b2fe563f634c9f653260940b2a9a78d6d (diff) |
Fix T38501: blender crashes right after adding image texture to material
in cycles
Also fix very similar problem in half-float SSE conversion.
Diffstat (limited to 'intern/cycles/kernel/kernel_film.h')
-rw-r--r-- | intern/cycles/kernel/kernel_film.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/intern/cycles/kernel/kernel_film.h b/intern/cycles/kernel/kernel_film.h index b4118666491..cbd875e994c 100644 --- a/intern/cycles/kernel/kernel_film.h +++ b/intern/cycles/kernel/kernel_film.h @@ -75,17 +75,15 @@ ccl_device void kernel_film_convert_to_half_float(KernelGlobals *kg, float exposure = kernel_data.film.exposure; - if(exposure == 1.0f) { - float4_store_half(out, in, sample_scale); - } - else { - float4 rgba = *in; - rgba.x *= exposure; - rgba.y *= exposure; - rgba.z *= exposure; + ccl_align(16) float4 rgba_in = *in; - float4_store_half(out, &rgba, sample_scale); + if(exposure != 1.0f) { + rgba_in.x *= exposure; + rgba_in.y *= exposure; + rgba_in.z *= exposure; } + + float4_store_half(out, &rgba_in, sample_scale); } CCL_NAMESPACE_END |