vk-bootstrap/README.md

91 lines
2.0 KiB
Markdown
Raw Normal View History

# Vk-Bootstrap
A Vulkan Utility library meant to jump start a Vulkan Application
This library simplifies the tedious process of:
* Instance Creation
* Physical Device Selection
* Device Creation
* Getting Queues
* Swapchain Creation
It also adds several convenience for:
* enabling validation layers
* setting up a debug callback
* automate getting a drawable surface
* selecting a gpu based on a small set of common criteria
## Example
```cpp
vkb::InstanceBuilder builder;
builder.setup_validation_layers()
.set_app_name ("example")
.set_default_debug_messenger ();
auto inst_ret = builder.build();
if (!inst_ret.has_value()) {
// error
}
vkb::Instance inst = inst_ret.value();
vkb::PhysicalDeviceSelector selector{ inst };
selector.set_surface (/* from user created window*/)
.set_minimum_version (1, 0)
.require_dedicated_transfer_queue();
auto phys_ret = selector.select ();
if (!phys_ret.has_value()) {
// error
}
vkb::PhysicalDevice physical_device = phys_ret.value();
vkb::DeviceBuilder device_builder{ physical_device };
auto dev_ret = device_builder.build ();
if (!dev_ret.has_value()){
// error
}
vkb::Device device = dev_ret.value();
VkQueue graphics_queue = get_queue_graphics(device).value();
VkQueue compute_queue = get_queue_compute(device).value();
VkQueue transfer_queue = get_queue_transfer(device).value();
```
## Building
Requires CMake and Vulkan installed on your system.
```bash
git clone https://github.com/charles-lunarg/vk-bootstrap
cd vk-bootstrap
mkdir build
cd build
cmake ..
```
To test, glfw and Catch2 are used and automatically included using git submodules.
In the project directory, run
```bash
git submodule update --init
```
to get the required dependencies for testing setup.
Then return to the build directory and enable tests with `VK_BOOTSTRAP_TEST`
```bash
cmake ../path/to/vk-bootstrap/ -DVK_BOOTSTRAP_TEST=ON
```
## Todo's
* Package library to be usable
* More examples
* Testing
* Documenting API
* Fleshing out device configuration