Skip to content

zakarumych/gfx-chain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages