[Bf-blender-cvs] [4ff8744] master: Cycles / CUDA: Better fix for missing sm_52 kernel, in case user compiles himself.

Thomas Dinges noreply at git.blender.org
Thu Oct 30 11:43:41 CET 2014


Commit: 4ff87446690edd15e49d5f8610db150428690a98
Author: Thomas Dinges
Date:   Thu Oct 30 11:42:59 2014 +0100
Branches: master
https://developer.blender.org/rB4ff87446690edd15e49d5f8610db150428690a98

Cycles / CUDA: Better fix for missing sm_52 kernel, in case user compiles himself.

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

M	intern/cycles/device/device_cuda.cpp

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

diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp
index 844fb3b..b3d4215 100644
--- a/intern/cycles/device/device_cuda.cpp
+++ b/intern/cycles/device/device_cuda.cpp
@@ -203,12 +203,24 @@ public:
 		int major, minor;
 		cuDeviceComputeCapability(&major, &minor, cuDevId);
 		
-		/* workaround to make sm_52 cards work, until we bundle kernel */
-		if(major == 5 && minor == 2)
-			minor = 0;
+		string cubin;
+
+		/* ToDo: We don't bundle sm_52 kernel yet */
+		if(major == 5 && minor == 2) {
+			if(experimental)
+				cubin = path_get(string_printf("lib/kernel_experimental_sm_%d%d.cubin", major, minor));
+			else
+				cubin = path_get(string_printf("lib/kernel_sm_%d%d.cubin", major, minor));
+
+			if(path_exists(cubin))
+				/* self build sm_52 kernel? Use it. */
+				return cubin;
+			else
+				/* use 5.0 kernel as workaround */
+				minor = 0;
+		}
 
 		/* attempt to use kernel provided with blender */
-		string cubin;
 		if(experimental)
 			cubin = path_get(string_printf("lib/kernel_experimental_sm_%d%d.cubin", major, minor));
 		else




More information about the Bf-blender-cvs mailing list