Commit: 15fd758bd632fb37879b4c8cc3ff29f4305eae7e
Author: Lukas Stockner
Date: Mon Jul 3 18:22:35 2017 +0200
Branches: master
https://developer.blender.org/rB15fd758bd632fb37879b4c8cc3ff29f4305eae7e
Fix T51950: Abnormally long Cycles OpenCL GPU render times with certain
panoramic camera settings
The problem here was that when a "invalid" path is generated by the panoramic
camera, it was tagged
as RAY_TO_REGENERATE with the intention of generating a new path in
kernel_buffer_update.
However, since that state was not handled in kernel_queue_enqueue,
kernel_buffer_update did not
process the path which resulted in an infinite loop.
===================================================================
M intern/cycles/kernel/split/kernel_queue_enqueue.h
===================================================================
diff --git a/intern/cycles/kernel/split/kernel_queue_enqueue.h
b/intern/cycles/kernel/split/kernel_queue_enqueue.h
index e2e841f36d3..66ce2dfb6f1 100644
--- a/intern/cycles/kernel/split/kernel_queue_enqueue.h
+++ b/intern/cycles/kernel/split/kernel_queue_enqueue.h
@@ -51,7 +51,8 @@ ccl_device void kernel_queue_enqueue(KernelGlobals *kg,
int queue_number = -1;
if(IS_STATE(kernel_split_state.ray_state, ray_index,
RAY_HIT_BACKGROUND) ||
- IS_STATE(kernel_split_state.ray_state, ray_index,
RAY_UPDATE_BUFFER)) {
+ IS_STATE(kernel_split_state.ray_state, ray_index, RAY_UPDATE_BUFFER)
||
+ IS_STATE(kernel_split_state.ray_state, ray_index,
RAY_TO_REGENERATE)) {
queue_number = QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS;
}
else if(IS_STATE(kernel_split_state.ray_state, ray_index, RAY_ACTIVE) ||
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs