diff --git a/wgpu-hal/src/auxil/dxgi/conv.rs b/wgpu-hal/src/auxil/dxgi/conv.rs
index 13e6199b8b..22c752a896 100644
--- a/wgpu-hal/src/auxil/dxgi/conv.rs
+++ b/wgpu-hal/src/auxil/dxgi/conv.rs
@@ -1,4 +1,4 @@
-use std::{ffi::OsString, os::windows::ffi::OsStringExt};
+use std::{ffi::OsString, os::windows::ffi::OsStringExt, string::String};
use windows::Win32::Graphics::Dxgi;
diff --git a/wgpu-hal/src/auxil/dxgi/exception.rs b/wgpu-hal/src/auxil/dxgi/exception.rs
index 15311e3953..3700a24977 100644
--- a/wgpu-hal/src/auxil/dxgi/exception.rs
+++ b/wgpu-hal/src/auxil/dxgi/exception.rs
@@ -1,4 +1,8 @@
-use std::{borrow::Cow, slice};
+use std::{
+ borrow::Cow,
+ slice,
+ string::{String, ToString as _},
+};
use parking_lot::Mutex;
use windows::Win32::{Foundation, System::Diagnostics::Debug};
diff --git a/wgpu-hal/src/auxil/dxgi/factory.rs b/wgpu-hal/src/auxil/dxgi/factory.rs
index 37ab52bf42..23bb291cc3 100644
--- a/wgpu-hal/src/auxil/dxgi/factory.rs
+++ b/wgpu-hal/src/auxil/dxgi/factory.rs
@@ -1,4 +1,4 @@
-use std::ops::Deref;
+use std::{ops::Deref, string::String, vec::Vec};
use windows::{core::Interface as _, Win32::Graphics::Dxgi};
diff --git a/wgpu-hal/src/auxil/dxgi/mod.rs b/wgpu-hal/src/auxil/dxgi/mod.rs
index 559969633c..9b945923b8 100644
--- a/wgpu-hal/src/auxil/dxgi/mod.rs
+++ b/wgpu-hal/src/auxil/dxgi/mod.rs
@@ -1,3 +1,5 @@
+#![allow(clippy::std_instead_of_alloc, clippy::std_instead_of_core)]
+
pub mod conv;
pub mod exception;
pub mod factory;
diff --git a/wgpu-hal/src/auxil/renderdoc.rs b/wgpu-hal/src/auxil/renderdoc.rs
index 3879bb9545..14a5832dc0 100644
--- a/wgpu-hal/src/auxil/renderdoc.rs
+++ b/wgpu-hal/src/auxil/renderdoc.rs
@@ -1,6 +1,6 @@
//! RenderDoc integration -
-use std::{ffi, os, ptr};
+use std::{ffi, os, ptr, string::String};
/// The dynamically loaded RenderDoc API function table
#[repr(C)]
diff --git a/wgpu-hal/src/dx12/adapter.rs b/wgpu-hal/src/dx12/adapter.rs
index 370b842ade..bc5c943d88 100644
--- a/wgpu-hal/src/dx12/adapter.rs
+++ b/wgpu-hal/src/dx12/adapter.rs
@@ -1,8 +1,10 @@
use std::{
mem::{size_of, size_of_val},
ptr,
+ string::String,
sync::Arc,
thread,
+ vec::Vec,
};
use parking_lot::Mutex;
diff --git a/wgpu-hal/src/dx12/command.rs b/wgpu-hal/src/dx12/command.rs
index 033f932b4f..474500d145 100644
--- a/wgpu-hal/src/dx12/command.rs
+++ b/wgpu-hal/src/dx12/command.rs
@@ -1,15 +1,17 @@
+use std::{mem, ops::Range, vec::Vec};
+
+use windows::Win32::{
+ Foundation,
+ Graphics::{Direct3D12, Dxgi},
+};
+use windows_core::Interface;
+
use super::conv;
use crate::{
auxil::{self, dxgi::result::HResult as _},
dx12::borrow_interface_temporarily,
AccelerationStructureEntries,
};
-use std::{mem, ops::Range};
-use windows::Win32::{
- Foundation,
- Graphics::{Direct3D12, Dxgi},
-};
-use windows_core::Interface;
fn make_box(origin: &wgt::Origin3d, size: &crate::CopyExtent) -> Direct3D12::D3D12_BOX {
Direct3D12::D3D12_BOX {
diff --git a/wgpu-hal/src/dx12/descriptor.rs b/wgpu-hal/src/dx12/descriptor.rs
index d191d87765..ae42b18379 100644
--- a/wgpu-hal/src/dx12/descriptor.rs
+++ b/wgpu-hal/src/dx12/descriptor.rs
@@ -1,4 +1,4 @@
-use std::fmt;
+use std::{fmt, vec::Vec};
use bit_set::BitSet;
use parking_lot::Mutex;
diff --git a/wgpu-hal/src/dx12/device.rs b/wgpu-hal/src/dx12/device.rs
index 9cbb6cd14e..a5fbe283db 100644
--- a/wgpu-hal/src/dx12/device.rs
+++ b/wgpu-hal/src/dx12/device.rs
@@ -4,8 +4,10 @@ use std::{
mem::{self, size_of, size_of_val},
num::NonZeroU32,
ptr, slice,
+ string::{String, ToString as _},
sync::Arc,
time::{Duration, Instant},
+ vec::Vec,
};
use parking_lot::Mutex;
diff --git a/wgpu-hal/src/dx12/instance.rs b/wgpu-hal/src/dx12/instance.rs
index 68d988da37..69f1ac7864 100644
--- a/wgpu-hal/src/dx12/instance.rs
+++ b/wgpu-hal/src/dx12/instance.rs
@@ -1,4 +1,4 @@
-use std::{mem::size_of_val, sync::Arc};
+use std::{mem::size_of_val, string::String, sync::Arc, vec::Vec};
use parking_lot::RwLock;
use windows::{
diff --git a/wgpu-hal/src/dx12/mod.rs b/wgpu-hal/src/dx12/mod.rs
index d5d6843c39..99e29e87c9 100644
--- a/wgpu-hal/src/dx12/mod.rs
+++ b/wgpu-hal/src/dx12/mod.rs
@@ -72,6 +72,8 @@ Otherwise, we pass a range corresponding only to the current bind group.
!*/
+#![allow(clippy::std_instead_of_alloc, clippy::std_instead_of_core)]
+
mod adapter;
mod command;
mod conv;
@@ -84,7 +86,7 @@ mod suballocation;
mod types;
mod view;
-use std::{ffi, fmt, mem, num::NonZeroU32, ops::Deref, sync::Arc};
+use std::{borrow::ToOwned as _, ffi, fmt, mem, num::NonZeroU32, ops::Deref, sync::Arc, vec::Vec};
use arrayvec::ArrayVec;
use parking_lot::{Mutex, RwLock};
diff --git a/wgpu-hal/src/dx12/sampler.rs b/wgpu-hal/src/dx12/sampler.rs
index f49555391f..b4570fe1bd 100644
--- a/wgpu-hal/src/dx12/sampler.rs
+++ b/wgpu-hal/src/dx12/sampler.rs
@@ -2,6 +2,8 @@
//!
//! Nearly identical to the Vulkan sampler cache, with added descriptor heap management.
+use std::vec::Vec;
+
use hashbrown::{hash_map::Entry, HashMap};
use ordered_float::OrderedFloat;
diff --git a/wgpu-hal/src/dx12/shader_compilation.rs b/wgpu-hal/src/dx12/shader_compilation.rs
index 957bd8c3c4..f9f3a6b740 100644
--- a/wgpu-hal/src/dx12/shader_compilation.rs
+++ b/wgpu-hal/src/dx12/shader_compilation.rs
@@ -1,6 +1,6 @@
+use std::{ffi::CStr, path::PathBuf, string::String, vec::Vec};
+
use crate::auxil::dxgi::result::HResult;
-use std::ffi::CStr;
-use std::path::PathBuf;
use thiserror::Error;
use windows::{
core::{Interface, PCSTR, PCWSTR},
diff --git a/wgpu-hal/src/dynamic/adapter.rs b/wgpu-hal/src/dynamic/adapter.rs
index aebe8ec775..e97aca1ce3 100644
--- a/wgpu-hal/src/dynamic/adapter.rs
+++ b/wgpu-hal/src/dynamic/adapter.rs
@@ -1,3 +1,5 @@
+use alloc::boxed::Box;
+
use crate::{
Adapter, Api, DeviceError, OpenDevice, SurfaceCapabilities, TextureFormatCapabilities,
};
diff --git a/wgpu-hal/src/dynamic/command.rs b/wgpu-hal/src/dynamic/command.rs
index cc6dd81fe0..7b79866ad1 100644
--- a/wgpu-hal/src/dynamic/command.rs
+++ b/wgpu-hal/src/dynamic/command.rs
@@ -1,4 +1,5 @@
-use std::ops::Range;
+use alloc::{boxed::Box, vec::Vec};
+use core::ops::Range;
use crate::{
AccelerationStructureBarrier, Api, Attachment, BufferBarrier, BufferBinding, BufferCopy,
@@ -13,7 +14,7 @@ use super::{
DynTexture, DynTextureView,
};
-pub trait DynCommandEncoder: DynResource + std::fmt::Debug {
+pub trait DynCommandEncoder: DynResource + core::fmt::Debug {
unsafe fn begin_encoding(&mut self, label: Label) -> Result<(), DeviceError>;
unsafe fn discard_encoding(&mut self);
diff --git a/wgpu-hal/src/dynamic/device.rs b/wgpu-hal/src/dynamic/device.rs
index 9366270bcf..f0519609cc 100644
--- a/wgpu-hal/src/dynamic/device.rs
+++ b/wgpu-hal/src/dynamic/device.rs
@@ -1,3 +1,5 @@
+use alloc::{borrow::ToOwned as _, boxed::Box, vec::Vec};
+
use crate::{
AccelerationStructureBuildSizes, AccelerationStructureDescriptor, Api, BindGroupDescriptor,
BindGroupLayoutDescriptor, BufferDescriptor, BufferMapping, CommandEncoderDescriptor,
diff --git a/wgpu-hal/src/dynamic/instance.rs b/wgpu-hal/src/dynamic/instance.rs
index d5817c1513..5c209eddd1 100644
--- a/wgpu-hal/src/dynamic/instance.rs
+++ b/wgpu-hal/src/dynamic/instance.rs
@@ -1,3 +1,5 @@
+use alloc::{boxed::Box, vec::Vec};
+
use crate::{Api, Capabilities, ExposedAdapter, Instance, InstanceError};
use super::{DynAdapter, DynResource, DynResourceExt as _, DynSurface};
diff --git a/wgpu-hal/src/dynamic/mod.rs b/wgpu-hal/src/dynamic/mod.rs
index 5509d7cce6..a8dbae94ee 100644
--- a/wgpu-hal/src/dynamic/mod.rs
+++ b/wgpu-hal/src/dynamic/mod.rs
@@ -12,7 +12,11 @@ pub use instance::{DynExposedAdapter, DynInstance};
pub use queue::DynQueue;
pub use surface::{DynAcquiredSurfaceTexture, DynSurface};
-use std::any::Any;
+use alloc::boxed::Box;
+use core::{
+ any::{Any, TypeId},
+ fmt,
+};
use wgt::WasmNotSendSync;
@@ -33,11 +37,11 @@ macro_rules! impl_dyn_resource {
($($type:ty),*) => {
$(
impl crate::DynResource for $type {
- fn as_any(&self) -> &dyn ::std::any::Any {
+ fn as_any(&self) -> &dyn ::core::any::Any {
self
}
- fn as_any_mut(&mut self) -> &mut dyn ::std::any::Any {
+ fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any {
self
}
}
@@ -80,9 +84,9 @@ impl DynResourceExt for R {
unsafe fn unbox(self: Box) -> T {
debug_assert!(
- ::type_id(self.as_ref()) == std::any::TypeId::of::(),
+ ::type_id(self.as_ref()) == TypeId::of::(),
"Resource doesn't have the expected type, expected {:?}, got {:?}",
- std::any::TypeId::of::(),
+ TypeId::of::(),
::type_id(self.as_ref())
);
@@ -100,25 +104,25 @@ impl DynResourceExt for R {
}
}
-pub trait DynAccelerationStructure: DynResource + std::fmt::Debug {}
-pub trait DynBindGroup: DynResource + std::fmt::Debug {}
-pub trait DynBindGroupLayout: DynResource + std::fmt::Debug {}
-pub trait DynBuffer: DynResource + std::fmt::Debug {}
-pub trait DynCommandBuffer: DynResource + std::fmt::Debug {}
-pub trait DynComputePipeline: DynResource + std::fmt::Debug {}
-pub trait DynFence: DynResource + std::fmt::Debug {}
-pub trait DynPipelineCache: DynResource + std::fmt::Debug {}
-pub trait DynPipelineLayout: DynResource + std::fmt::Debug {}
-pub trait DynQuerySet: DynResource + std::fmt::Debug {}
-pub trait DynRenderPipeline: DynResource + std::fmt::Debug {}
-pub trait DynSampler: DynResource + std::fmt::Debug {}
-pub trait DynShaderModule: DynResource + std::fmt::Debug {}
+pub trait DynAccelerationStructure: DynResource + fmt::Debug {}
+pub trait DynBindGroup: DynResource + fmt::Debug {}
+pub trait DynBindGroupLayout: DynResource + fmt::Debug {}
+pub trait DynBuffer: DynResource + fmt::Debug {}
+pub trait DynCommandBuffer: DynResource + fmt::Debug {}
+pub trait DynComputePipeline: DynResource + fmt::Debug {}
+pub trait DynFence: DynResource + fmt::Debug {}
+pub trait DynPipelineCache: DynResource + fmt::Debug {}
+pub trait DynPipelineLayout: DynResource + fmt::Debug {}
+pub trait DynQuerySet: DynResource + fmt::Debug {}
+pub trait DynRenderPipeline: DynResource + fmt::Debug {}
+pub trait DynSampler: DynResource + fmt::Debug {}
+pub trait DynShaderModule: DynResource + fmt::Debug {}
pub trait DynSurfaceTexture:
- DynResource + std::borrow::Borrow + std::fmt::Debug
+ DynResource + core::borrow::Borrow + fmt::Debug
{
}
-pub trait DynTexture: DynResource + std::fmt::Debug {}
-pub trait DynTextureView: DynResource + std::fmt::Debug {}
+pub trait DynTexture: DynResource + fmt::Debug {}
+pub trait DynTextureView: DynResource + fmt::Debug {}
impl<'a> BufferBinding<'a, dyn DynBuffer> {
pub fn expect_downcast(self) -> BufferBinding<'a, B> {
diff --git a/wgpu-hal/src/dynamic/queue.rs b/wgpu-hal/src/dynamic/queue.rs
index 14d7e5a969..2af6d1f9c7 100644
--- a/wgpu-hal/src/dynamic/queue.rs
+++ b/wgpu-hal/src/dynamic/queue.rs
@@ -1,3 +1,5 @@
+use alloc::{boxed::Box, vec::Vec};
+
use crate::{
DeviceError, DynCommandBuffer, DynFence, DynResource, DynSurface, DynSurfaceTexture,
FenceValue, Queue, SurfaceError,
diff --git a/wgpu-hal/src/dynamic/surface.rs b/wgpu-hal/src/dynamic/surface.rs
index d6c3dad623..97ac74e6fc 100644
--- a/wgpu-hal/src/dynamic/surface.rs
+++ b/wgpu-hal/src/dynamic/surface.rs
@@ -1,3 +1,6 @@
+use alloc::boxed::Box;
+use core::time::Duration;
+
use crate::{
DynDevice, DynFence, DynResource, DynSurfaceTexture, Surface, SurfaceConfiguration,
SurfaceError,
@@ -25,7 +28,7 @@ pub trait DynSurface: DynResource {
unsafe fn acquire_texture(
&self,
- timeout: Option,
+ timeout: Option,
fence: &dyn DynFence,
) -> Result