Mesa (master): clover: report device CLC versions for 3.0

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 10 20:56:33 UTC 2020


Module: Mesa
Branch: master
Commit: 3a9fa5b36d7b114c5ec15343edfacf8c076a45e4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3a9fa5b36d7b114c5ec15343edfacf8c076a45e4

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Nov  2 15:54:11 2020 +1000

clover: report device CLC versions for 3.0

Reviewed-by: Karol Herbst <kherbst at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7520>

---

 src/gallium/frontends/clover/api/device.cpp  |  4 ++++
 src/gallium/frontends/clover/core/device.cpp | 21 +++++++++++++++++++++
 src/gallium/frontends/clover/core/device.hpp |  2 ++
 3 files changed, 27 insertions(+)

diff --git a/src/gallium/frontends/clover/api/device.cpp b/src/gallium/frontends/clover/api/device.cpp
index c4ca7fb9623..71953713633 100644
--- a/src/gallium/frontends/clover/api/device.cpp
+++ b/src/gallium/frontends/clover/api/device.cpp
@@ -413,6 +413,10 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param,
       buf.as_scalar<cl_version>() = dev.device_version();
       break;
 
+   case CL_DEVICE_OPENCL_C_ALL_VERSIONS:
+      buf.as_vector<cl_name_version>() = dev.opencl_c_all_versions();
+      break;
+
    default:
       throw error(CL_INVALID_VALUE);
    }
diff --git a/src/gallium/frontends/clover/core/device.cpp b/src/gallium/frontends/clover/core/device.cpp
index 7bdf37b6e44..092a9033f02 100644
--- a/src/gallium/frontends/clover/core/device.cpp
+++ b/src/gallium/frontends/clover/core/device.cpp
@@ -365,3 +365,24 @@ cl_version
 device::device_version() const {
    return version;
 }
+
+cl_version
+device::device_clc_version() const {
+   return clc_version;
+}
+
+std::vector<cl_name_version>
+device::opencl_c_all_versions() const {
+   std::vector<cl_name_version> vec;
+   vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 0, 0), "OpenCL C" } );
+   vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 1, 0), "OpenCL C" } );
+
+   if (CL_VERSION_MAJOR(clc_version) == 1 &&
+       CL_VERSION_MINOR(clc_version) == 2)
+      vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 2, 0), "OpenCL C" } );
+   if (CL_VERSION_MAJOR(clc_version) == 3) {
+      vec.push_back( (cl_name_version){ CL_MAKE_VERSION(1, 2, 0), "OpenCL C" } );
+      vec.push_back( (cl_name_version){ CL_MAKE_VERSION(3, 0, 0), "OpenCL C" } );
+   }
+   return vec;
+}
diff --git a/src/gallium/frontends/clover/core/device.hpp b/src/gallium/frontends/clover/core/device.hpp
index 71791e342d6..d07bb6250d4 100644
--- a/src/gallium/frontends/clover/core/device.hpp
+++ b/src/gallium/frontends/clover/core/device.hpp
@@ -92,6 +92,8 @@ namespace clover {
       bool supports_ir(enum pipe_shader_ir ir) const;
       std::string supported_extensions_as_string() const;
       cl_version device_version() const;
+      cl_version device_clc_version() const;
+      std::vector<cl_name_version> opencl_c_all_versions() const;
 
       friend class command_queue;
       friend class root_resource;



More information about the mesa-commit mailing list