Work-in-progress software-rendering Vulkan implementation
Clone or download

README.md

Kazan

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.

License

Kazan is licensed under the LGPL, v2.1 or later. See LICENSE.md for details.

Kazan uses third-party software, which has their own licenses.

Code of Conduct

As part of Kazan being hosted by Debian, it is important to follow the Debian Code of Conduct when participating in Kazan's development.

Branches

The master branch is the new Rust version. The previous C++ version is in the kazan-old branch. The version as of the end of GSOC 2017 is in the gsoc-2017 tag.

Building using Docker

  • Clone Git repo: git clone --recursive https://salsa.debian.org/Kazan-team/kazan.git

  • Build: cd kazan docker build -t kazan-cts . 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: # only use CPUs 0, 1, and 2 docker build --cpuset-cpus=0,1,2 -t kazan-cts .

Building on Ubuntu 18.04

  • Install Rust via rustup: curl https://sh.rustup.rs -sSf | sh You need to restart your shell after installing Rust so PATH gets set correctly.

  • Install required packages: sudo apt-get install cmake ninja-build libgl1-mesa-dev libxcb-shm0 libclang-dev clang build-essential git

  • Clone Git repo: git clone --recursive https://salsa.debian.org/Kazan-team/kazan.git

  • Build using Cargo: cd kazan cargo build -vv Building using -vv is recommended because the build process builds LLVM and it doesn't show LLVM's build progress unless using -vv.

  • Run unit tests: cargo test

  • Run a program using the built driver: ./run.sh [ ...] For example, to run vulkaninfo: ./run.sh vulkaninfo

  • Run the Vulkan Conformance Test Suite (CTS):

    • Build and run the CTS: ./run-cts.sh
    • Only build the CTS: ./run-cts.sh --update-only
    • Run the CTS without trying to rebuild: ./run-cts.sh --no-update 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.

News

We've moved! - 2018-10-23

Kazan's new canonical location is salsa.debian.org/Kazan-team/kazan.

The Kazan GitHub repository is now used as a read-only mirror.

Kazan's domain names, kazan-3d.org and kazan.graphics, now redirect to Kazan's canonical location on Debian Salsa.