#author("2022-02-08T00:16:39+00:00","","") #author("2022-02-08T00:35:58+00:00","","") [[diary/Kojima]] ・LLVM-13 と mesa-21.3.5 LLVM-13が出ていたのでパッケージ化して、mesa-21.3.5 をビルドしようとしたら、 [1899/2789] Compiling C++ object src/gallium/drivers/swr/libmesaswr.a.p/swr_shader.cpp.o FAILED: src/gallium/drivers/swr/libmesaswr.a.p/swr_shader.cpp.o c++ -Isrc/gallium/drivers/swr/libmesaswr.a.p -Isrc/gallium/drivers/swr -I../mesa-21.3.5/src/gallium/drivers/swr -Iinclude -I../mesa-21.3.5/include -Isrc -I../mesa-21.3.5/src -Isrc/mapi -I../mesa-21.3.5/src/mapi .... 次のファイルから読み込み: ../mesa-21.3.5/src/gallium/drivers/swr/rasterizer/jitter/builder.h:168, 次から読み込み: ../mesa-21.3.5/src/gallium/drivers/swr/swr_shader.cpp:43: ../mesa-21.3.5/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h: メンバ関数 ‘virtual llvm::CallInst* SwrJit::Builder::MASKED_LOAD(llvm::Value*, unsigned int, llvm::Value*, llvm::Value*, const llvm::Twine&, llvm::Type*, SwrJit::Builder::MEM_CLIENT)’ 内: ../mesa-21.3.5/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h:87:36: エラー: cannot convert ‘llvm::Value*’ to ‘llvm::Type*’ 87 | return IRB()->CreateMaskedLoad(Ptr, AlignType(Align), Mask, PassThru, Name); | ^~~ | | | llvm::Value* 次のファイルから読み込み: ../mesa-21.3.5/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp:50, 次から読み込み: ../mesa-21.3.5/src/gallium/drivers/swr/rasterizer/jitter/JitManager.h:32, 次から読み込み: ../mesa-21.3.5/src/gallium/drivers/swr/swr_shader.cpp:32: /usr/include/llvm/IR/IRBuilder.h:755:36: 備考: initializing argument 1 of ‘llvm::CallInst* llvm::IRBuilderBase::CreateMaskedLoad(llvm::Type*, llvm::Value*, llvm::Align, llvm::Value*, llvm::Value*, const llvm::Twine&)’ 755 | CallInst *CreateMaskedLoad(Type *Ty, Value *Ptr, Align Alignment, Value *Mask, | ~~~~~~^~ みたいなエラーになってビルドに失敗するみたい。 同じコードがLLVM-12ではエラーにならないので、どうやらこれはLLVM側の変更が原因らしい。 とりあえず LLVM-13 の場合は、このあたりのコードを変更するような[[パッチ:https://gitlab.freedesktop.org/mesa/mesa/-/commit/49383f52b0668872ce99f7aa2763a729777e9928]]も提案されているものの、 mesa側はこのあたり(swr)のドライバはobsoleteだから削除しよう、という方針らしく、mainのブランチには反映されていない。 確認してないけど、今RCになっているmesa-22.0だと削除されてたりするのかな? まぁ、もうしばらく様子を見て、mesaがLLVM-13で正しくビルドできるようになってからパッケージする方が安全な気はするものの、上述のLLVM-13用のコードでビルドを試しているところ。 - 一応、問題の箇所も通るようになったみたい。とりあえずこの組み合わせでしばらく凌ぐか。。 -- [[kojima]] &new{2022-02-08 (火) 09:35:58}; #comment