mirror of
https://github.com/servo/servo.git
synced 2025-06-13 02:44:29 +00:00
* Do not wait on drop, but rather wake poller thread * Update wgpu and render stuff * Set some good expectations * Update wgpu again * handle IPC error as warning * More good expectations * Some more expectations CTS does not match the spec: https://github.com/gpuweb/cts/issues/3806 * This expectations are due to other changes in servo also happening on main * Explain error_command_encoders and remove RefCell around it * fixup * store validness of passes * More good expectations * More docs * this assert is wrong * This is even more right per CTS/spec Only Command encoder state errors are allowed here, but wgpu does not exposes them. * More good expectations * One bad expectation * Fix my english
48 lines
1.9 KiB
Rust
48 lines
1.9 KiB
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
use malloc_size_of::{MallocSizeOf, MallocSizeOfOps};
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
pub use crate::wgc::id::markers::ComputePassEncoder as ComputePass;
|
|
pub use crate::wgc::id::ComputePassEncoderId as ComputePassId;
|
|
use crate::wgc::id::{
|
|
AdapterId, BindGroupId, BindGroupLayoutId, BufferId, CommandBufferId, CommandEncoderId,
|
|
ComputePipelineId, DeviceId, PipelineLayoutId, QueueId, RenderBundleId, RenderPipelineId,
|
|
SamplerId, ShaderModuleId, SurfaceId, TextureId, TextureViewId,
|
|
};
|
|
|
|
macro_rules! webgpu_resource {
|
|
($name:ident, $id:ty) => {
|
|
#[derive(Clone, Copy, Debug, Deserialize, Hash, PartialEq, Serialize)]
|
|
pub struct $name(pub $id);
|
|
|
|
impl MallocSizeOf for $name {
|
|
fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize {
|
|
0
|
|
}
|
|
}
|
|
|
|
impl Eq for $name {}
|
|
};
|
|
}
|
|
|
|
webgpu_resource!(WebGPUAdapter, AdapterId);
|
|
webgpu_resource!(WebGPUBindGroup, BindGroupId);
|
|
webgpu_resource!(WebGPUBindGroupLayout, BindGroupLayoutId);
|
|
webgpu_resource!(WebGPUBuffer, BufferId);
|
|
webgpu_resource!(WebGPUCommandBuffer, CommandBufferId);
|
|
webgpu_resource!(WebGPUCommandEncoder, CommandEncoderId);
|
|
webgpu_resource!(WebGPUComputePipeline, ComputePipelineId);
|
|
webgpu_resource!(WebGPUDevice, DeviceId);
|
|
webgpu_resource!(WebGPUPipelineLayout, PipelineLayoutId);
|
|
webgpu_resource!(WebGPUQueue, QueueId);
|
|
webgpu_resource!(WebGPURenderBundle, RenderBundleId);
|
|
webgpu_resource!(WebGPURenderPipeline, RenderPipelineId);
|
|
webgpu_resource!(WebGPUSampler, SamplerId);
|
|
webgpu_resource!(WebGPUShaderModule, ShaderModuleId);
|
|
webgpu_resource!(WebGPUSurface, SurfaceId);
|
|
webgpu_resource!(WebGPUTexture, TextureId);
|
|
webgpu_resource!(WebGPUTextureView, TextureViewId);
|
|
webgpu_resource!(WebGPUComputePass, ComputePassId);
|