diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2018-10-06 21:39:01 +0300 |
---|---|---|
committer | Lukas Stockner <lukas.stockner@freenet.de> | 2018-10-06 22:49:54 +0300 |
commit | a0cc7bd961ef2cd501468dce08998992a88b3bed (patch) | |
tree | 90a26871e42e7aafc7d17c0172b4513a501896f8 /intern/cycles/util/util_types_int4_impl.h | |
parent | 6e08b01bd9ab87f63d8176bf2ec0b4f073a92ee3 (diff) |
Cycles: Implement vectorized NLM kernels for faster CPU denoising
Diffstat (limited to 'intern/cycles/util/util_types_int4_impl.h')
-rw-r--r-- | intern/cycles/util/util_types_int4_impl.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/intern/cycles/util/util_types_int4_impl.h b/intern/cycles/util/util_types_int4_impl.h index 07cdc88f2dc..a62561709de 100644 --- a/intern/cycles/util/util_types_int4_impl.h +++ b/intern/cycles/util/util_types_int4_impl.h @@ -104,6 +104,16 @@ ccl_device_inline int4 make_int4(const float3& f) return a; } +ccl_device_inline int4 make_int4(const float4& f) +{ +#ifdef __KERNEL_SSE__ + int4 a(_mm_cvtps_epi32(f.m128)); +#else + int4 a = {(int)f.x, (int)f.y, (int)f.z, (int)f.w}; +#endif + return a; +} + ccl_device_inline void print_int4(const char *label, const int4& a) { printf("%s: %d %d %d %d\n", label, a.x, a.y, a.z, a.w); |