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:
@@ -62,10 +62,16 @@ namespace clover {
|
|||||||
static inline module
|
static inline module
|
||||||
link_program(const std::vector<module> &ms, const device &dev,
|
link_program(const std::vector<module> &ms, const device &dev,
|
||||||
const std::string &opts, std::string &log) {
|
const std::string &opts, std::string &log) {
|
||||||
|
const bool create_library =
|
||||||
|
opts.find("-create-library") != std::string::npos;
|
||||||
switch (dev.ir_format()) {
|
switch (dev.ir_format()) {
|
||||||
case PIPE_SHADER_IR_NIR_SERIALIZED:
|
case PIPE_SHADER_IR_NIR_SERIALIZED: {
|
||||||
return nir::spirv_to_nir(spirv::link_program(ms, dev, opts, log),
|
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);
|
dev, log);
|
||||||
|
}
|
||||||
case PIPE_SHADER_IR_NATIVE:
|
case PIPE_SHADER_IR_NATIVE:
|
||||||
return llvm::link_program(ms, dev, opts, log);
|
return llvm::link_program(ms, dev, opts, log);
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user