Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 1.76 KB

README.md

File metadata and controls

44 lines (30 loc) · 1.76 KB

vulkan-helpers

Small helper classes for Vulkan C++ apps

Requirements

  • C++11 compiler
  • Vulkan SDK / headers, with vulkan.hpp

VkhInfo

Output information (inspired by the output of vulkaninfo) about Vulkan:

  • Instance Extensions
  • Surfaces
  • Physical Devices

to a specified outputHandler.

The outputHandler receives a multiline, \n-separated string.

VkhRenderPassCompat

A rough attempt at implementing the rules for determining Vulkan Render Pass Compatibility.

Framebuffers and graphics pipelines are created based on a specific render pass object. They must only be used with that render pass object, or one compatible with it.

Construct a VkhRenderpassCompat by passing in the vk::RenderPassCreateInfo used to create a render pass. VkhRenderpassCompat will make a deep copy of the vk::RenderPassCreateInfo information.

A VkhRenderpassCompat instance can be compared for compatibility with another via: bool isCompatibleWith(const VkhRenderpassCompat& other) const;

TODOs:

  • Implement proper handling of the pNext member of VkRenderPassCreateInfo
    • Currently, if pNext != nullptr, VkhRenderPassCompat::isCompatibleWith will always evaluate to false.
  • Handle singleSubpassSpecialCase (optimization)

    As an additional special case, if two render passes have a single subpass, they are compatible even if they have different resolve attachment references or depth/stencil resolve modes but satisfy the other compatibility conditions.

License

All helper classes in this repo are distributed under the MIT License.