[Mesa-dev] [PATCH v2 13/22] clover: Handle the case when linking SPIR-V binaries together

Pierre Moreau pierre.morrow at free.fr
Tue Jan 23 08:59:41 UTC 2018


Signed-off-by: Pierre Moreau <pierre.morrow at free.fr>
---

Resending to the ML, as gabe ran out of memory.

 src/gallium/state_trackers/clover/core/program.cpp | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/gallium/state_trackers/clover/core/program.cpp b/src/gallium/state_trackers/clover/core/program.cpp
index 15d559cd93..976213ef95 100644
--- a/src/gallium/state_trackers/clover/core/program.cpp
+++ b/src/gallium/state_trackers/clover/core/program.cpp
@@ -22,6 +22,7 @@
 
 #include "core/program.hpp"
 #include "llvm/invocation.hpp"
+#include "spirv/invocation.hpp"
 #include "tgsi/invocation.hpp"
 
 using namespace clover;
@@ -80,11 +81,22 @@ program::link(const ref_vector<device> &devs, const std::string &opts,
       std::string log = _builds[&dev].log;
 
       try {
-         const module m = (dev.ir_format() == PIPE_SHADER_IR_TGSI ?
-                           tgsi::link_program(ms) :
-                           llvm::link_program(ms, dev.ir_format(),
-                                              dev.ir_target(), opts, log));
-         _builds[&dev] = { m, opts, log };
+         switch (dev.ir_format()) {
+         case PIPE_SHADER_IR_TGSI:
+            _builds[&dev] = { tgsi::link_program(ms), opts, log };
+            break;
+         case PIPE_SHADER_IR_LLVM:
+         case PIPE_SHADER_IR_NATIVE:
+         case PIPE_SHADER_IR_NIR:
+            _builds[&dev] = { llvm::link_program(ms, dev.ir_format(),
+                                                 dev.ir_target(), opts, log),
+                              opts, log };
+            break;
+         case PIPE_SHADER_IR_SPIRV:
+            _builds[&dev] = { clover::spirv::link_program(ms, opts, log), opts,
+                              log };
+            break;
+         }
       } catch (...) {
          _builds[&dev] = { module(), opts, log };
          throw;
-- 
2.16.0



More information about the mesa-dev mailing list