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::command::transition_resources::TransitionResourcesError;
|
||||||
use crate::device::queue::TempResource;
|
use crate::device::queue::TempResource;
|
||||||
use crate::device::{Device, DeviceError, MissingFeatures};
|
use crate::device::{Device, DeviceError, MissingFeatures};
|
||||||
|
use crate::id::Id;
|
||||||
use crate::lock::{rank, Mutex};
|
use crate::lock::{rank, Mutex};
|
||||||
use crate::snatch::SnatchGuard;
|
use crate::snatch::SnatchGuard;
|
||||||
|
|
||||||
@ -1155,6 +1156,26 @@ impl WebGpuError for TimestampWritesError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Global {
|
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(
|
pub fn command_encoder_finish(
|
||||||
&self,
|
&self,
|
||||||
encoder_id: id::CommandEncoderId,
|
encoder_id: id::CommandEncoderId,
|
||||||
|
|||||||
@ -3082,26 +3082,6 @@ fn execute_bundle(
|
|||||||
// that the `pass_try!` and `pass_base!` macros may return early from the
|
// that the `pass_try!` and `pass_base!` macros may return early from the
|
||||||
// function that invokes them, like the `?` operator.
|
// function that invokes them, like the `?` operator.
|
||||||
impl Global {
|
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(
|
pub fn render_pass_set_bind_group(
|
||||||
&self,
|
&self,
|
||||||
pass: &mut RenderPass,
|
pass: &mut RenderPass,
|
||||||
@ -3183,7 +3163,7 @@ impl Global {
|
|||||||
let base = pass_base!(pass, scope);
|
let base = pass_base!(pass, scope);
|
||||||
|
|
||||||
base.commands.push(ArcRenderCommand::SetIndexBuffer {
|
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,
|
index_format,
|
||||||
offset,
|
offset,
|
||||||
size,
|
size,
|
||||||
@ -3205,7 +3185,7 @@ impl Global {
|
|||||||
|
|
||||||
base.commands.push(ArcRenderCommand::SetVertexBuffer {
|
base.commands.push(ArcRenderCommand::SetVertexBuffer {
|
||||||
slot,
|
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,
|
offset,
|
||||||
size,
|
size,
|
||||||
});
|
});
|
||||||
@ -3413,7 +3393,7 @@ impl Global {
|
|||||||
let base = pass_base!(pass, scope);
|
let base = pass_base!(pass, scope);
|
||||||
|
|
||||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
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,
|
offset,
|
||||||
count: 1,
|
count: 1,
|
||||||
family: DrawCommandFamily::Draw,
|
family: DrawCommandFamily::Draw,
|
||||||
@ -3438,7 +3418,7 @@ impl Global {
|
|||||||
let base = pass_base!(pass, scope);
|
let base = pass_base!(pass, scope);
|
||||||
|
|
||||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
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,
|
offset,
|
||||||
count: 1,
|
count: 1,
|
||||||
family: DrawCommandFamily::DrawIndexed,
|
family: DrawCommandFamily::DrawIndexed,
|
||||||
@ -3463,7 +3443,7 @@ impl Global {
|
|||||||
let base = pass_base!(pass, scope);
|
let base = pass_base!(pass, scope);
|
||||||
|
|
||||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
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,
|
offset,
|
||||||
count: 1,
|
count: 1,
|
||||||
family: DrawCommandFamily::DrawMeshTasks,
|
family: DrawCommandFamily::DrawMeshTasks,
|
||||||
@ -3489,7 +3469,7 @@ impl Global {
|
|||||||
let base = pass_base!(pass, scope);
|
let base = pass_base!(pass, scope);
|
||||||
|
|
||||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
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,
|
offset,
|
||||||
count,
|
count,
|
||||||
family: DrawCommandFamily::Draw,
|
family: DrawCommandFamily::Draw,
|
||||||
@ -3515,7 +3495,7 @@ impl Global {
|
|||||||
let base = pass_base!(pass, scope);
|
let base = pass_base!(pass, scope);
|
||||||
|
|
||||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
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,
|
offset,
|
||||||
count,
|
count,
|
||||||
family: DrawCommandFamily::DrawIndexed,
|
family: DrawCommandFamily::DrawIndexed,
|
||||||
@ -3541,7 +3521,7 @@ impl Global {
|
|||||||
let base = pass_base!(pass, scope);
|
let base = pass_base!(pass, scope);
|
||||||
|
|
||||||
base.commands.push(ArcRenderCommand::DrawIndirect {
|
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,
|
offset,
|
||||||
count,
|
count,
|
||||||
family: DrawCommandFamily::DrawMeshTasks,
|
family: DrawCommandFamily::DrawMeshTasks,
|
||||||
@ -3570,13 +3550,9 @@ impl Global {
|
|||||||
|
|
||||||
base.commands
|
base.commands
|
||||||
.push(ArcRenderCommand::MultiDrawIndirectCount {
|
.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,
|
offset,
|
||||||
count_buffer: pass_try!(
|
count_buffer: pass_try!(base, scope, self.resolve_buffer_id(count_buffer_id)),
|
||||||
base,
|
|
||||||
scope,
|
|
||||||
self.resolve_render_pass_buffer_id(count_buffer_id)
|
|
||||||
),
|
|
||||||
count_buffer_offset,
|
count_buffer_offset,
|
||||||
max_count,
|
max_count,
|
||||||
family: DrawCommandFamily::Draw,
|
family: DrawCommandFamily::Draw,
|
||||||
@ -3602,13 +3578,9 @@ impl Global {
|
|||||||
|
|
||||||
base.commands
|
base.commands
|
||||||
.push(ArcRenderCommand::MultiDrawIndirectCount {
|
.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,
|
offset,
|
||||||
count_buffer: pass_try!(
|
count_buffer: pass_try!(base, scope, self.resolve_buffer_id(count_buffer_id)),
|
||||||
base,
|
|
||||||
scope,
|
|
||||||
self.resolve_render_pass_buffer_id(count_buffer_id)
|
|
||||||
),
|
|
||||||
count_buffer_offset,
|
count_buffer_offset,
|
||||||
max_count,
|
max_count,
|
||||||
family: DrawCommandFamily::DrawIndexed,
|
family: DrawCommandFamily::DrawIndexed,
|
||||||
@ -3634,13 +3606,9 @@ impl Global {
|
|||||||
|
|
||||||
base.commands
|
base.commands
|
||||||
.push(ArcRenderCommand::MultiDrawIndirectCount {
|
.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,
|
offset,
|
||||||
count_buffer: pass_try!(
|
count_buffer: pass_try!(base, scope, self.resolve_buffer_id(count_buffer_id)),
|
||||||
base,
|
|
||||||
scope,
|
|
||||||
self.resolve_render_pass_buffer_id(count_buffer_id)
|
|
||||||
),
|
|
||||||
count_buffer_offset,
|
count_buffer_offset,
|
||||||
max_count,
|
max_count,
|
||||||
family: DrawCommandFamily::DrawMeshTasks,
|
family: DrawCommandFamily::DrawMeshTasks,
|
||||||
@ -3705,11 +3673,7 @@ impl Global {
|
|||||||
let base = pass_base!(pass, scope);
|
let base = pass_base!(pass, scope);
|
||||||
|
|
||||||
base.commands.push(ArcRenderCommand::WriteTimestamp {
|
base.commands.push(ArcRenderCommand::WriteTimestamp {
|
||||||
query_set: pass_try!(
|
query_set: pass_try!(base, scope, self.resolve_query_set(query_set_id)),
|
||||||
base,
|
|
||||||
scope,
|
|
||||||
self.resolve_render_pass_query_set(query_set_id)
|
|
||||||
),
|
|
||||||
query_index,
|
query_index,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -3753,11 +3717,7 @@ impl Global {
|
|||||||
|
|
||||||
base.commands
|
base.commands
|
||||||
.push(ArcRenderCommand::BeginPipelineStatisticsQuery {
|
.push(ArcRenderCommand::BeginPipelineStatisticsQuery {
|
||||||
query_set: pass_try!(
|
query_set: pass_try!(base, scope, self.resolve_query_set(query_set_id)),
|
||||||
base,
|
|
||||||
scope,
|
|
||||||
self.resolve_render_pass_query_set(query_set_id)
|
|
||||||
),
|
|
||||||
query_index,
|
query_index,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user