From 3a9fa5b36d7b114c5ec15343edfacf8c076a45e4 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 2 Nov 2020 15:54:11 +1000 Subject: [PATCH] clover: report device CLC versions for 3.0 Reviewed-by: Karol Herbst Part-of: --- 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() = dev.device_version(); break; + case CL_DEVICE_OPENCL_C_ALL_VERSIONS: + buf.as_vector() = 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 +device::opencl_c_all_versions() const { + std::vector 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 opencl_c_all_versions() const; friend class command_queue; friend class root_resource;