diff options
author | Gian-Carlo Pascutto <gcp@sjeng.org> | 2016-07-11 09:24:40 +0200 |
---|---|---|
committer | Gian-Carlo Pascutto <gcp@sjeng.org> | 2016-07-13 15:59:02 +0200 |
commit | e0ba59c0ac964340b3706233862a2ca98e345823 (patch) | |
tree | c6b519418163df7642712b2b70afa1d63e65bc58 /src/clpp11.hpp | |
parent | c87e877bf23d2fe38a7da2898e1734a3cdeaf48c (diff) |
Make sure the passed types are large enough.
Make sure all out parameters that are passed to functions such
as clGetDeviceInfo are large enough to contain the replies.
Diffstat (limited to 'src/clpp11.hpp')
-rw-r--r-- | src/clpp11.hpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/clpp11.hpp b/src/clpp11.hpp index fcb71e38..9f924a4f 100644 --- a/src/clpp11.hpp +++ b/src/clpp11.hpp @@ -194,7 +194,7 @@ class Device { } size_t MaxWorkGroupSize() const { return GetInfo<size_t>(CL_DEVICE_MAX_WORK_GROUP_SIZE); } size_t MaxWorkItemDimensions() const { - return GetInfo(CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS); + return GetInfo<cl_uint>(CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS); } std::vector<size_t> MaxWorkItemSizes() const { return GetInfoVector<size_t>(CL_DEVICE_MAX_WORK_ITEM_SIZES); @@ -205,8 +205,8 @@ class Device { std::string Capabilities() const { return GetInfoString(CL_DEVICE_EXTENSIONS); } size_t CoreClock() const { return GetInfo(CL_DEVICE_MAX_CLOCK_FREQUENCY); } size_t ComputeUnits() const { return GetInfo(CL_DEVICE_MAX_COMPUTE_UNITS); } - size_t MemorySize() const { return GetInfo(CL_DEVICE_GLOBAL_MEM_SIZE); } - size_t MaxAllocSize() const { return GetInfo(CL_DEVICE_MAX_MEM_ALLOC_SIZE); } + size_t MemorySize() const { return GetInfo<cl_ulong>(CL_DEVICE_GLOBAL_MEM_SIZE); } + size_t MaxAllocSize() const { return GetInfo<cl_ulong>(CL_DEVICE_MAX_MEM_ALLOC_SIZE); } size_t MemoryClock() const { return 0; } // Not exposed in OpenCL size_t MemoryBusWidth() const { return 0; } // Not exposed in OpenCL @@ -250,7 +250,7 @@ class Device { size_t GetInfo(const cl_device_info info) const { auto bytes = size_t{0}; CheckError(clGetDeviceInfo(device_, info, 0, nullptr, &bytes)); - auto result = cl_uint(0); + auto result = cl_ulong(0); CheckError(clGetDeviceInfo(device_, info, bytes, &result, nullptr)); return static_cast<size_t>(result); } |