util/vbuf: fix multidraw unrolling
[platform/upstream/mesa.git] / docs / rusticl.rst
1 Rusticl
2 =======
3
4 To build Rusticl you need to satisfy the following build dependencies:
5
6 -  ``rustc``
7 -  ``rustfmt`` (highly recommended, but only *required* for CI builds
8    or when authoring patches)
9 -  ``bindgen``
10 -  `LLVM <https://github.com/llvm/llvm-project/>`__ built with
11    ``libclc`` and ``-DLLVM_ENABLE_DUMP=ON``.
12 -  `SPIRV-Tools <https://github.com/KhronosGroup/SPIRV-Tools>`__
13 -  `SPIRV-LLVM-Translator
14    <https://github.com/KhronosGroup/SPIRV-LLVM-Translator>`__ for a
15    ``libLLVMSPIRVLib.so`` matching your version of LLVM, i.e. if you're
16    using LLVM 15 (``libLLVM.so.15``), then you need a
17    ``libLLVMSPIRVLib.so.15``.
18
19 The minimum versions to build Rusticl are:
20
21 -  Rust: 1.59
22 -  Meson: 0.61.4
23 -  Bindgen: 0.58.0
24 -  LLVM: 11.0.0 (recommended: 15.0.0)
25 -  SPIRV-Tools: any version (recommended: v2022.3)
26
27 Afterwards you only need to add ``-Dgallium-rusticl=true -Dllvm=enabled
28 -Drust_std=2021`` to your build options.
29
30 Most of the code related to Mesa's C code lives inside ``/mesa``, with
31 the occasional use of enums, structs or constants through the code base.
32
33 If you need help ping ``karolherbst`` either in ``#dri-devel`` or
34 ``#rusticl`` on OFTC.
35
36 Also, make sure that before submitting code to verify the formatting is
37 in order. That can easily be done via ``git ls-files */{lib,app}.rs
38 | xargs rustfmt``
39
40 When submitting Merge Requests or filing bugs related to Rusticl, make
41 sure to add the ``Rusticl`` label so people subscribed to that Label get
42 pinged.
43
44 Known issues
45 ------------
46
47 One issue you might come across is, that the Rust edition meson sets is
48 not right. This is a known `meson bug
49 <https://github.com/mesonbuild/meson/issues/10664>`__ and in order to
50 fix it, simply run ``meson configure $your_build_dir -Drust_std=2021``