Struct wgpu::Adapter

source ·
pub struct Adapter { /* private fields */ }
Expand description

Handle to a physical graphics and/or compute device.

Adapters can be used to open a connection to the corresponding Device on the host system by using Adapter::request_device.

Does not have to be kept alive.

Corresponds to WebGPU GPUAdapter.


Requests a connection to a physical device, creating a logical device.

Returns the Device together with a Queue that executes command buffers.

  • desc - Description of the features and limits requested from the given device.
  • trace_path - Can be used for API call tracing, if that feature is enabled in wgpu-core.
  • Features specified by desc are not supported by this adapter.
  • Unsafe features were requested but not enabled when requesting the adapter.
  • Limits requested exceed the values provided by the adapter.
  • Adapter does not support all features wgpu requires to safely operate.
Available on non-WebAssembly or crate feature emscripten only.

Create a wgpu Device and Queue from a wgpu-hal OpenDevice

  • hal_device must be created from this adapter internal handle.
  • desc.features must be a subset of hal_device features.
Available on non-WebAssembly or crate feature webgl only.

Apply a callback to this Adapter’s underlying backend adapter.

If this Adapter is implemented by the backend API given by A (Vulkan, Dx12, etc.), then apply hal_adapter_callback to Some(&adapter), where adapter is the underlying backend adapter type, A::Adapter.

If this Adapter uses a different backend, apply hal_adapter_callback to None.

The adapter is locked for reading while hal_adapter_callback runs. If the callback attempts to perform any wgpu operations that require write access to the adapter, deadlock will occur. The locks are automatically released when the callback returns.

  • The raw handle passed to the callback must not be manually destroyed.

Returns whether this adapter may present to the passed surface.

List all features that are supported with this adapter.

Features must be explicitly requested in Adapter::request_device in order to use them.

List the “best” limits that are supported by this adapter.

Limits must be explicitly requested in Adapter::request_device to set the values that you are allowed to use.

Get info about the adapter itself.

Get info about the adapter itself.

Returns the features supported for a given texture format by this adapter.

Note that the WebGPU spec further restricts the available usages/features. To disable these restrictions on a device, request the Features::TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES feature.

Generates a timestamp using the clock used by the presentation engine.

When comparing completely opaque timestamp systems, we need a way of generating timestamps that signal the exact same time. You can do this by calling your own timestamp function immediately after a call to this function. This should result in timestamps that are 0.5 to 5 microseconds apart. There are locks that must be taken during the call, so don’t call your function before.

use std::time::{Duration, Instant};
let presentation = adapter.get_presentation_timestamp();
let instant = Instant::now();

// We can now turn a new presentation timestamp into an Instant.
let some_pres_timestamp = some_code();
let duration = Duration::from_nanos((some_pres_timestamp.0 - presentation.0) as u64);
let new_instant: Instant = instant + duration;

Trait Implementations§

Formats the value using the given formatter. Read more
Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.