One native Vulkan instance, device and graphics queue shared by runtime devices.
More...
#include "donner/gpu/vulkan/VulkanDevice.h"
|
|
| ~VulkanSharedRoot () |
| | Releases native handles when the last holder has proved its work complete.
|
|
uint32_t | maxTextureDimension2D () const |
| | Largest 2D texture dimension reported by this root's physical device.
|
|
const std::shared_ptr< DeviceLostState > & | lostState () const |
| | Sticky loss condition shared by every runtime device opened over this root.
|
| std::shared_ptr< VulkanSurfaceRetirement > | registerExternalSurface (uint64_t surfaceHandle) |
| | Registers an external surface once for this root, refusing duplicates and later reuse.
|
| bool | destroyExternalSurface (uint64_t surfaceHandle, const std::shared_ptr< VulkanSurfaceRetirement > &retirement) |
| | Destroys an embedder surface after its registration proves retirement or no attachment.
|
| std::optional< TextureFormat > | preferredExternalSurfaceFormat (uint64_t surfaceHandle) const |
| | Chooses a format offered by the selected physical device for an external surface. Called before rendering pipelines are compiled for the editor window.
|
|
void * | nativeInstance () const |
| | Borrowed instance for an embedder to create its own window-system surface, or null when this root was created for headless work. The root must outlive the embedder surface.
|
|
bool | executionLockedForTest () const |
| | True while another thread holds the root's encode-through-submit lock. Test accessor.
|
One native Vulkan instance, device and graphics queue shared by runtime devices.
Runtime devices keep this owner alive while each owns its command pool, handles, serials and retirement. The native queue is serialized across their submissions and presentations.
◆ destroyExternalSurface()
| bool donner::gpu::vulkan::VulkanSharedRoot::destroyExternalSurface |
( |
uint64_t | surfaceHandle, |
|
|
const std::shared_ptr< VulkanSurfaceRetirement > & | retirement ) |
|
nodiscard |
Destroys an embedder surface after its registration proves retirement or no attachment.
- Parameters
-
| surfaceHandle | Registered VkSurfaceKHR bits. |
| retirement | Exact registration returned by registerExternalSurface. |
◆ preferredExternalSurfaceFormat()
| std::optional< TextureFormat > donner::gpu::vulkan::VulkanSharedRoot::preferredExternalSurfaceFormat |
( |
uint64_t | surfaceHandle | ) |
const |
|
nodiscard |
Chooses a format offered by the selected physical device for an external surface. Called before rendering pipelines are compiled for the editor window.
- Parameters
-
| surfaceHandle | VkSurfaceKHR bits owned by the embedder. |
◆ registerExternalSurface()
| std::shared_ptr< VulkanSurfaceRetirement > donner::gpu::vulkan::VulkanSharedRoot::registerExternalSurface |
( |
uint64_t | surfaceHandle | ) |
|
Registers an external surface once for this root, refusing duplicates and later reuse.
- Parameters
-
| surfaceHandle | VkSurfaceKHR bits from the instance this root owns. |
The documentation for this class was generated from the following file: