Skip to content

Device States and Backend Switching#66

Merged
crud89 merged 122 commits intomainfrom
backend-states
Jul 28, 2022
Merged

Device States and Backend Switching#66
crud89 merged 122 commits intomainfrom
backend-states

Conversation

@crud89
Copy link
Copy Markdown
Owner

@crud89 crud89 commented Jul 27, 2022

Describe the pull request

This PR introduces several API improvements:

  • DeviceState allows to let the device manage resources, namely render passes, pipelines, buffers, images, samplers and descriptor sets.
  • Apps can now be configured with multiple backends per backend type. Using device states help to manage resources over multiple backends.
  • The builder interface has been improved and is now less intrusive, as well as more compatible. This also helps when creating states for multiple backends from a single (template) method.

Device state resources also can be assigned a name now, which is also a preparation for #15.

Related issues

ToDo

Currently, it is not possible to switch from DX12 back to Vulkan, since D3D12 only supports flip-model based swap chains and there is no way to reset the window afterwards. To fix this, the Vulkan swap chain should interop the DXGI swap chain if the DX12 backend is available. This should also improve performance for Vulkan, since it does not rely on legacy GDI bitblt anymore.

Also the readme and documentation should be adapted before merging.

crud89 added 30 commits August 18, 2021 12:06
Also rename `getType` member.
@crud89 crud89 marked this pull request as ready for review July 28, 2022 18:22
@crud89 crud89 merged commit 849f2ff into main Jul 28, 2022
@crud89 crud89 deleted the backend-states branch July 28, 2022 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DX12 ❎ The issue involves the DX12 backend. Priority: High A high priority issue. Vulkan 🌋 The issue involves the Vulkan backend.

Projects

Status: v0.3.1

Development

Successfully merging this pull request may close these issues.

Interop DXGI swap chain in Vulkan, if DX12 backend is enabled. Support back-end switching.

1 participant