[Bf-blender-cvs] [d02d2503ed1] temp-cycles-opencl-staging: Cycles: Add function to dequeue a ray
Mai Lavelle
noreply at git.blender.org
Thu Jun 8 11:40:04 CEST 2017
Commit: d02d2503ed12592d2dd2e40481e4f2372354651c
Author: Mai Lavelle
Date: Mon May 29 21:33:27 2017 -0400
Branches: temp-cycles-opencl-staging
https://developer.blender.org/rBd02d2503ed12592d2dd2e40481e4f2372354651c
Cycles: Add function to dequeue a ray
===================================================================
M intern/cycles/kernel/kernel_queues.h
===================================================================
diff --git a/intern/cycles/kernel/kernel_queues.h b/intern/cycles/kernel/kernel_queues.h
index 96bc636d5ac..e32d4bbbc1b 100644
--- a/intern/cycles/kernel/kernel_queues.h
+++ b/intern/cycles/kernel/kernel_queues.h
@@ -128,6 +128,21 @@ ccl_device unsigned int get_global_queue_index(
return my_gqidx;
}
+ccl_device int dequeue_ray_index(
+ int queue_number,
+ ccl_global int *queues,
+ int queue_size,
+ ccl_global int *queue_index)
+{
+ int index = atomic_fetch_and_dec_uint32((ccl_global uint*)&queue_index[queue_number])-1;
+
+ if(index < 0) {
+ return QUEUE_EMPTY_SLOT;
+ }
+
+ return queues[index + queue_number * queue_size];
+}
+
CCL_NAMESPACE_END
#endif // __KERNEL_QUEUE_H__
More information about the Bf-blender-cvs
mailing list