Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-05-22 13:25:04 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-05-22 13:28:21 +0300
commit34b689892b29d618394c6d17c5d29129500185c4 (patch)
tree7e63db43efb3950d82baf8b919dd6c09ab01bfa4 /intern/cycles/device/device_cuda.cpp
parentbaf788d7cd1c4006a2f92531bf56cef2f601f75f (diff)
Fix T51568: CUDA error in viewport render after fix for for OpenCL
Seems re-loading module invalidates memory pointers by the looks of it, which gives an error on the next kernel call. Not sure how to move memory pointer from one CUDA module to another one, so for now simply disabling kernel re-load for CUDA devices. Not ideal, but better than failing render. Feature-selective option for CUDA is not an official feature anyway.
Diffstat (limited to 'intern/cycles/device/device_cuda.cpp')
-rw-r--r--intern/cycles/device/device_cuda.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp
index 26671bdde28..99537e9a983 100644
--- a/intern/cycles/device/device_cuda.cpp
+++ b/intern/cycles/device/device_cuda.cpp
@@ -225,6 +225,9 @@ public:
cuDevice = 0;
cuContext = 0;
+ cuModule = 0;
+ cuFilterModule = 0;
+
split_kernel = NULL;
need_bindless_mapping = false;
@@ -487,6 +490,16 @@ public:
bool load_kernels(const DeviceRequestedFeatures& requested_features)
{
+ /* TODO(sergey): Support kernels re-load for CUDA devices.
+ *
+ * Currently re-loading kernel will invalidate memory pointers,
+ * causing problems in cuCtxSynchronize.
+ */
+ if(cuFilterModule && cuModule) {
+ VLOG(1) << "Skipping kernel reload, not currently supported.";
+ return true;
+ }
+
/* check if cuda init succeeded */
if(cuContext == 0)
return false;