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)

Set the name of object to name.

If name contains an interior null byte, then the name set will be truncated to that byte.

§Safety

It must be valid to set object’s debug name

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,