Skip to main content

ProxyInstanceOwner

Struct ProxyInstanceOwner 

Source
pub struct ProxyInstanceOwner { /* private fields */ }
Expand description

Owns the Vulkan instance created by the Streamline interposer.

Shut Streamline down after GPU completion but before destroying child devices, then drop the imported instance wrappers and all children before dropping this owner. The owner retains the interposer loader and ash instance, independently of the vk-graph feature. If Streamline is still active or the thread is panicking, dropping the owner intentionally leaks the native proxy and context. Child lifetimes are the caller’s responsibility; they are not tracked by this owner.

Implementations§

Source§

impl ProxyInstanceOwner

Source

pub unsafe fn entry(&self) -> &Entry

§Safety

This owner must outlive all uses and clones of the returned loader and its function pointers. Do not create additional instances through this entry; use the owned interposer instance.

§Panics

Panics if the internal owner invariant is violated.

Source

pub fn evaluator(&self) -> Evaluator

§Panics

Panics if the internal owner invariant is violated.

Source

pub unsafe fn instance(&self) -> &Instance

§Safety

Do not destroy this instance yourself. This owner must outlive all instance clones, function pointers, and child objects. After GPU completion, shut the evaluator down before destroying child devices, then destroy all children before dropping this owner.

§Panics

Panics if the internal owner invariant is violated.

Trait Implementations§

Source§

impl Drop for ProxyInstanceOwner

Available on Windows only.
Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.