Try / Tempest

API abstraction layer for 3D graphics, UI and sound. Written in C++17 with Vulkan, DX12 and Metal support.
MIT License
83 stars 24 forks source link

Uniform data/buffers #32

Open Try opened 2 years ago

Try commented 2 years ago

Vulkan api on this side is quite messy - need to design nice engine-level api.

Use-cases:

  1. Per-frame immediate data (view/proj matrix, main light)
  2. Per-draw immediate data (obj matrix)
  3. Constant data (vbo/ibo, animation skeleton to some extend)

case 3 is native - DescriptorSet::set case 2 almost works, as push constant (128 byte limit is an issue) case 1 can work as push, except it doesn't fit there.

Try commented 1 year ago

Per-frame immediate data (view/proj matrix, main light)

Update on this case from OpenGothic: updating device-local ssbo, from host-visible buffers (aka staging). Can be done cleanly by introducing cmd.update(ssbo, void*,offset, size)