mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
Rename and relocate ID resolution helpers
This commit is contained in:
parent
885845087f
commit
c0c16078e9
@ -36,6 +36,7 @@ use crate::binding_model::BindingError;
|
||||
use crate::command::transition_resources::TransitionResourcesError;
|
||||
use crate::device::queue::TempResource;
|
||||
use crate::device::{Device, DeviceError, MissingFeatures};
|
||||
use crate::id::Id;
|
||||
use crate::lock::{rank, Mutex};
|
||||
use crate::snatch::SnatchGuard;
|
||||
|
||||
@ -1155,6 +1156,26 @@ impl WebGpuError for TimestampWritesError {
|
||||
}
|
||||
|
||||
impl Global {
|
||||
fn resolve_buffer_id(
|
||||
&self,
|
||||
buffer_id: Id<id::markers::Buffer>,
|
||||
) -> Result<Arc<crate::resource::Buffer>, InvalidResourceError> {
|
||||
let hub = &self.hub;
|
||||
let buffer = hub.buffers.get(buffer_id).get()?;
|
||||
|
||||
Ok(buffer)
|
||||
}
|
||||
|
||||
fn resolve_query_set(
|
||||
&self,
|
||||
query_set_id: Id<id::markers::QuerySet>,
|
||||
) -> Result<Arc<QuerySet>, InvalidResourceError> {
|
||||
let hub = &self.hub;
|
||||
let query_set = hub.query_sets.get(query_set_id).get()?;
|
||||
|
||||
Ok(query_set)
|
||||
}
|
||||
|
||||
pub fn command_encoder_finish(
|
||||
&self,
|
||||
encoder_id: id::CommandEncoderId,
|
||||
|
||||
@ -3082,26 +3082,6 @@ fn execute_bundle(
|
||||
// that the `pass_try!` and `pass_base!` macros may return early from the
|
||||
// function that invokes them, like the `?` operator.
|
||||
impl Global {
|
||||
fn resolve_render_pass_buffer_id(
|
||||
&self,
|
||||
buffer_id: id::Id<id::markers::Buffer>,
|
||||
) -> Result<Arc<crate::resource::Buffer>, InvalidResourceError> {
|
||||
let hub = &self.hub;
|
||||
let buffer = hub.buffers.get(buffer_id).get()?;
|
||||
|
||||
Ok(buffer)
|
||||
}
|
||||
|
||||
fn resolve_render_pass_query_set(
|
||||
&self,
|
||||
query_set_id: id::Id<id::markers::QuerySet>,
|
||||
) -> Result<Arc<QuerySet>, InvalidResourceError> {
|
||||
let hub = &self.hub;
|
||||
let query_set = hub.query_sets.get(query_set_id).get()?;
|
||||
|
||||
Ok(query_set)
|
||||
}
|
||||
|
||||
pub fn render_pass_set_bind_group(
|
||||
&self,
|
||||
pass: &mut RenderPass,
|
||||
@ -3183,7 +3163,7 @@ impl Global {
|
||||
let base = pass_base!(pass, scope);
|
||||
|
||||
base.commands.push(ArcRenderCommand::SetIndexBuffer {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
index_format,
|
||||
offset,
|
||||
size,
|
||||
@ -3205,7 +3185,7 @@ impl Global {
|
||||
|
||||
base.commands.push(ArcRenderCommand::SetVertexBuffer {
|
||||
slot,
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
size,
|
||||
});
|
||||
@ -3413,7 +3393,7 @@ impl Global {
|
||||
let base = pass_base!(pass, scope);
|
||||
|
||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count: 1,
|
||||
family: DrawCommandFamily::Draw,
|
||||
@ -3438,7 +3418,7 @@ impl Global {
|
||||
let base = pass_base!(pass, scope);
|
||||
|
||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count: 1,
|
||||
family: DrawCommandFamily::DrawIndexed,
|
||||
@ -3463,7 +3443,7 @@ impl Global {
|
||||
let base = pass_base!(pass, scope);
|
||||
|
||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count: 1,
|
||||
family: DrawCommandFamily::DrawMeshTasks,
|
||||
@ -3489,7 +3469,7 @@ impl Global {
|
||||
let base = pass_base!(pass, scope);
|
||||
|
||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count,
|
||||
family: DrawCommandFamily::Draw,
|
||||
@ -3515,7 +3495,7 @@ impl Global {
|
||||
let base = pass_base!(pass, scope);
|
||||
|
||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count,
|
||||
family: DrawCommandFamily::DrawIndexed,
|
||||
@ -3541,7 +3521,7 @@ impl Global {
|
||||
let base = pass_base!(pass, scope);
|
||||
|
||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count,
|
||||
family: DrawCommandFamily::DrawMeshTasks,
|
||||
@ -3570,13 +3550,9 @@ impl Global {
|
||||
|
||||
base.commands
|
||||
.push(ArcRenderCommand::MultiDrawIndirectCount {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count_buffer: pass_try!(
|
||||
base,
|
||||
scope,
|
||||
self.resolve_render_pass_buffer_id(count_buffer_id)
|
||||
),
|
||||
count_buffer: pass_try!(base, scope, self.resolve_buffer_id(count_buffer_id)),
|
||||
count_buffer_offset,
|
||||
max_count,
|
||||
family: DrawCommandFamily::Draw,
|
||||
@ -3602,13 +3578,9 @@ impl Global {
|
||||
|
||||
base.commands
|
||||
.push(ArcRenderCommand::MultiDrawIndirectCount {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count_buffer: pass_try!(
|
||||
base,
|
||||
scope,
|
||||
self.resolve_render_pass_buffer_id(count_buffer_id)
|
||||
),
|
||||
count_buffer: pass_try!(base, scope, self.resolve_buffer_id(count_buffer_id)),
|
||||
count_buffer_offset,
|
||||
max_count,
|
||||
family: DrawCommandFamily::DrawIndexed,
|
||||
@ -3634,13 +3606,9 @@ impl Global {
|
||||
|
||||
base.commands
|
||||
.push(ArcRenderCommand::MultiDrawIndirectCount {
|
||||
buffer: pass_try!(base, scope, self.resolve_render_pass_buffer_id(buffer_id)),
|
||||
buffer: pass_try!(base, scope, self.resolve_buffer_id(buffer_id)),
|
||||
offset,
|
||||
count_buffer: pass_try!(
|
||||
base,
|
||||
scope,
|
||||
self.resolve_render_pass_buffer_id(count_buffer_id)
|
||||
),
|
||||
count_buffer: pass_try!(base, scope, self.resolve_buffer_id(count_buffer_id)),
|
||||
count_buffer_offset,
|
||||
max_count,
|
||||
family: DrawCommandFamily::DrawMeshTasks,
|
||||
@ -3705,11 +3673,7 @@ impl Global {
|
||||
let base = pass_base!(pass, scope);
|
||||
|
||||
base.commands.push(ArcRenderCommand::WriteTimestamp {
|
||||
query_set: pass_try!(
|
||||
base,
|
||||
scope,
|
||||
self.resolve_render_pass_query_set(query_set_id)
|
||||
),
|
||||
query_set: pass_try!(base, scope, self.resolve_query_set(query_set_id)),
|
||||
query_index,
|
||||
});
|
||||
|
||||
@ -3753,11 +3717,7 @@ impl Global {
|
||||
|
||||
base.commands
|
||||
.push(ArcRenderCommand::BeginPipelineStatisticsQuery {
|
||||
query_set: pass_try!(
|
||||
base,
|
||||
scope,
|
||||
self.resolve_render_pass_query_set(query_set_id)
|
||||
),
|
||||
query_set: pass_try!(base, scope, self.resolve_query_set(query_set_id)),
|
||||
query_index,
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user