Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-12-16 18:27:44 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2014-12-25 00:50:49 +0300
commitab8d9c4b8853755faa62307750d961dc2ec43708 (patch)
tree707d52530016e210d46375e2c1c0db432ae230b1 /intern/cycles/kernel
parentf770bc4757a2b471d5aaee048359096c1c79a6b2 (diff)
Cycles: Add some utility functions and structures
Most of them are not currently used but are essential for the further work. - CPU kernels with SSE2 support will now have sse3b, sse3f and sse3i - Added templatedversions of min4, max4 which are handy to use with register variables. - Added util_swap function which gets arguments by pointers. So hopefully it'll be a portable version of std::swap.
Diffstat (limited to 'intern/cycles/kernel')
-rw-r--r--intern/cycles/kernel/geom/geom_triangle_intersect.h4
-rw-r--r--intern/cycles/kernel/kernel_compat_cpu.h6
2 files changed, 7 insertions, 3 deletions
diff --git a/intern/cycles/kernel/geom/geom_triangle_intersect.h b/intern/cycles/kernel/geom/geom_triangle_intersect.h
index 4bb60ca78e0..8ed0e15e6ac 100644
--- a/intern/cycles/kernel/geom/geom_triangle_intersect.h
+++ b/intern/cycles/kernel/geom/geom_triangle_intersect.h
@@ -61,9 +61,7 @@ ccl_device_inline void triangle_intersect_precalc(float3 dir,
/* Swap kx and ky dimensions to preserve winding direction of triangles. */
if(IDX(dir, kz) < 0.0f) {
- int tmp = kx;
- kx = ky;
- ky = tmp;
+ util_swap(&kx, &ky);
}
/* Calculate the shear constants. */
diff --git a/intern/cycles/kernel/kernel_compat_cpu.h b/intern/cycles/kernel/kernel_compat_cpu.h
index 08c8bdd369d..2f0b78ea073 100644
--- a/intern/cycles/kernel/kernel_compat_cpu.h
+++ b/intern/cycles/kernel/kernel_compat_cpu.h
@@ -344,6 +344,12 @@ typedef texture_image<uchar4> texture_image_uchar4;
#define kernel_data (kg->__data)
+#ifdef __KERNEL_SSE2__
+typedef vector3<sseb> sse3b;
+typedef vector3<ssef> sse3f;
+typedef vector3<ssei> sse3i;
+#endif
+
CCL_NAMESPACE_END
#endif /* __KERNEL_COMPAT_CPU_H__ */