[Bf-blender-cvs] [6995b50e41e] master: Cycles: Add function to dequeue a ray

Mai Lavelle noreply at git.blender.org
Sat Jun 10 10:59:07 CEST 2017


Commit: 6995b50e41e628d225b08c370db07d51cf8e3371
Author: Mai Lavelle
Date:   Mon May 29 21:33:27 2017 -0400
Branches: master
https://developer.blender.org/rB6995b50e41e628d225b08c370db07d51cf8e3371

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