mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
separate Queue&Device Id (#32966)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
parent
a5df51ea56
commit
f989d3776e
7 changed files with 54 additions and 32 deletions
|
@ -6,12 +6,13 @@ use smallvec::SmallVec;
|
|||
use webgpu::identity::{ComputePass, ComputePassId, RenderPass, RenderPassId};
|
||||
use webgpu::wgc::id::markers::{
|
||||
Adapter, BindGroup, BindGroupLayout, Buffer, CommandEncoder, ComputePipeline, Device,
|
||||
PipelineLayout, RenderBundle, RenderPipeline, Sampler, ShaderModule, Texture, TextureView,
|
||||
PipelineLayout, Queue, RenderBundle, RenderPipeline, Sampler, ShaderModule, Texture,
|
||||
TextureView,
|
||||
};
|
||||
use webgpu::wgc::id::{
|
||||
AdapterId, BindGroupId, BindGroupLayoutId, BufferId, CommandEncoderId, ComputePipelineId,
|
||||
DeviceId, PipelineLayoutId, RenderBundleId, RenderPipelineId, SamplerId, ShaderModuleId,
|
||||
TextureId, TextureViewId,
|
||||
DeviceId, PipelineLayoutId, QueueId, RenderBundleId, RenderPipelineId, SamplerId,
|
||||
ShaderModuleId, TextureId, TextureViewId,
|
||||
};
|
||||
use webgpu::wgc::identity::IdentityManager;
|
||||
use webgpu::wgt::Backend;
|
||||
|
@ -20,6 +21,7 @@ use webgpu::wgt::Backend;
|
|||
pub struct IdentityHub {
|
||||
adapters: IdentityManager<Adapter>,
|
||||
devices: IdentityManager<Device>,
|
||||
queues: IdentityManager<Queue>,
|
||||
buffers: IdentityManager<Buffer>,
|
||||
bind_groups: IdentityManager<BindGroup>,
|
||||
bind_group_layouts: IdentityManager<BindGroupLayout>,
|
||||
|
@ -41,6 +43,7 @@ impl IdentityHub {
|
|||
IdentityHub {
|
||||
adapters: IdentityManager::new(),
|
||||
devices: IdentityManager::new(),
|
||||
queues: IdentityManager::new(),
|
||||
buffers: IdentityManager::new(),
|
||||
bind_groups: IdentityManager::new(),
|
||||
bind_group_layouts: IdentityManager::new(),
|
||||
|
@ -123,6 +126,14 @@ impl Identities {
|
|||
self.select(id.backend()).devices.free(id);
|
||||
}
|
||||
|
||||
pub fn create_queue_id(&self, backend: Backend) -> QueueId {
|
||||
self.select(backend).queues.process(backend)
|
||||
}
|
||||
|
||||
pub fn free_queue_id(&self, id: QueueId) {
|
||||
self.select(id.backend()).queues.free(id);
|
||||
}
|
||||
|
||||
pub fn create_adapter_ids(&self) -> SmallVec<[AdapterId; 4]> {
|
||||
let mut ids = SmallVec::new();
|
||||
for hubs in self.hubs() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue