GithubHelp home page GithubHelp logo

zakarumych / gfx-chain Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 1.0 151 KB

Define dependency chains and synchronize gpu resources like if it is an easy task.

License: Apache License 2.0

Rust 100.00%
graphics gpu dependency-chain barrier synchronization automation vulkan gfx-rs

gfx-chain's Introduction

Attention

This project is discontinued in favor of rendy.

gfx-chain

This crates provides means for the users of low-level graphics API of gfx-hal to reason about what passes uses what resources and how those resources are accessed. With this information gfx-chain may automatically derive synchronization commands required before and after each pass.

Overview

Resources

Entry point to work with gfx-chain is Resource trait. User should implement if for resource types. It is expected to be wrappers for gfx_hal::Backend::Buffer and gfx_hal::Backend::Image.

Passes

Passes are logically coupled operations performed by GPU. For graphics they are identical to Vulkan's subpass. Pass uses resources the same way each time it is invoked. Each pass can declare a set of resource-categories it uses. Pass can provide information about how resources from each category is used, how they are accessed and in what layout resources are expected to be. Additionally pass specify on which command queue operations are executed.

Chain

Access, layout, usage and queue info (links) collected from all passes associated with each resource-category form dependency chain. Chain automatically derive synchronization commands (pipeline barriers and semaphores) required for resource-category. During command recording chain can be used to insert required barriers for specified concrete resources from the category. For submission chain can be asked if semaphores must be signaled or waited upon.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

gfx-chain's People

Contributors

lymia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

hellbutcher

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.