[Mesa-dev] [PATCH 2/2] clover: add missing clGetDeviceInfo CL1.2 queries

EdB edb+mesa at sigluy.net
Fri Dec 19 07:42:51 PST 2014


---
 src/gallium/state_trackers/clover/api/device.cpp  | 21 +++++++++++++++++++++
 src/gallium/state_trackers/clover/core/device.cpp | 11 +++++++++++
 src/gallium/state_trackers/clover/core/device.hpp |  2 ++
 3 files changed, 34 insertions(+)

diff --git a/src/gallium/state_trackers/clover/api/device.cpp b/src/gallium/state_trackers/clover/api/device.cpp
index e825468..947d9e9 100644
--- a/src/gallium/state_trackers/clover/api/device.cpp
+++ b/src/gallium/state_trackers/clover/api/device.cpp
@@ -183,6 +183,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;
@@ -251,6 +259,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;
 
@@ -262,6 +271,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;
@@ -326,6 +339,14 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param,
       buf.as_string() = "OpenCL C 1.1";
       break;
 
+   case CL_DEVICE_PRINTF_BUFFER_SIZE:
+      buf.as_scalar<size_t>() = 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 688a7dd..ad4aaf1 100644
--- a/src/gallium/state_trackers/clover/core/device.cpp
+++ b/src/gallium/state_trackers/clover/core/device.cpp
@@ -97,6 +97,11 @@ device::max_images_write() const {
    return PIPE_MAX_SHADER_RESOURCES;
 }
 
+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);
@@ -107,6 +112,12 @@ 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 2201700..89affff 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;
-- 
2.2.0



More information about the mesa-dev mailing list