From 5946514408199d172f4eb2f72f0b7691a5826b41 Mon Sep 17 00:00:00 2001 From: castano Date: Wed, 12 Dec 2007 21:55:28 +0000 Subject: [PATCH] Do not use CUDA on emulation devices. --- src/nvtt/cuda/CudaUtils.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/nvtt/cuda/CudaUtils.cpp b/src/nvtt/cuda/CudaUtils.cpp index 6e9cc8e..809d791 100644 --- a/src/nvtt/cuda/CudaUtils.cpp +++ b/src/nvtt/cuda/CudaUtils.cpp @@ -74,11 +74,24 @@ bool nv::cuda::isHardwarePresent() { #if defined HAVE_CUDA #if NV_OS_WIN32 - return !isWindowsVista() && deviceCount() > 0; - //return !isWindowsVista() && isWow32() && deviceCount() > 0; -#else - return deviceCount() > 0; + if (isWindowsVista()) return false; + //if (isWindowsVista() || !isWow32()) return false; #endif + int count = deviceCount(); + if (count == 1) + { + // Make sure it's not an emulation device. + cudaDeviceProp deviceProp; + cudaGetDeviceProperties(&deviceProp, 0); + + // deviceProp.name != Device Emulation (CPU) + if (deviceProp.major == -1 || deviceProp.minor == -1) + { + return false; + } + } + + return count > 0; #else return false; #endif