diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-01-06 12:13:21 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-01-06 12:13:21 +0300 |
commit | a922be9270496de95b8c8a4ec7923dd0cb50f184 (patch) | |
tree | fe416d0abfe21f88b1f7de94de763e0e0742e4f8 /intern/cycles/device/device.cpp | |
parent | e961c06a6ea9fbe48a375eaf78fd2ca536bd430e (diff) |
Cycles: Repot CPU and CUDA capabilities to system info operator
For CPU it gives available instructions set (SSE, AVX and so).
For GPU CUDA it reports most of the attribute values returned by
cuDeviceGetAttribute(). Ideally we need to only use set of those
which are driver-specific (so we don't clutter system info with
values which we can get from GPU specifications and be sure they
stay the same because driver can't affect on them).
Diffstat (limited to 'intern/cycles/device/device.cpp')
-rw-r--r-- | intern/cycles/device/device.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index e6e6befd72c..3a33b8fb68b 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -265,5 +265,28 @@ vector<DeviceInfo>& Device::available_devices() return devices; } -CCL_NAMESPACE_END +string Device::device_capabilities() +{ + string capabilities = "CPU device capabilities: "; + capabilities += device_cpu_capabilities() + "\n"; +#ifdef WITH_CUDA + if(device_cuda_init()) { + capabilities += "\nCUDA device capabilities:\n"; + capabilities += device_cuda_capabilities(); + } +#endif + +#ifdef WITH_OPENCL + /* TODO(sergey): Needs proper usable implementation. */ + /* + if(device_opencl_init()) { + capabilities += "\nOpenCL device capabilities:\n"; + capabilities += device_opencl_capabilities(); + } + */ +#endif + return capabilities; +} + +CCL_NAMESPACE_END |