[Mesa-dev] [PATCH v2 13/22] clover: Handle the case when linking SPIR-V binaries together
Karol Herbst
kherbst at redhat.com
Tue Jan 23 07:32:08 UTC 2018
On Tue, Jan 23, 2018 at 1:33 AM, Pierre Moreau <pierre.morrow at free.fr> wrote:
> Signed-off-by: Pierre Moreau <pierre.morrow at free.fr>
> ---
> 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:
is adding NIR here actually want to do? I am not aware of any path
that would allow any NIR driver to support llvm at all.
> + _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