Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/florianvazelle/poike

A comprehensible Vulkan framework
https://github.com/florianvazelle/poike

cpp20 framework object-oriented vulkan

Last synced: 18 days ago
JSON representation

A comprehensible Vulkan framework

Awesome Lists containing this project

README

        


Poike



A work in progress comprehensible Vulkan framework









## Building

### Build and run test suite

Use the following command to build and run the test suite.

```bash
cmake -Bbuild
cmake --build build
./build/bin/poikeTests
```

### Developement

To run it with [include-what-you-use](https://github.com/include-what-you-use/include-what-you-use) :
```bash
sudo apt install llvm-10-dev libclang-10-dev clang-10
git clone https://github.com/include-what-you-use/include-what-you-use.git iwyu

cd iwyu
git checkout clang_10

mkdir build
cd build

cmake -G "Unix Makefiles" -DCMAKE_PREFIX_PATH=/usr/lib/llvm-10 ..

cd ..
CC="clang" CXX="clang++" cmake -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="iwyu/build/bin/include-what-you-use;-Xiwyu;any;-Xiwyu;iwyu;-Xiwyu;args" -Bbuild
cmake --build build 2> iwyu.log
```

## Dependencies

- C++20 compiler :
- Visual Studio 2019
- GCC 9+ or Clang 10+
- [CMake](https://cmake.org/) for build system creation (>= 3.16.3)
- [Conan](https://conan.io/) for install packages (>= 1.0)
- [Doxygen](https://doxygen.org/) for generate documentation (>= 1.8, optional)

## References

- [Writing an Efficient Vulkan Renderer](https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/)
- [Vulkan Shader Resource-Binding](https://developer.nvidia.com/vulkan-shader-resource-binding)
- [Vulkan Input Attachments and Sub Passes](https://www.saschawillems.de/blog/2018/07/19/vulkan-input-attachments-and-sub-passes/)
- [Yet Another Blog Explaining Vulkan Synchronization](https://themaister.net/blog/2019/08/14/yet-another-blog-explaining-vulkan-synchronization/)