implemented switch CFG parsing
[kazan.git] / README.md
1 # Kazan
2
3 Kazan is an in-progress Vulkan driver that supports cross-platform software rendering, and (eventually) is a driver for [libre-riscv.org's RISC-V based GPU](https://libre-riscv.org/3d_gpu/).
4
5 ## License
6
7 Kazan is licensed under the LGPL, v2.1 or later. See [LICENSE.md](https://salsa.debian.org/Kazan-team/kazan/blob/master/LICENSE.md) for details.
8
9 Kazan uses third-party software, which has their own licenses.
10
11 ## Code of Conduct
12
13 As part of Kazan being hosted by [Debian](https://www.debian.org/), it is important to follow the [Debian Code of Conduct](https://www.debian.org/code_of_conduct) when participating in Kazan's development.
14
15 ## Branches
16
17 The [`master` branch](https://salsa.debian.org/Kazan-team/kazan/tree/master) is the new Rust version. The previous C++ version is in the [`kazan-old` branch](https://salsa.debian.org/Kazan-team/kazan/tree/kazan-old). The version as of the end of GSOC 2017 is in the [`gsoc-2017` tag](https://salsa.debian.org/Kazan-team/kazan/tree/gsoc-2017).
18
19 ## Building using Docker
20
21 * Clone Git repo:
22 git clone --recursive https://salsa.debian.org/Kazan-team/kazan.git
23
24 * Build:
25 cd kazan
26 docker build -t kazan-cts .
27 If the build fails due to Out-of-Memory, reduce the number of processes run simultaneously by passing `--cpuset-cpus=<cpu-numbers>` to only use the specified CPUs:
28 # only use CPUs 0, 1, and 2
29 docker build --cpuset-cpus=0,1,2 -t kazan-cts .
30
31 ## Building on Ubuntu 18.04
32
33 * Install Rust via [rustup](https://rustup.rs/):
34 curl https://sh.rustup.rs -sSf | sh
35 You need to restart your shell after installing Rust so `PATH` gets set correctly.
36
37 * Install required packages:
38 sudo apt-get install cmake ninja-build libgl1-mesa-dev libxcb-shm0 libclang-dev clang build-essential git
39
40 * Clone Git repo:
41 git clone --recursive https://salsa.debian.org/Kazan-team/kazan.git
42
43 * Build using Cargo:
44 cd kazan
45 cargo build -vv
46 Building using `-vv` is recommended because the build process builds LLVM and it doesn't show LLVM's build progress unless using `-vv`.
47
48 * Run unit tests:
49 cargo test
50
51 * Run a program using the built driver:
52 ./run.sh <program-name> [<args> ...]
53 For example, to run `vulkaninfo`:
54 ./run.sh vulkaninfo
55
56 * Run the Vulkan Conformance Test Suite (CTS):
57 * Build and run the CTS:
58 ./run-cts.sh
59 * Only build the CTS:
60 ./run-cts.sh --update-only
61 * Run the CTS without trying to rebuild:
62 ./run-cts.sh --no-update
63 The CTS is known to fail the `dEQP-VK.api.version_check.entry_points` test due to a bug in the `libvulkan1.so` that comes packaged in Ubuntu 18.04. That test should pass when using the `libvulkan1.so` from the Vulkan SDK.
64
65 ## News
66
67 ### We've moved! - 2018-10-23
68
69 Kazan's new canonical location is [salsa.debian.org/Kazan-team/kazan](https://salsa.debian.org/Kazan-team/kazan).
70
71 The [Kazan GitHub repository](https://github.com/kazan-3d/kazan) is now used as a read-only mirror.
72
73 Kazan's domain names, [kazan-3d.org](http://kazan-3d.org/) and [kazan.graphics](http://kazan.graphics), now redirect to Kazan's canonical location on Debian Salsa.