[Bf-blender-cvs] [3d6037b013] cycles-tiles-rework: Cycles: Add generic work item functions for CUDA
Mai Lavelle
noreply at git.blender.org
Sat Jan 14 08:26:42 CET 2017
Commit: 3d6037b013ed2cb24ddf2b19c18fe4e121a6a06d
Author: Mai Lavelle
Date: Fri Jan 13 23:08:43 2017 -0500
Branches: cycles-tiles-rework
https://developer.blender.org/rB3d6037b013ed2cb24ddf2b19c18fe4e121a6a06d
Cycles: Add generic work item functions for CUDA
===================================================================
M intern/cycles/kernel/kernel_compat_cuda.h
===================================================================
diff --git a/intern/cycles/kernel/kernel_compat_cuda.h b/intern/cycles/kernel/kernel_compat_cuda.h
index e0c7b17c6a..ec46d7f29f 100644
--- a/intern/cycles/kernel/kernel_compat_cuda.h
+++ b/intern/cycles/kernel/kernel_compat_cuda.h
@@ -51,6 +51,50 @@
#define ccl_restrict __restrict__
#define ccl_align(n) __align__(n)
+ccl_device_inline uint ccl_local_id(uint d)
+{
+ switch(d) {
+ case 0: return threadIdx.x;
+ case 1: return threadIdx.y;
+ case 2: return threadIdx.z;
+ default: return 0;
+ }
+}
+
+#define ccl_global_id(d) (ccl_group_id(d) * ccl_local_size(d) + ccl_local_id(d))
+
+ccl_device_inline uint ccl_local_size(uint d)
+{
+ switch(d) {
+ case 0: return blockDim.x;
+ case 1: return blockDim.y;
+ case 2: return blockDim.z;
+ default: return 0;
+ }
+}
+
+#define ccl_global_size(d) (ccl_num_groups(d) * ccl_local_size(d))
+
+ccl_device_inline uint ccl_group_id(uint d)
+{
+ switch(d) {
+ case 0: return blockIdx.x;
+ case 1: return blockIdx.y;
+ case 2: return blockIdx.z;
+ default: return 0;
+ }
+}
+
+ccl_device_inline uint ccl_num_groups(uint d)
+{
+ switch(d) {
+ case 0: return gridDim.x;
+ case 1: return gridDim.y;
+ case 2: return gridDim.z;
+ default: return 0;
+ }
+}
+
/* No assert supported for CUDA */
#define kernel_assert(cond)
More information about the Bf-blender-cvs
mailing list