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
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to