cycles: fix cxx11 usage for cycles_cubin_cc
authorRay Molenkamp <github@lazydodo.com>
Sun, 4 Feb 2018 22:11:08 +0000 (15:11 -0700)
committerRay Molenkamp <github@lazydodo.com>
Sun, 4 Feb 2018 22:11:08 +0000 (15:11 -0700)
intern/cycles/app/cycles_cubin_cc.cpp

index c1f3974be6dfd1ee24829ce44710acb907e8391f..73d0cd5130c0e84b833736859dca7ce7edd40161 100644 (file)
 using std::string;
 using std::vector;
 
+namespace std {
+       template<typename T>
+       std::string to_string(const T &n) {
+               std::ostringstream s;
+               s << n;
+               return s.str();
+       }
+}
+
 class CompilationSettings
 {
 public:
@@ -75,7 +84,7 @@ bool compile_cuda(CompilationSettings &settings)
        for(size_t i = 0; i < settings.defines.size(); i++) {
                options.push_back("-D" + settings.defines[i]);
        }
-
+       options.push_back("-D__KERNEL_CUDA_VERSION__=" + std::to_string(cuewNvrtcVersion()));
        options.push_back("-arch=compute_" + std::to_string(settings.target_arch));
        options.push_back("--device-as-default-execution-space");
        if(settings.fast_math)
@@ -150,9 +159,12 @@ bool link_ptxas(CompilationSettings &settings)
                                        " --gpu-name sm_" + std::to_string(settings.target_arch) +
                                        " -m" + std::to_string(settings.bits);
 
-       if(settings.verbose)
+       if (settings.verbose)
+       {
                ptx += " --verbose";
-
+               printf(ptx.c_str());
+       }
+       
        int pxresult = system(ptx.c_str());
        if(pxresult) {
                fprintf(stderr, "Error: ptxas failed (%x)\n\n", pxresult);