summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/clover/spirv/invocation.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/clover/spirv/invocation.hpp')
-rw-r--r--src/gallium/state_trackers/clover/spirv/invocation.hpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/clover/spirv/invocation.hpp b/src/gallium/state_trackers/clover/spirv/invocation.hpp
index 7c1a3250199..715a125c5ff 100644
--- a/src/gallium/state_trackers/clover/spirv/invocation.hpp
+++ b/src/gallium/state_trackers/clover/spirv/invocation.hpp
@@ -24,6 +24,8 @@
#define CLOVER_SPIRV_INVOCATION_HPP
#include "core/context.hpp"
+#include "core/module.hpp"
+#include "core/program.hpp"
namespace clover {
namespace spirv {
@@ -32,9 +34,18 @@ 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 uint32_t *binary, size_t length,
+ bool is_valid_spirv(const std::vector<char> &binary,
const std::string &opencl_version,
std::string &r_log);
+
+ // Creates a clover module out of the given SPIR-V binary.
+ module compile_program(const std::vector<char> &binary,
+ const device &dev, std::string &r_log);
+
+ // Combines multiple clover modules into a single one, resolving
+ // link dependencies between them.
+ module link_program(const std::vector<module> &modules, const device &dev,
+ const std::string &opts, std::string &r_log);
}
}