[][src]Trait wgpu_core::hub::Access

pub trait Access<B> { }

Type system for enforcing the lock order on shared HUB structures. If type A implements Access<B>, that means we are allowed to proceed with locking resource B after we lock A.

The implenentations basically describe the edges in a directed graph of lock transitions. As long as it doesn't have loops, we can have multiple concurrent paths on this graph (from multiple threads) without deadlocks, i.e. there is always a path whose next resource is not locked by some other path, at any time.

Implementors

impl Access<Instance> for Root[src]

impl Access<Surface> for Root[src]

impl Access<Surface> for Instance[src]

impl<B: Backend> Access<BindGroup<B>> for Root[src]

impl<B: Backend> Access<BindGroup<B>> for BindGroupLayout<B>[src]

impl<B: Backend> Access<BindGroup<B>> for PipelineLayout<B>[src]

impl<B: Backend> Access<BindGroup<B>> for CommandBuffer<B>[src]

impl<B: Backend> Access<BindGroup<B>> for Device<B>[src]

impl<B: Backend> Access<BindGroupLayout<B>> for Root[src]

impl<B: Backend> Access<BindGroupLayout<B>> for PipelineLayout<B>[src]

impl<B: Backend> Access<BindGroupLayout<B>> for Device<B>[src]

impl<B: Backend> Access<PipelineLayout<B>> for Root[src]

impl<B: Backend> Access<PipelineLayout<B>> for RenderBundle[src]

impl<B: Backend> Access<PipelineLayout<B>> for Device<B>[src]

impl<B: Backend> Access<CommandBuffer<B>> for Root[src]

impl<B: Backend> Access<CommandBuffer<B>> for Device<B>[src]

impl<B: Backend> Access<CommandBuffer<B>> for SwapChain<B>[src]

impl<B: Backend> Access<RenderBundle> for CommandBuffer<B>[src]

impl<B: Backend> Access<RenderBundle> for Device<B>[src]

impl<B: Backend> Access<Device<B>> for Root[src]

impl<B: Backend> Access<Device<B>> for Adapter<B>[src]

impl<B: Backend> Access<Device<B>> for Surface[src]

impl<B: Backend> Access<Adapter<B>> for Root[src]

impl<B: Backend> Access<Adapter<B>> for Surface[src]

impl<B: Backend> Access<ComputePipeline<B>> for BindGroup<B>[src]

impl<B: Backend> Access<ComputePipeline<B>> for Device<B>[src]

impl<B: Backend> Access<RenderPipeline<B>> for BindGroup<B>[src]

impl<B: Backend> Access<RenderPipeline<B>> for Device<B>[src]

impl<B: Backend> Access<RenderPipeline<B>> for ComputePipeline<B>[src]

impl<B: Backend> Access<ShaderModule<B>> for BindGroupLayout<B>[src]

impl<B: Backend> Access<ShaderModule<B>> for Device<B>[src]

impl<B: Backend> Access<Buffer<B>> for Root[src]

impl<B: Backend> Access<Buffer<B>> for BindGroup<B>[src]

impl<B: Backend> Access<Buffer<B>> for BindGroupLayout<B>[src]

impl<B: Backend> Access<Buffer<B>> for CommandBuffer<B>[src]

impl<B: Backend> Access<Buffer<B>> for Device<B>[src]

impl<B: Backend> Access<Buffer<B>> for ComputePipeline<B>[src]

impl<B: Backend> Access<Buffer<B>> for RenderPipeline<B>[src]

impl<B: Backend> Access<Sampler<B>> for Root[src]

impl<B: Backend> Access<Sampler<B>> for Device<B>[src]

impl<B: Backend> Access<Sampler<B>> for TextureView<B>[src]

impl<B: Backend> Access<Texture<B>> for Root[src]

impl<B: Backend> Access<Texture<B>> for Device<B>[src]

impl<B: Backend> Access<Texture<B>> for Buffer<B>[src]

impl<B: Backend> Access<TextureView<B>> for Root[src]

impl<B: Backend> Access<TextureView<B>> for Device<B>[src]

impl<B: Backend> Access<TextureView<B>> for Texture<B>[src]

impl<B: Backend> Access<TextureView<B>> for SwapChain<B>[src]

impl<B: Backend> Access<SwapChain<B>> for Root[src]

impl<B: Backend> Access<SwapChain<B>> for Device<B>[src]

Loading content...