attackgoat / screen-13

Screen 13 is an easy-to-use Vulkan rendering engine in the spirit of QBasic.
Apache License 2.0
256 stars 12 forks source link

Render graph binding and driver patterns #10

Closed attackgoat closed 2 years ago

attackgoat commented 2 years ago

This is an open discussion on the existing patterns as of v0.4. I'll update this issue. Feel free to create a specific issue if you want to track a particular idea, even if it is mentioned elsewhere.

Status:

Particularly lacking features:

Anything else:

Thank you!

attackgoat commented 2 years ago

Bindings could be removed as a concept if we store the resource state using the private data extension. That way each image/buffer/accel would be given the appropriate barriers without having to "hold" the binding and then return an "updated" one on unbind.

I think the end result would be basically bind-by-reference instead of bind-by-value; and this would definitely simplify usage patterns for no appreciable downside.

Update: See #25

attackgoat commented 2 years ago

When figuring out what kind of cache types are offered, it would be helpful to distinguish between swapchain images and "regular" images because this one class of resource is always a known size. See https://github.com/attackgoat/screen-13/pull/13

The design should support for multi-monitor setups too.

Update: See #29

attackgoat commented 2 years ago

Closing as all items, except for documentation, have been addressed. The remaining rough spots will be handled with individual issues.