[Bf-blender-cvs] [7462a684bf1] temp-cycles-denoising: Cycles Denoising: Fix Multi-GPU OpenCL denoising

Lukas Stockner noreply at git.blender.org
Fri Apr 14 00:57:33 CEST 2017


Commit: 7462a684bf1dc18ae5ff3fc364a86dcd33c42292
Author: Lukas Stockner
Date:   Tue Apr 11 19:33:22 2017 +0200
Branches: temp-cycles-denoising
https://developer.blender.org/rB7462a684bf1dc18ae5ff3fc364a86dcd33c42292

Cycles Denoising: Fix Multi-GPU OpenCL denoising

===================================================================

M	intern/cycles/device/device_multi.cpp

===================================================================

diff --git a/intern/cycles/device/device_multi.cpp b/intern/cycles/device/device_multi.cpp
index 6c87f4ed606..c5cfe394704 100644
--- a/intern/cycles/device/device_multi.cpp
+++ b/intern/cycles/device/device_multi.cpp
@@ -312,6 +312,7 @@ public:
 			if(tiles[i].buffers->device != sub_device) {
 				device_vector<float> &mem = tiles[i].buffers->buffer;
 
+				tiles[i].buffers->copy_from_device();
 				device_ptr original_ptr = mem.device_pointer;
 				mem.device_pointer = 0;
 				sub_device->mem_alloc("Temporary memory for neighboring tile", mem, MEM_READ_WRITE);
@@ -339,12 +340,14 @@ public:
 					tiles[i].buffers->copy_from_device(sub_device);
 				}
 
+				size_t mem_size = mem.device_size;
 				sub_device->mem_free(mem);
 				mem.device_pointer = original_ptr;
+				mem.device_size = mem_size;
 
 				/* Copy denoised tile to the original device. */
 				if(i == 4) {
-					sub_device->mem_copy_to(mem);
+					tiles[i].buffers->device->mem_copy_to(mem);
 				}
 			}
 		}




More information about the Bf-blender-cvs mailing list