Giter Site home page Giter Site logo

vulkan-helpers's Introduction

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.

vulkan-helpers's People

Contributors

past-due avatar

Watchers

 avatar  avatar

vulkan-helpers's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.