[Bf-blender-cvs] [31dfdb6379c] blender-v2.93-release: Add missing "CUDA_ERROR_UNSUPPORTED_PTX_VERSION" to CUEW

Patrick Mours noreply at git.blender.org
Tue Nov 2 13:52:39 CET 2021


Commit: 31dfdb6379cd42b919ba529eb9cfd3f29eb8de64
Author: Patrick Mours
Date:   Tue Nov 2 12:30:28 2021 +0100
Branches: blender-v2.93-release
https://developer.blender.org/rB31dfdb6379cd42b919ba529eb9cfd3f29eb8de64

Add missing "CUDA_ERROR_UNSUPPORTED_PTX_VERSION" to CUEW

This is required for Cycles to report a meaningful error message when it fails to load a PTX module
created with a newer CUDA toolkit version than the driver supports.

Fix crash when kernel loading failed (T91879)

Ref T91879

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

M	extern/cuew/include/cuew.h
M	extern/cuew/src/cuew.c
M	intern/cycles/device/cuda/device_cuda_impl.cpp

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

diff --git a/extern/cuew/include/cuew.h b/extern/cuew/include/cuew.h
index 0fa0f1291fa..85522744ad1 100644
--- a/extern/cuew/include/cuew.h
+++ b/extern/cuew/include/cuew.h
@@ -609,6 +609,7 @@ typedef enum cudaError_enum {
   CUDA_ERROR_INVALID_GRAPHICS_CONTEXT = 219,
   CUDA_ERROR_NVLINK_UNCORRECTABLE = 220,
   CUDA_ERROR_JIT_COMPILER_NOT_FOUND = 221,
+  CUDA_ERROR_UNSUPPORTED_PTX_VERSION = 222,
   CUDA_ERROR_INVALID_SOURCE = 300,
   CUDA_ERROR_FILE_NOT_FOUND = 301,
   CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND = 302,
diff --git a/extern/cuew/src/cuew.c b/extern/cuew/src/cuew.c
index 7a1b0018a24..9eba9306323 100644
--- a/extern/cuew/src/cuew.c
+++ b/extern/cuew/src/cuew.c
@@ -736,6 +736,7 @@ const char *cuewErrorString(CUresult result) {
     case CUDA_ERROR_INVALID_GRAPHICS_CONTEXT: return "Invalid graphics context";
     case CUDA_ERROR_NVLINK_UNCORRECTABLE: return "Nvlink uncorrectable";
     case CUDA_ERROR_JIT_COMPILER_NOT_FOUND: return "Jit compiler not found";
+    case CUDA_ERROR_UNSUPPORTED_PTX_VERSION: return "Unsupported PTX version";
     case CUDA_ERROR_INVALID_SOURCE: return "Invalid source";
     case CUDA_ERROR_FILE_NOT_FOUND: return "File not found";
     case CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND: return "Link to a shared object failed to resolve";
diff --git a/intern/cycles/device/cuda/device_cuda_impl.cpp b/intern/cycles/device/cuda/device_cuda_impl.cpp
index cebe8ce631e..e9d8dc5a7de 100644
--- a/intern/cycles/device/cuda/device_cuda_impl.cpp
+++ b/intern/cycles/device/cuda/device_cuda_impl.cpp
@@ -583,9 +583,9 @@ bool CUDADevice::load_kernels(const DeviceRequestedFeatures &requested_features)
 
   if (result == CUDA_SUCCESS) {
     reserve_local_memory(requested_features);
-  }
 
-  load_functions();
+    load_functions();
+  }
 
   return (result == CUDA_SUCCESS);
 }



More information about the Bf-blender-cvs mailing list