Struct wgpu_hal::vulkan::DeviceShared

source ·
struct DeviceShared {
Show 18 fields raw: Device, family_index: u32, queue_index: u32, raw_queue: Queue, drop_guard: Option<DropGuard>, instance: Arc<InstanceShared>, physical_device: PhysicalDevice, enabled_extensions: Vec<&'static CStr>, extension_fns: DeviceExtensionFunctions, vendor_id: u32, pipeline_cache_validation_key: [u8; 16], timestamp_period: f32, private_caps: PrivateCapabilities, workarounds: Workarounds, features: Features, render_passes: Mutex<FxHashMap<RenderPassKey, RenderPass>>, framebuffers: Mutex<FxHashMap<FramebufferKey, Framebuffer>>, memory_allocations_counter: InternalCounter,
}

Fields§

§raw: Device§family_index: u32§queue_index: u32§raw_queue: Queue§drop_guard: Option<DropGuard>§instance: Arc<InstanceShared>§physical_device: PhysicalDevice§enabled_extensions: Vec<&'static CStr>§extension_fns: DeviceExtensionFunctions§vendor_id: u32§pipeline_cache_validation_key: [u8; 16]§timestamp_period: f32§private_caps: PrivateCapabilities§workarounds: Workarounds§features: Features§render_passes: Mutex<FxHashMap<RenderPassKey, RenderPass>>§framebuffers: Mutex<FxHashMap<FramebufferKey, Framebuffer>>§memory_allocations_counter: InternalCounter

Implementations§

source§

impl DeviceShared

source

pub(super) unsafe fn set_object_name(&self, object: impl Handle, name: &str)

source

pub fn make_render_pass( &self, key: RenderPassKey, ) -> Result<RenderPass, DeviceError>

source

pub fn make_framebuffer( &self, key: FramebufferKey, raw_pass: RenderPass, pass_label: Label<'_>, ) -> Result<Framebuffer, DeviceError>

source

fn make_memory_ranges<'a, I: 'a + Iterator<Item = MemoryRange>>( &self, buffer: &'a Buffer, ranges: I, ) -> Option<impl 'a + Iterator<Item = MappedMemoryRange<'_>>>

source

unsafe fn free_resources(&self)

source§

impl DeviceShared

source

pub(super) fn new_binary_semaphore(&self) -> Result<Semaphore, DeviceError>

source

pub(super) fn wait_for_fence( &self, fence: &Fence, wait_value: FenceValue, timeout_ns: u64, ) -> Result<bool, DeviceError>

Trait Implementations§

source§

impl DescriptorDevice<DescriptorSetLayout, DescriptorPool, DescriptorSet> for DeviceShared

source§

unsafe fn create_descriptor_pool( &self, descriptor_count: &DescriptorTotalCount, max_sets: u32, flags: DescriptorPoolCreateFlags, ) -> Result<DescriptorPool, CreatePoolError>

Creates a new descriptor pool. Read more
source§

unsafe fn destroy_descriptor_pool(&self, pool: DescriptorPool)

Destroys descriptor pool. Read more
source§

unsafe fn alloc_descriptor_sets<'a>( &self, pool: &mut DescriptorPool, layouts: impl ExactSizeIterator<Item = &'a DescriptorSetLayout>, sets: &mut impl Extend<DescriptorSet>, ) -> Result<(), DeviceAllocationError>

Allocates descriptor sets. Read more
source§

unsafe fn dealloc_descriptor_sets<'a>( &self, pool: &mut DescriptorPool, sets: impl Iterator<Item = DescriptorSet>, )

Deallocates descriptor sets. Read more
source§

impl MemoryDevice<DeviceMemory> for DeviceShared

source§

unsafe fn allocate_memory( &self, size: u64, memory_type: u32, flags: AllocationFlags, ) -> Result<DeviceMemory, OutOfMemory>

Allocates new memory object from device. This function may be expensive and even limit maximum number of memory objects allocated. Which is the reason for sub-allocation this crate provides. Read more
source§

unsafe fn deallocate_memory(&self, memory: DeviceMemory)

Deallocate memory object. Read more
source§

unsafe fn map_memory( &self, memory: &mut DeviceMemory, offset: u64, size: u64, ) -> Result<NonNull<u8>, DeviceMapError>

Map region of device memory to host memory space. Read more
source§

unsafe fn unmap_memory(&self, memory: &mut DeviceMemory)

Unmap previously mapped memory region. Read more
source§

unsafe fn invalidate_memory_ranges( &self, _ranges: &[MappedMemoryRange<'_, DeviceMemory>], ) -> Result<(), OutOfMemory>

Invalidates ranges of memory mapped regions. Read more
source§

unsafe fn flush_memory_ranges( &self, _ranges: &[MappedMemoryRange<'_, DeviceMemory>], ) -> Result<(), OutOfMemory>

Flushes ranges of memory mapped regions. 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<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

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, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,