#19832 closed enhancement (fixed)
mesa-24.1.1
Reported by: | Bruce Dubbs | Owned by: | Douglas R. Reno |
---|---|---|---|
Priority: | normal | Milestone: | 12.2 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description ¶
New minor version.
Change History (14)
comment:1 by , 11 months ago
comment:2 by , 11 months ago
libclc needs https://github.com/KhronosGroup/SPIRV-LLVM-Translator in turn.
follow-ups: 5 10 comment:4 by , 11 months ago
SPIRV-LLVM-Translator:
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr -G Ninja ..
libclc:
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr -G Ninja ..
ply is just the "by-the-book" Python module installation.
follow-ups: 6 13 comment:5 by , 11 months ago
Replying to Xi Ruoyao:
SPIRV-LLVM-Translator:
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr -G Ninja ..
I would add
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include/spirv/ -DBUILD_SHARED_LIBS=ON
otherwise the build will try to download the spirv headers even though they are installed already, and by default it will build the static library.
I also see rust, bindgen, and cbindgen being needed for the swrast vulkan driver:
../meson.build:328:2: ERROR: Problem encountered: swrast vulkan requires gallium swrast
After adding gallium I get:
Compiler for language rust for the build machine not found. ../src/nouveau/headers/meson.build:75:2: ERROR: Unknown compiler(s): [['rustc']] The following exception(s) were encountered: Running `rustc --version` gave "[Errno 2] No such file or directory: 'rustc'"
Install rust and then:
../src/nouveau/headers/meson.build:115:28: ERROR: Program 'bindgen' not found or not executable
Install bindgen (https://github.com/rust-lang/rust-bindgen) and then:
../src/nouveau/nil/meson.build:15:16: ERROR: Program 'cbindgen' not found or not executable
Install cbindgen and all is good.
follow-up: 7 comment:6 by , 11 months ago
Replying to Joe Locash:
Replying to Xi Ruoyao:
SPIRV-LLVM-Translator:
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr -G Ninja ..I would add
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include/spirv/ -DBUILD_SHARED_LIBS=ON
otherwise the build will try to download the spirv headers even though they are installed already, and by default it will build the static library.
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr
already prevents downloading the headers.
I also see rust, bindgen, and cbindgen being needed for the swrast vulkan driver:
Let's disable it then. I don't think it makes too much sense to use swrast for vulkan when a GPU is available.
follow-up: 11 comment:7 by , 10 months ago
Replying to Xi Ruoyao:
Replying to Joe Locash:
Replying to Xi Ruoyao:
SPIRV-LLVM-Translator:
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr -G Ninja ..I would add
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include/spirv/ -DBUILD_SHARED_LIBS=ON
otherwise the build will try to download the spirv headers even though they are installed already, and by default it will build the static library.
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr
already prevents downloading the headers.I also see rust, bindgen, and cbindgen being needed for the swrast vulkan driver:
Let's disable it then. I don't think it makes too much sense to use swrast for vulkan when a GPU is available.
Oops but it seems Nouveau vulkan drivers (for NVIDIA cards) need them as well.
comment:9 by , 10 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:10 by , 10 months ago
rust-bindgen: https://github.com/rust-lang/rust-bindgen/archive/v0.69.4/rust-bindgen-0.69.4.tar.gz
Building this package needs an Internet connection.
cargo build --release cargo test --release sudo install -vm755 target/release/bindgen /usr/bin
comment:11 by , 10 months ago
Replying to Xi Ruoyao:
Replying to Xi Ruoyao:
Replying to Joe Locash:
Replying to Xi Ruoyao:
SPIRV-LLVM-Translator:
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr -G Ninja ..I would add
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include/spirv/ -DBUILD_SHARED_LIBS=ON
otherwise the build will try to download the spirv headers even though they are installed already, and by default it will build the static library.
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr
already prevents downloading the headers.
Let's add -DCMAKE_SKIP_INSTALL_RPATH=ON
to prevent unnecessary rpath. I.e. the full cmake command:
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_SKIP_INSTALL_RPATH=ON -G Ninja ..
comment:12 by , 10 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
This update was relatively complex due to the amount of changes required.
- SPIRV-LLVM-Translator added at a81f3ed4cde1d339195cf37635e8a5409cccf635
- libclc added at c10629ed75012cc6788ae7746b3790988b5240a0
- Ply added at c28ea47bb7b43fd9041b41540c63a1fd26072c44
- Rust-bindgen added at dc59947d316d382cf7b97f786daf775f055b1df1
- Updated to mesa-24.1.1 at b8b314f5b105daa59e2fa3154d908e0ea7cffc2a
- Changelog entry at 3f1073690897bae94da53aa4b87ffb791a40e9b9
follow-up: 14 comment:13 by , 10 months ago
Replying to Joe Locash:
I also see rust, bindgen, and cbindgen being needed for the swrast vulkan driver:
This is incorrect. Building swrast vulkan driver does not invoke rustc at all. They are actually needed by the nouveau vulkan driver.
comment:14 by , 10 months ago
Replying to Xi Ruoyao:
Replying to Joe Locash:
I also see rust, bindgen, and cbindgen being needed for the swrast vulkan driver:
This is incorrect. Building swrast vulkan driver does not invoke rustc at all. They are actually needed by the nouveau vulkan driver.
I understand that. Try building swrast vulkan with gallium disabled.
If I am reading this correctly the Intel drivers now have libclc as a required dependency, which pulls in llvm and clang. Not something I am thrilled to see happen.