Skip to main content

ProxyVulkanInstance

Struct ProxyVulkanInstance 

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

A vk-graph instance created through the Streamline Vulkan interposer.

Keep this owner alive while using the instance. After GPU work completes, shut its evaluator down before dropping child devices. The owner may be dropped only after every child and cloned instance has been dropped. Dropping while Streamline is active or the thread is panicking intentionally leaks the native proxy; child lifetimes are not tracked.

Implementations§

Source§

impl ProxyVulkanInstance

Source

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

§Safety

After GPU completion, the evaluator must be shut down before child devices are destroyed. Every child object and cloned vk_graph::Instance created from the returned instance must then be destroyed before this owner.

§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 into_parts(self) -> (Instance, ProxyInstanceOwner)

§Safety

The returned owner must outlive the instance and every device or resource created from it. After GPU completion, shut the evaluator down before destroying child devices.

§Panics

Panics if the internal owner invariant is violated.

Trait Implementations§

Source§

impl Drop for ProxyVulkanInstance

Available on Windows and crate feature vk-graph 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.