From 019130ed71604827b385c5dba5cbc879609880e2 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 10 Nov 2020 10:07:44 +1000 Subject: [PATCH] clover/platform: move versioning to core object. This reads the env var once at constructor time and stores it in the platform object. Reviewed-by: Karol Herbst Part-of: --- src/gallium/frontends/clover/api/platform.cpp | 5 +---- src/gallium/frontends/clover/core/platform.cpp | 13 +++++++++++++ src/gallium/frontends/clover/core/platform.hpp | 2 ++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/gallium/frontends/clover/api/platform.cpp b/src/gallium/frontends/clover/api/platform.cpp index 1b7c5a3e499..0840b4ffde1 100644 --- a/src/gallium/frontends/clover/api/platform.cpp +++ b/src/gallium/frontends/clover/api/platform.cpp @@ -62,10 +62,7 @@ clover::GetPlatformInfo(cl_platform_id d_platform, cl_platform_info param, break; case CL_PLATFORM_VERSION: { - static const std::string version_string = - debug_get_option("CLOVER_PLATFORM_VERSION_OVERRIDE", "1.1"); - - buf.as_string() = "OpenCL " + version_string + " Mesa " PACKAGE_VERSION MESA_GIT_SHA1; + buf.as_string() = "OpenCL " + platform.platform_version_as_string() + " Mesa " PACKAGE_VERSION MESA_GIT_SHA1; break; } case CL_PLATFORM_NAME: diff --git a/src/gallium/frontends/clover/core/platform.cpp b/src/gallium/frontends/clover/core/platform.cpp index 162d5f8680c..7d153aff775 100644 --- a/src/gallium/frontends/clover/core/platform.cpp +++ b/src/gallium/frontends/clover/core/platform.cpp @@ -21,6 +21,7 @@ // #include "core/platform.hpp" +#include "util/u_debug.h" using namespace clover; @@ -28,6 +29,10 @@ platform::platform() : adaptor_range(evals(), devs) { int n = pipe_loader_probe(NULL, 0); std::vector ldevs(n); + unsigned major = 1, minor = 1; + debug_get_version_option("CLOVER_PLATFORM_VERSION_OVERRIDE", &major, &minor); + version = CL_MAKE_VERSION(major, minor, 0); + pipe_loader_probe(&ldevs.front(), n); for (pipe_loader_device *ldev : ldevs) { @@ -44,3 +49,11 @@ std::string platform::supported_extensions_as_string() const { return "cl_khr_icd"; } + +std::string +platform::platform_version_as_string() const { + static const std::string version_string = + std::to_string(CL_VERSION_MAJOR(version)) + "." + + std::to_string(CL_VERSION_MINOR(version)); + return version_string; +} diff --git a/src/gallium/frontends/clover/core/platform.hpp b/src/gallium/frontends/clover/core/platform.hpp index 35c83280a7f..32e88db5f30 100644 --- a/src/gallium/frontends/clover/core/platform.hpp +++ b/src/gallium/frontends/clover/core/platform.hpp @@ -42,7 +42,9 @@ namespace clover { std::string supported_extensions_as_string() const; + std::string platform_version_as_string() const; protected: + cl_version version; std::vector> devs; }; }