Mesa (master): clover/api: Implement CL_DEVICE_IL_VERSION
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jan 1 22:28:34 UTC 2021
Module: Mesa
Branch: master
Commit: 31ce49e6b2ef473e5083e0c04ab8d53ad863dda2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=31ce49e6b2ef473e5083e0c04ab8d53ad863dda2
Author: Pierre Moreau <dev at pmoreau.org>
Date: Tue May 5 13:16:47 2020 +0200
clover/api: Implement CL_DEVICE_IL_VERSION
v2: Move `supported_il_versions_as_string()` from `device` to an
anonymous namespace, and remove the static storage of the results
(Francisco Jerez)
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
Signed-off-by: Pierre Moreau <dev at pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
---
src/gallium/frontends/clover/api/device.cpp | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/src/gallium/frontends/clover/api/device.cpp b/src/gallium/frontends/clover/api/device.cpp
index ed36ad51025..5a1fcfd847e 100644
--- a/src/gallium/frontends/clover/api/device.cpp
+++ b/src/gallium/frontends/clover/api/device.cpp
@@ -27,6 +27,23 @@
using namespace clover;
+namespace {
+ std::string
+ supported_il_versions_as_string(const device &dev) {
+ std::string il_versions_string;
+
+ for (const auto &il_version : dev.supported_il_versions()) {
+ if (!il_versions_string.empty())
+ il_versions_string += " ";
+
+ il_versions_string += std::string(il_version.name) + "_" +
+ std::to_string(CL_VERSION_MAJOR(il_version.version)) + "." +
+ std::to_string(CL_VERSION_MINOR(il_version.version));
+ }
+ return il_versions_string;
+ }
+}
+
CLOVER_API cl_int
clGetDeviceIDs(cl_platform_id d_platform, cl_device_type device_type,
cl_uint num_entries, cl_device_id *rd_devices,
@@ -428,12 +445,13 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param,
break;
case CL_DEVICE_IL_VERSION:
- buf.as_string() = "";
+ if (dev.supported_extensions_as_string().find("cl_khr_il_program") == std::string::npos)
+ throw error(CL_INVALID_VALUE);
+ buf.as_string() = supported_il_versions_as_string(dev);
break;
case CL_DEVICE_ILS_WITH_VERSION:
- if (r_size)
- *r_size = 0;
+ buf.as_vector<cl_name_version>() = dev.supported_il_versions();
break;
case CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION:
More information about the mesa-commit
mailing list