r600 build is broken in 9.1 (stable branch) when using llvm 3.3 (also stable). I got it compiling with 0ee3cc5 r600g: Add $(DEFINES) to AM_CXXFLAGS 3a11b9b radeon/llvm: remove uneeded inclusion 1d16c20 radeon/llvm: Fix build with LLVM 3.3 from upstream plus --- a/src/gallium/drivers/r600/llvm_wrapper.cpp +++ b/src/gallium/drivers/r600/llvm_wrapper.cpp @@ -2,11 +2,13 @@ #include <llvm/ADT/StringRef.h> #if HAVE_LLVM < 0x0303 #include <llvm/LLVMContext.h> +#include <llvm/Support/IRReader.h> #else #include <llvm/IR/LLVMContext.h> +#include <llvm/IRReader/IRReader.h> +#include <llvm/IR/Module.h> #endif #include <llvm/PassManager.h> -#include <llvm/Support/IRReader.h> #include <llvm/Support/MemoryBuffer.h> #include <llvm/Support/SourceMgr.h> #include <llvm/Transforms/IPO.h> but that doesn't seem to be sufficient because I get a lot of EE r600_asm.c:2041 r600_bytecode_build - unsupported CF instruction (0xFFFFFFFF) EE r600_shader.c:160 r600_pipe_shader_create - building bytecode failed ! EE r600_state_common.c:756 r600_shader_select - Failed to build shader variant (type=0) -22 EE r600_asm.c:2041 r600_bytecode_build - unsupported CF instruction (0xFFFFFFFF) EE r600_shader.c:160 r600_pipe_shader_create - building bytecode failed ! EE r600_state_common.c:756 r600_shader_select - Failed to build shader variant (type=0) -22 messages (this was from glxgears). I would be great if this could be fixed for Mesa-9.1.5 because many distros will use it.
The llvm backends of r600g and the radeonsi on mesa 9.1 are only compatible with tstellar's llvm-3.2 branch. The llvm backends of r600g and the radeonsi on mesa 9.2 should be compatible with the official llvm-3.3 and llvm-3.4. It's not compatible with tstellar's llvm-3.2 branch. So I think we should abort in configure if someone wants to build mesa 9.1 with enabled llvm backend and llvm != 3.2.
(In reply to comment #1) > So I think we should abort in configure if someone wants to build mesa 9.1 > with enabled llvm backend and llvm != 3.2. Agreed.
Created attachment 82362 [details] [review] possible fix (untested)
You should also remove "or newer". Also "master" isn't the right branch (which one is the right?). While you are at it, checking for r600 target isn't enough, because it also needs "host". I have the feeling that we should disable r600-llvm support in 9.1 release alltogether. I think it was just for testing anyway and likely unstable/lots of bugs still. It also saves distros from compiling some experimental version of llvm.
(In reply to comment #4) > You should also remove "or newer". Yes, will do. > Also "master" isn't the right branch > (which one is the right?). master is the right branch. See http://cgit.freedesktop.org/~tstellar/llvm > While you are at it, checking for r600 target > isn't enough, because it also needs "host". > AFAIK the host target is needed for llvmpipe and draw-llvm too. So a more generic check would be required. But that's stuff for mesa master and should be in a separate commit anyway. > I have the feeling that we should disable r600-llvm support in 9.1 release > alltogether. I think it was just for testing anyway and likely unstable/lots > of bugs still. It also saves distros from compiling some experimental > version of llvm. For initial radeonsi support it's required. The r600g llvm backend isn't enabled by default and the help string says: Enable experimental LLVM backend for graphics shaders. See http://cgit.freedesktop.org/mesa/mesa/tree/configure.ac?h=9.1#n641 I think that should be enough.
Created attachment 82365 [details] [review] possible fix v2 (untested)
arr, yes, master is right (I had an unclean tree), and also yes, r600 llvm in mesa is marked experimental and needs to be enabled explicitly, so all is fine - sorry. Patch looks also fine (tested).
Fixed with commit 9a287a076803a4b4cb475ec5c067c9a064f11a0d
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.