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@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 11:36:58 +10:00
committed by Marge Bot
parent 6cc1568ff5
commit e78d5bb8e2

View File

@@ -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: