Mesa (main): clover/nir: don't convert to NIR on library link

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 10 21:57:27 UTC 2021


Module: Mesa
Branch: main
Commit: e78d5bb8e2bb87d53dce4fe61e1f21a933aae922
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e78d5bb8e2bb87d53dce4fe61e1f21a933aae922

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Aug  9 11:36:58 2021 +1000

clover/nir: don't convert to NIR on library link

If just creating a library, just link the spir-v and store it.

Reviewed-by: Karol Herbst <kherbst at redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12286>

---

 src/gallium/frontends/clover/core/compiler.hpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/gallium/frontends/clover/core/compiler.hpp b/src/gallium/frontends/clover/core/compiler.hpp
index 30dfe448c8b..7e2380eb25e 100644
--- a/src/gallium/frontends/clover/core/compiler.hpp
+++ b/src/gallium/frontends/clover/core/compiler.hpp
@@ -62,10 +62,16 @@ namespace clover {
       static inline module
       link_program(const std::vector<module> &ms, const device &dev,
                    const std::string &opts, std::string &log) {
+         const bool create_library =
+            opts.find("-create-library") != std::string::npos;
          switch (dev.ir_format()) {
-         case PIPE_SHADER_IR_NIR_SERIALIZED:
-            return nir::spirv_to_nir(spirv::link_program(ms, dev, opts, log),
+         case PIPE_SHADER_IR_NIR_SERIALIZED: {
+            auto spirv_linked_module = spirv::link_program(ms, dev, opts, log);
+            if (create_library)
+               return spirv_linked_module;
+            return nir::spirv_to_nir(spirv_linked_module,
                                      dev, log);
+         }
          case PIPE_SHADER_IR_NATIVE:
             return llvm::link_program(ms, dev, opts, log);
          default:



More information about the mesa-commit mailing list