summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/frontends/clover/llvm/invocation.cpp2
-rw-r--r--src/gallium/frontends/clover/spirv/invocation.cpp36
-rw-r--r--src/gallium/frontends/clover/spirv/invocation.hpp4
3 files changed, 21 insertions, 21 deletions
diff --git a/src/gallium/frontends/clover/llvm/invocation.cpp b/src/gallium/frontends/clover/llvm/invocation.cpp
index 93e9cbc360b..413db852ab5 100644
--- a/src/gallium/frontends/clover/llvm/invocation.cpp
+++ b/src/gallium/frontends/clover/llvm/invocation.cpp
@@ -503,7 +503,7 @@ clover::llvm::compile_to_spirv(const std::string &source,
}
if (has_flag(debug::spirv))
- debug::log(".spvasm", spirv::print_module(binary, dev.device_version_as_string()));
+ debug::log(".spvasm", spirv::print_module(binary, dev.device_version()));
return spirv::compile_program(binary, dev, r_log);
}
diff --git a/src/gallium/frontends/clover/spirv/invocation.cpp b/src/gallium/frontends/clover/spirv/invocation.cpp
index 29d7d8f5883..27fa06db46c 100644
--- a/src/gallium/frontends/clover/spirv/invocation.cpp
+++ b/src/gallium/frontends/clover/spirv/invocation.cpp
@@ -651,19 +651,19 @@ namespace {
}
spv_target_env
- convert_opencl_str_to_target_env(const std::string &opencl_version) {
+ convert_opencl_version_to_target_env(const cl_version opencl_version) {
// Pick 1.2 for 3.0 for now
- if (opencl_version == "3.0") {
+ if (opencl_version == CL_MAKE_VERSION(3, 0, 0)) {
return SPV_ENV_OPENCL_1_2;
- } else if (opencl_version == "2.2") {
+ } else if (opencl_version == CL_MAKE_VERSION(2, 2, 0)) {
return SPV_ENV_OPENCL_2_2;
- } else if (opencl_version == "2.1") {
+ } else if (opencl_version == CL_MAKE_VERSION(2, 1, 0)) {
return SPV_ENV_OPENCL_2_1;
- } else if (opencl_version == "2.0") {
+ } else if (opencl_version == CL_MAKE_VERSION(2, 0, 0)) {
return SPV_ENV_OPENCL_2_0;
- } else if (opencl_version == "1.2" ||
- opencl_version == "1.1" ||
- opencl_version == "1.0") {
+ } else if (opencl_version == CL_MAKE_VERSION(1, 2, 0) ||
+ opencl_version == CL_MAKE_VERSION(1, 1, 0) ||
+ opencl_version == CL_MAKE_VERSION(1, 0, 0)) {
// SPIR-V is only defined for OpenCL >= 1.2, however some drivers
// might use it with OpenCL 1.0 and 1.1.
return SPV_ENV_OPENCL_1_2;
@@ -681,7 +681,7 @@ clover::spirv::compile_program(const std::vector<char> &binary,
bool validate) {
std::vector<char> source = spirv_to_cpu(binary);
- if (validate && !is_valid_spirv(source, dev.device_version_as_string(), r_log))
+ if (validate && !is_valid_spirv(source, dev.device_version(), r_log))
throw build_error();
if (!check_capabilities(dev, source, r_log))
@@ -751,9 +751,9 @@ clover::spirv::link_program(const std::vector<module> &modules,
std::vector<uint32_t> linked_binary;
- const std::string opencl_version = dev.device_version_as_string();
+ const cl_version opencl_version = dev.device_version();
const spv_target_env target_env =
- convert_opencl_str_to_target_env(opencl_version);
+ convert_opencl_version_to_target_env(opencl_version);
const spvtools::MessageConsumer consumer = validator_consumer;
spvtools::Context context(target_env);
@@ -771,7 +771,7 @@ clover::spirv::link_program(const std::vector<module> &modules,
throw error(CL_LINK_PROGRAM_FAILURE);
if (has_flag(llvm::debug::spirv))
- llvm::debug::log(".spvasm", spirv::print_module(final_binary, dev.device_version_as_string()));
+ llvm::debug::log(".spvasm", spirv::print_module(final_binary, dev.device_version()));
for (const auto &mod : modules)
m.syms.insert(m.syms.end(), mod.syms.begin(), mod.syms.end());
@@ -783,7 +783,7 @@ clover::spirv::link_program(const std::vector<module> &modules,
bool
clover::spirv::is_valid_spirv(const std::vector<char> &binary,
- const std::string &opencl_version,
+ const cl_version opencl_version,
std::string &r_log) {
auto const validator_consumer =
[&r_log](spv_message_level_t level, const char *source,
@@ -792,7 +792,7 @@ clover::spirv::is_valid_spirv(const std::vector<char> &binary,
};
const spv_target_env target_env =
- convert_opencl_str_to_target_env(opencl_version);
+ convert_opencl_version_to_target_env(opencl_version);
spvtools::SpirvTools spvTool(target_env);
spvTool.SetMessageConsumer(validator_consumer);
@@ -802,9 +802,9 @@ clover::spirv::is_valid_spirv(const std::vector<char> &binary,
std::string
clover::spirv::print_module(const std::vector<char> &binary,
- const std::string &opencl_version) {
+ const cl_version opencl_version) {
const spv_target_env target_env =
- convert_opencl_str_to_target_env(opencl_version);
+ convert_opencl_version_to_target_env(opencl_version);
spvtools::SpirvTools spvTool(target_env);
spv_context spvContext = spvContextCreate(target_env);
if (!spvContext)
@@ -839,7 +839,7 @@ clover::spirv::supported_versions() {
#else
bool
clover::spirv::is_valid_spirv(const std::vector<char> &/*binary*/,
- const std::string &/*opencl_version*/,
+ const cl_version opencl_version,
std::string &/*r_log*/) {
return false;
}
@@ -862,7 +862,7 @@ clover::spirv::link_program(const std::vector<module> &/*modules*/,
std::string
clover::spirv::print_module(const std::vector<char> &binary,
- const std::string &opencl_version) {
+ const cl_version opencl_version) {
return std::string();
}
diff --git a/src/gallium/frontends/clover/spirv/invocation.hpp b/src/gallium/frontends/clover/spirv/invocation.hpp
index 3153e6d11a7..f4ef93151d8 100644
--- a/src/gallium/frontends/clover/spirv/invocation.hpp
+++ b/src/gallium/frontends/clover/spirv/invocation.hpp
@@ -37,7 +37,7 @@ namespace clover {
// It uses SPIRV-Tools validator to do the validation, and potential
// warnings and errors are appended to |r_log|.
bool is_valid_spirv(const std::vector<char> &binary,
- const std::string &opencl_version,
+ const cl_version opencl_version,
std::string &r_log);
// Creates a clover module out of the given SPIR-V binary.
@@ -52,7 +52,7 @@ namespace clover {
// Returns a textual representation of the given binary.
std::string print_module(const std::vector<char> &binary,
- const std::string &opencl_version);
+ const cl_version opencl_version);
// Returns a set of supported SPIR-V extensions.
std::unordered_set<std::string> supported_extensions();