Donner SVG main
0.8.0 ยท 382bd0190.8.0 main
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::geode::GeodePhysicalDeviceOwner Class Reference

Shared lifetime owner for one selected GPU runtime device and the backend root it drives. More...

#include "donner/svg/renderer/geode/GeodeDevice.h"

Public Member Functions

 GeodePhysicalDeviceOwner (const GeodePhysicalDeviceOwner &)=delete
GeodePhysicalDeviceOwner & operator= (const GeodePhysicalDeviceOwner &)=delete
const GeodeGpuRoot & root () const
 The backend root every runtime device over this owner drives.
bool hasBackendDevice () const
 Whether this owner has a backend device that requires queue-idle handling.
const std::shared_ptr< GeodeDeviceLostState > & lostState () const
 Sticky loss condition shared by every context and runtime device over this root. Retained because a backend device-lost callback can outlive everything that registered it.
GeodeRuntimeDevice createLogicalDevice () const
 A runtime device of its own over this owner's backend root, for a second logical context. Two contexts are two runtime devices: separate handle tables and serials over the one root they share.
const std::shared_ptr< GeodeHandleRetirement > & rootDeviceHandleRetirement () const
 Retirement for the context that renders through this owner's root device (see GeodeDevice::handleRetirement). The owner keeps it because the root device outlives that context.
bool rootRetirementOutlivesRootDeviceForTesting () const
 Whether the root context's retirement is destroyed after the root device: true when rootDeviceRetirement_ is declared before rootDevice_. Test accessor.

Friends

class GeodeDevice
 Only a context builds an owner, from a root and the device CreateGpuDeviceOver opened over it, so a device can never be paired with a root of another backend.

Detailed Description

Shared lifetime owner for one selected GPU runtime device and the backend root it drives.

Logical GeodeDevice contexts retain this owner while keeping their runtime handle tables, submissions, pipelines, caches, counters and retirement queues independent. The native root is released once, after the last context.


The documentation for this class was generated from the following file: