- 追加された行はこの色です。
- 削除された行はこの色です。
#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