clover: only return CLC version as 1.2 (even for 3.0)

Fixes CTS compiler opencl_c_versions

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12286>
This commit is contained in:
Dave Airlie 2021-08-09 13:24:34 +10:00 committed by Marge Bot
parent e78d5bb8e2
commit 7fb9e78d09
3 changed files with 25 additions and 5 deletions

View file

@ -429,7 +429,7 @@ clGetDeviceInfo(cl_device_id d_dev, cl_device_info param,
break;
case CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR:
buf.as_scalar<cl_version>() = dev.device_clc_version();
buf.as_scalar<cl_version>() = dev.device_clc_version(true);
break;
case CL_DEVICE_OPENCL_C_ALL_VERSIONS:

View file

@ -440,9 +440,17 @@ device::device_version_as_string() const {
std::string
device::device_clc_version_as_string() const {
int major = CL_VERSION_MAJOR(clc_version);
int minor = CL_VERSION_MINOR(clc_version);
/* for CL 3.0 we need this to be 1.2 until we support 2.0. */
if (major == 3) {
major = 1;
minor = 2;
}
static const std::string version_string =
std::to_string(CL_VERSION_MAJOR(clc_version)) + "." +
std::to_string(CL_VERSION_MINOR(clc_version));
std::to_string(major) + "." +
std::to_string(minor);
return version_string;
}
@ -510,7 +518,19 @@ device::device_version() const {
}
cl_version
device::device_clc_version() const {
device::device_clc_version(bool api) const {
/*
* For the API we have to limit this to 1.2,
* but internally we want 3.0 if it works.
*/
if (!api)
return clc_version;
int major = CL_VERSION_MAJOR(clc_version);
/* for CL 3.0 we need this to be 1.2 until we support 2.0. */
if (major == 3) {
return CL_MAKE_VERSION(1, 2, 0);
}
return clc_version;
}

View file

@ -95,7 +95,7 @@ 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;
cl_version device_clc_version(bool api = false) const;
std::vector<cl_name_version> opencl_c_all_versions() const;
std::vector<cl_name_version> supported_extensions() const;
std::vector<cl_name_version> supported_il_versions() const;