mesa/docs/rusticl.rst
Karol Herbst 49d677d326 rusticl: fix build error with valgrind being enabled
This bumps the meson requierement to 1.0 because it requires
https://github.com/mesonbuild/meson/pull/11024

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7688
Fixes: 20c90fed5a ("rusticl: added")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19778>
(cherry picked from commit 4b841cfec8)

Conflicts:
	.gitlab-ci/image-tags.yml

Stable:
    - Create a custom CI tag for 23.0, as we're lacking some patches
      necessary to use the same CI images as main, and I don't want to
      pull that many CI changes into the stable branch
2023-01-31 14:18:17 -08:00

51 lines
1.7 KiB
ReStructuredText

Rusticl
=======
To build Rusticl you need to satisfy the following build dependencies:
- ``rustc``
- ``rustfmt`` (highly recommended, but only *required* for CI builds
or when authoring patches)
- ``bindgen``
- `LLVM <https://github.com/llvm/llvm-project/>`__ built with
``libclc`` and ``-DLLVM_ENABLE_DUMP=ON``.
- `SPIRV-Tools <https://github.com/KhronosGroup/SPIRV-Tools>`__
- `SPIRV-LLVM-Translator
<https://github.com/KhronosGroup/SPIRV-LLVM-Translator>`__ for a
``libLLVMSPIRVLib.so`` matching your version of LLVM, i.e. if you're
using LLVM 15 (``libLLVM.so.15``), then you need a
``libLLVMSPIRVLib.so.15``.
The minimum versions to build Rusticl are:
- Rust: 1.59
- Meson: 1.0.0
- Bindgen: 0.58.0
- LLVM: 11.0.0 (recommended: 15.0.0)
- SPIRV-Tools: any version (recommended: v2022.3)
Afterwards you only need to add ``-Dgallium-rusticl=true -Dllvm=enabled
-Drust_std=2021`` to your build options.
Most of the code related to Mesa's C code lives inside ``/mesa``, with
the occasional use of enums, structs or constants through the code base.
If you need help ping ``karolherbst`` either in ``#dri-devel`` or
``#rusticl`` on OFTC.
Also, make sure that before submitting code to verify the formatting is
in order. That can easily be done via ``git ls-files */{lib,app}.rs
| xargs rustfmt``
When submitting Merge Requests or filing bugs related to Rusticl, make
sure to add the ``Rusticl`` label so people subscribed to that Label get
pinged.
Known issues
------------
One issue you might come across is, that the Rust edition meson sets is
not right. This is a known `meson bug
<https://github.com/mesonbuild/meson/issues/10664>`__ and in order to
fix it, simply run ``meson configure $your_build_dir -Drust_std=2021``