diff options
author | Serge Martin <[email protected]> | 2016-10-01 18:51:11 +0200 |
---|---|---|
committer | Serge Martin <[email protected]> | 2016-11-06 15:56:49 +0100 |
commit | 05fcc73f087fa2b8c447ec8c79c7bdab57d49faf (patch) | |
tree | 6b637ccc31efb82c52fb5bc03d6309ed6a2fcea1 /src/gallium | |
parent | 8cc4a749713ce5940d077d0a3ab3d2af341e7ae2 (diff) |
clover: add missing clGetDeviceInfo CL1.2 queries
Reviewed-by: Francisco Jerez <[email protected]>
Reviewed-by: Edward O'Callaghan <[email protected]>
Reviewed-by: Vedran Miletić <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/state_trackers/clover/api/device.cpp | 23 | ||||
-rw-r--r-- | src/gallium/state_trackers/clover/core/device.cpp | 10 | ||||
-rw-r--r-- | src/gallium/state_trackers/clover/core/device.hpp | 2 |
3 files changed, 35 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp index f7bd61b929b..a80ca46654f 100644 --- a/src/gallium/state_trackers/clover/api/device.cpp +++ b/src/gallium/state_trackers/clover/api/device.cpp @@ -184,6 +184,14 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param, buf.as_scalar<size_t>() = 1 << dev.max_image_levels_3d(); break; + case CL_DEVICE_IMAGE_MAX_BUFFER_SIZE: + buf.as_scalar<size_t>() = dev.max_image_buffer_size(); + break; + + case CL_DEVICE_IMAGE_MAX_ARRAY_SIZE: + buf.as_scalar<size_t>() = dev.max_image_array_number(); + break; + case CL_DEVICE_IMAGE_SUPPORT: buf.as_scalar<cl_bool>() = dev.image_support(); break; @@ -273,6 +281,7 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param, case CL_DEVICE_AVAILABLE: case CL_DEVICE_COMPILER_AVAILABLE: + case CL_DEVICE_LINKER_AVAILABLE: buf.as_scalar<cl_bool>() = CL_TRUE; break; @@ -284,6 +293,10 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param, buf.as_scalar<cl_command_queue_properties>() = CL_QUEUE_PROFILING_ENABLE; break; + case CL_DEVICE_BUILT_IN_KERNELS: + buf.as_string() = ""; + break; + case CL_DEVICE_NAME: buf.as_string() = dev.device_name(); break; @@ -358,6 +371,16 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param, buf.as_string() = "OpenCL C 1.1 "; break; + case CL_DEVICE_PRINTF_BUFFER_SIZE: + // Per the spec, the minimum value for the FULL profile is 1 MB. + // However, clover is not ready yet to support it + buf.as_scalar<size_t>() = 0 /* 1024 */; + break; + + case CL_DEVICE_PREFERRED_INTEROP_USER_SYNC: + buf.as_scalar<cl_bool>() = CL_TRUE; + break; + case CL_DEVICE_PARENT_DEVICE: buf.as_scalar<cl_device_id>() = NULL; break; diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index 8825f993a75..8f1c1da5136 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -98,6 +98,11 @@ device::max_images_write() const { return PIPE_MAX_SHADER_IMAGES; } +size_t +device::max_image_buffer_size() const { + return pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE); +} + cl_uint device::max_image_levels_2d() const { return pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_2D_LEVELS); @@ -108,6 +113,11 @@ device::max_image_levels_3d() const { return pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_3D_LEVELS); } +size_t +device::max_image_array_number() const { + return pipe->get_param(pipe, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS); +} + cl_uint device::max_samplers() const { return pipe->get_shader_param(pipe, PIPE_SHADER_COMPUTE, diff --git a/src/gallium/state_trackers/clover/core/device.hpp b/src/gallium/state_trackers/clover/core/device.hpp index 6cf6c7fcb24..94a61d10500 100644 --- a/src/gallium/state_trackers/clover/core/device.hpp +++ b/src/gallium/state_trackers/clover/core/device.hpp @@ -51,8 +51,10 @@ namespace clover { cl_uint vendor_id() const; size_t max_images_read() const; size_t max_images_write() const; + size_t max_image_buffer_size() const; cl_uint max_image_levels_2d() const; cl_uint max_image_levels_3d() const; + size_t max_image_array_number() const; cl_uint max_samplers() const; cl_ulong max_mem_global() const; cl_ulong max_mem_local() const; |