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§
sourcepub(super) unsafe fn set_object_name(&self, object: impl Handle, name: &str)
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
pub fn make_render_pass( &self, key: RenderPassKey, ) -> Result<RenderPass, DeviceError>
pub fn make_framebuffer( &self, key: FramebufferKey, raw_pass: RenderPass, pass_label: Label<'_>, ) -> Result<Framebuffer, DeviceError>
fn make_memory_ranges<'a, I: 'a + Iterator<Item = MemoryRange>>( &self, buffer: &'a Buffer, ranges: I, ) -> Option<impl 'a + Iterator<Item = MappedMemoryRange<'_>>>
pub(super) fn new_binary_semaphore(&self) -> Result<Semaphore, DeviceError>
pub(super) fn wait_for_fence( &self, fence: &Fence, wait_value: FenceValue, timeout_ns: u64, ) -> Result<bool, DeviceError>
Trait Implementations§
source§unsafe fn create_descriptor_pool(
&self,
descriptor_count: &DescriptorTotalCount,
max_sets: u32,
flags: DescriptorPoolCreateFlags,
) -> Result<DescriptorPool, CreatePoolError>
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)
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>
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>,
)
unsafe fn dealloc_descriptor_sets<'a>( &self, pool: &mut DescriptorPool, sets: impl Iterator<Item = DescriptorSet>, )
Deallocates descriptor sets. Read more
source§unsafe fn allocate_memory(
&self,
size: u64,
memory_type: u32,
flags: AllocationFlags,
) -> Result<DeviceMemory, OutOfMemory>
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)
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>
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)
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>
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>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more