[Bf-blender-cvs] [6a18497] cycles_split_kernel: Cycles: Add a bit more error checking for split kernel
Mai Lavelle
noreply at git.blender.org
Tue Dec 13 09:56:17 CET 2016
Commit: 6a1849752e01eaae80dcf3772b0e54486cfaf705
Author: Mai Lavelle
Date: Thu Dec 8 23:03:45 2016 -0500
Branches: cycles_split_kernel
https://developer.blender.org/rB6a1849752e01eaae80dcf3772b0e54486cfaf705
Cycles: Add a bit more error checking for split kernel
This helps catch some memory issues and avoids some crashes, but still
need to figure out a way to handle this better.
===================================================================
M intern/cycles/device/device_split_kernel.cpp
===================================================================
diff --git a/intern/cycles/device/device_split_kernel.cpp b/intern/cycles/device/device_split_kernel.cpp
index 872e21c..170ffc4 100644
--- a/intern/cycles/device/device_split_kernel.cpp
+++ b/intern/cycles/device/device_split_kernel.cpp
@@ -79,6 +79,10 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task,
RenderTile& tile,
device_memory& kernel_data)
{
+ if(device->have_error()) {
+ return false;
+ }
+
/* TODO(mai): should be easy enough to remove these variables from tile */
/* Buffer and rng_state offset calc. */
size_t offset_index = tile.offset + (tile.x + tile.y * tile.stride);
@@ -207,6 +211,10 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task,
device->mem_alloc(split_data, MEM_READ_WRITE);
}
+ if(device->have_error()) {
+ return false;
+ }
+
if(!device->enqueue_split_kernel_data_init(KernelDimensions(global_size, local_size),
tile,
num_global_elements,
@@ -224,6 +232,9 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task,
}
#define ENQUEUE_SPLIT_KERNEL(name, global_size, local_size) \
+ if(device->have_error()) { \
+ return false; \
+ } \
if(!kernel_##name->enqueue(KernelDimensions(global_size, local_size), kgbuffer, kernel_data)) { \
return false; \
}
More information about the Bf-blender-cvs
mailing list