rename cmd_buf to cmd_enc where appropriate

This commit is contained in:
teoxoy
2025-07-21 15:39:08 +02:00
committed by Teodor Tanasoaia
parent 63f3df86c8
commit b8c5c4add4
10 changed files with 148 additions and 148 deletions

View File

@@ -346,8 +346,8 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_as_hal_mut(|opt_cmd_buf| -> R {
hal_command_encoder_callback(opt_cmd_buf.and_then(|cmd_buf| {
cmd_buf

View File

@@ -115,19 +115,19 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), ClearError> {
#[cfg(feature = "trace")]
if let Some(ref mut list) = cmd_buf_data.commands {
list.push(TraceCommand::ClearBuffer { dst, offset, size });
}
cmd_buf.device.check_is_valid()?;
cmd_enc.device.check_is_valid()?;
let dst_buffer = hub.buffers.get(dst).get()?;
dst_buffer.same_device_as(cmd_buf.as_ref())?;
dst_buffer.same_device_as(cmd_enc.as_ref())?;
let dst_pending = cmd_buf_data
.trackers
@@ -200,8 +200,8 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), ClearError> {
#[cfg(feature = "trace")]
if let Some(ref mut list) = cmd_buf_data.commands {
@@ -211,15 +211,15 @@ impl Global {
});
}
cmd_buf.device.check_is_valid()?;
cmd_enc.device.check_is_valid()?;
cmd_buf
cmd_enc
.device
.require_features(wgt::Features::CLEAR_TEXTURE)?;
let dst_texture = hub.textures.get(dst).get()?;
dst_texture.same_device_as(cmd_buf.as_ref())?;
dst_texture.same_device_as(cmd_enc.as_ref())?;
// Check if subresource aspects are valid.
let clear_aspects =
@@ -256,7 +256,7 @@ impl Global {
});
}
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid()?;
let (encoder, tracker) = cmd_buf_data.open_encoder_and_tracker()?;

View File

@@ -99,7 +99,7 @@ impl ComputePass {
impl fmt::Debug for ComputePass {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.parent {
Some(ref cmd_buf) => write!(f, "ComputePass {{ parent: {} }}", cmd_buf.error_ident()),
Some(ref cmd_enc) => write!(f, "ComputePass {{ parent: {} }}", cmd_enc.error_ident()),
None => write!(f, "ComputePass {{ parent: None }}"),
}
}
@@ -253,10 +253,10 @@ impl WebGpuError for ComputePassError {
}
}
struct State<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder> {
struct State<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder> {
pipeline: Option<Arc<ComputePipeline>>,
general: pass::BaseState<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder>,
general: pass::BaseState<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder>,
active_query: Option<(Arc<resource::QuerySet>, u32)>,
@@ -265,8 +265,8 @@ struct State<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder> {
intermediate_trackers: Tracker,
}
impl<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder>
State<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder>
impl<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder>
State<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder>
{
fn is_ready(&self) -> Result<(), DispatchError> {
if let Some(pipeline) = self.pipeline.as_ref() {
@@ -344,15 +344,15 @@ impl Global {
let label = desc.label.as_deref().map(Cow::Borrowed);
let cmd_buf = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
match cmd_buf_data.lock_encoder() {
Ok(()) => {
drop(cmd_buf_data);
if let Err(err) = cmd_buf.device.check_is_valid() {
if let Err(err) = cmd_enc.device.check_is_valid() {
return (
ComputePass::new_invalid(cmd_buf, &label, err.map_pass_err(scope)),
ComputePass::new_invalid(cmd_enc, &label, err.map_pass_err(scope)),
None,
);
}
@@ -362,7 +362,7 @@ impl Global {
.as_ref()
.map(|tw| {
Self::validate_pass_timestamp_writes::<ComputePassErrorInner>(
&cmd_buf.device,
&cmd_enc.device,
&hub.query_sets.read(),
tw,
)
@@ -374,10 +374,10 @@ impl Global {
label,
timestamp_writes,
};
(ComputePass::new(cmd_buf, arc_desc), None)
(ComputePass::new(cmd_enc, arc_desc), None)
}
Err(err) => (
ComputePass::new_invalid(cmd_buf, &label, err.map_pass_err(scope)),
ComputePass::new_invalid(cmd_enc, &label, err.map_pass_err(scope)),
None,
),
}
@@ -389,7 +389,7 @@ impl Global {
cmd_buf_data.invalidate(err.clone());
drop(cmd_buf_data);
(
ComputePass::new_invalid(cmd_buf, &label, err.map_pass_err(scope)),
ComputePass::new_invalid(cmd_enc, &label, err.map_pass_err(scope)),
None,
)
}
@@ -398,7 +398,7 @@ impl Global {
// generates an immediate validation error.
drop(cmd_buf_data);
(
ComputePass::new_invalid(cmd_buf, &label, err.clone().map_pass_err(scope)),
ComputePass::new_invalid(cmd_enc, &label, err.clone().map_pass_err(scope)),
Some(err.into()),
)
}
@@ -410,7 +410,7 @@ impl Global {
// invalid pass to save that work.
drop(cmd_buf_data);
(
ComputePass::new_invalid(cmd_buf, &label, err.map_pass_err(scope)),
ComputePass::new_invalid(cmd_enc, &label, err.map_pass_err(scope)),
None,
)
}
@@ -435,8 +435,8 @@ impl Global {
) {
#[cfg(feature = "trace")]
{
let cmd_buf = self.hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = self.hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
let cmd_buf_data = cmd_buf_data.get_inner();
if let Some(ref mut list) = cmd_buf_data.commands {
@@ -494,8 +494,8 @@ impl Global {
pass.base.label.as_deref().unwrap_or("")
);
let cmd_buf = pass.parent.take().ok_or(EncoderStateError::Ended)?;
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = pass.parent.take().ok_or(EncoderStateError::Ended)?;
let mut cmd_buf_data = cmd_enc.data.lock();
if let Some(err) = pass.base.error.take() {
if matches!(
@@ -520,7 +520,7 @@ impl Global {
}
cmd_buf_data.unlock_and_record(|cmd_buf_data| -> Result<(), ComputePassError> {
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid().map_pass_err(pass_scope)?;
let base = &mut pass.base;
@@ -581,7 +581,7 @@ impl Global {
let timestamp_writes: Option<hal::PassTimestampWrites<'_, dyn hal::DynQuerySet>> =
if let Some(tw) = pass.timestamp_writes.take() {
tw.query_set
.same_device_as(cmd_buf.as_ref())
.same_device_as(cmd_enc.as_ref())
.map_pass_err(pass_scope)?;
let query_set = state.general.tracker.query_sets.insert_single(tw.query_set);
@@ -636,7 +636,7 @@ impl Global {
let scope = PassErrorScope::SetBindGroup;
pass::set_bind_group::<ComputePassErrorInner>(
&mut state.general,
cmd_buf.as_ref(),
cmd_enc.as_ref(),
&base.dynamic_offsets,
index,
num_dynamic_offsets,
@@ -647,7 +647,7 @@ impl Global {
}
ArcComputeCommand::SetPipeline(pipeline) => {
let scope = PassErrorScope::SetPipelineCompute;
set_pipeline(&mut state, cmd_buf.as_ref(), pipeline).map_pass_err(scope)?;
set_pipeline(&mut state, cmd_enc.as_ref(), pipeline).map_pass_err(scope)?;
}
ArcComputeCommand::SetPushConstant {
offset,
@@ -679,7 +679,7 @@ impl Global {
}
ArcComputeCommand::DispatchIndirect { buffer, offset } => {
let scope = PassErrorScope::Dispatch { indirect: true };
dispatch_indirect(&mut state, cmd_buf.as_ref(), buffer, offset)
dispatch_indirect(&mut state, cmd_enc.as_ref(), buffer, offset)
.map_pass_err(scope)?;
}
ArcComputeCommand::PushDebugGroup { color: _, len } => {
@@ -700,7 +700,7 @@ impl Global {
let scope = PassErrorScope::WriteTimestamp;
pass::write_timestamp::<ComputePassErrorInner>(
&mut state.general,
cmd_buf.as_ref(),
cmd_enc.as_ref(),
None,
query_set,
query_index,
@@ -716,7 +716,7 @@ impl Global {
query_set,
state.general.raw_encoder,
&mut state.general.tracker.query_sets,
cmd_buf.as_ref(),
cmd_enc.as_ref(),
query_index,
None,
&mut state.active_query,
@@ -781,10 +781,10 @@ impl Global {
fn set_pipeline(
state: &mut State,
cmd_buf: &CommandEncoder,
cmd_enc: &CommandEncoder,
pipeline: Arc<ComputePipeline>,
) -> Result<(), ComputePassErrorInner> {
pipeline.same_device_as(cmd_buf)?;
pipeline.same_device_as(cmd_enc)?;
state.pipeline = Some(pipeline.clone());
@@ -858,11 +858,11 @@ fn dispatch(state: &mut State, groups: [u32; 3]) -> Result<(), ComputePassErrorI
fn dispatch_indirect(
state: &mut State,
cmd_buf: &CommandEncoder,
cmd_enc: &CommandEncoder,
buffer: Arc<Buffer>,
offset: u64,
) -> Result<(), ComputePassErrorInner> {
buffer.same_device_as(cmd_buf)?;
buffer.same_device_as(cmd_enc)?;
state.is_ready()?;

View File

@@ -1180,18 +1180,18 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), CommandEncoderError> {
#[cfg(feature = "trace")]
if let Some(ref mut list) = cmd_buf_data.commands {
list.push(TraceCommand::PushDebugGroup(label.to_owned()));
}
cmd_buf.device.check_is_valid()?;
cmd_enc.device.check_is_valid()?;
let cmd_buf_raw = cmd_buf_data.encoder.open()?;
if !cmd_buf
if !cmd_enc
.device
.instance_flags
.contains(wgt::InstanceFlags::DISCARD_HAL_LABELS)
@@ -1215,17 +1215,17 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), CommandEncoderError> {
#[cfg(feature = "trace")]
if let Some(ref mut list) = cmd_buf_data.commands {
list.push(TraceCommand::InsertDebugMarker(label.to_owned()));
}
cmd_buf.device.check_is_valid()?;
cmd_enc.device.check_is_valid()?;
if !cmd_buf
if !cmd_enc
.device
.instance_flags
.contains(wgt::InstanceFlags::DISCARD_HAL_LABELS)
@@ -1249,18 +1249,18 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), CommandEncoderError> {
#[cfg(feature = "trace")]
if let Some(ref mut list) = cmd_buf_data.commands {
list.push(TraceCommand::PopDebugGroup);
}
cmd_buf.device.check_is_valid()?;
cmd_enc.device.check_is_valid()?;
let cmd_buf_raw = cmd_buf_data.encoder.open()?;
if !cmd_buf
if !cmd_enc
.device
.instance_flags
.contains(wgt::InstanceFlags::DISCARD_HAL_LABELS)

View File

@@ -52,15 +52,15 @@ impl WebGpuError for InvalidPopDebugGroup {
}
}
pub(crate) struct BaseState<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder> {
pub(crate) device: &'cmd_buf Arc<Device>,
pub(crate) struct BaseState<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder> {
pub(crate) device: &'cmd_enc Arc<Device>,
pub(crate) raw_encoder: &'raw_encoder mut dyn hal::DynCommandEncoder,
pub(crate) tracker: &'cmd_buf mut Tracker,
pub(crate) buffer_memory_init_actions: &'cmd_buf mut Vec<BufferInitTrackerAction>,
pub(crate) texture_memory_actions: &'cmd_buf mut CommandBufferTextureMemoryActions,
pub(crate) as_actions: &'cmd_buf mut Vec<AsAction>,
pub(crate) tracker: &'cmd_enc mut Tracker,
pub(crate) buffer_memory_init_actions: &'cmd_enc mut Vec<BufferInitTrackerAction>,
pub(crate) texture_memory_actions: &'cmd_enc mut CommandBufferTextureMemoryActions,
pub(crate) as_actions: &'cmd_enc mut Vec<AsAction>,
/// Immediate texture inits required because of prior discards. Need to
/// be inserted before texture reads.
@@ -82,7 +82,7 @@ pub(crate) struct BaseState<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder> {
pub(crate) fn set_bind_group<E>(
state: &mut BaseState,
cmd_buf: &CommandEncoder,
cmd_enc: &CommandEncoder,
dynamic_offsets: &[DynamicOffset],
index: u32,
num_dynamic_offsets: usize,
@@ -129,7 +129,7 @@ where
let bind_group = bind_group.unwrap();
let bind_group = state.tracker.bind_groups.insert_single(bind_group);
bind_group.same_device_as(cmd_buf)?;
bind_group.same_device_as(cmd_enc)?;
bind_group.validate_dynamic_bindings(index, &state.temp_offsets)?;
@@ -287,7 +287,7 @@ where
pub(crate) fn write_timestamp<E>(
state: &mut BaseState,
cmd_buf: &CommandEncoder,
cmd_enc: &CommandEncoder,
pending_query_resets: Option<&mut QueryResetMap>,
query_set: Arc<QuerySet>,
query_index: u32,
@@ -300,7 +300,7 @@ where
query_set.error_ident()
);
query_set.same_device_as(cmd_buf)?;
query_set.same_device_as(cmd_enc)?;
state
.device

View File

@@ -307,12 +307,12 @@ pub(super) fn validate_and_begin_pipeline_statistics_query(
query_set: Arc<QuerySet>,
raw_encoder: &mut dyn hal::DynCommandEncoder,
tracker: &mut StatelessTracker<QuerySet>,
cmd_buf: &CommandEncoder,
cmd_enc: &CommandEncoder,
query_index: u32,
reset_state: Option<&mut QueryResetMap>,
active_query: &mut Option<(Arc<QuerySet>, u32)>,
) -> Result<(), QueryUseError> {
query_set.same_device_as(cmd_buf)?;
query_set.same_device_as(cmd_enc)?;
let needs_reset = reset_state.is_none();
query_set.validate_query(
@@ -363,8 +363,8 @@ impl Global {
) -> Result<(), EncoderStateError> {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), QueryError> {
#[cfg(feature = "trace")]
if let Some(ref mut list) = cmd_buf_data.commands {
@@ -374,16 +374,16 @@ impl Global {
});
}
cmd_buf.device.check_is_valid()?;
cmd_enc.device.check_is_valid()?;
cmd_buf
cmd_enc
.device
.require_features(wgt::Features::TIMESTAMP_QUERY_INSIDE_ENCODERS)?;
let raw_encoder = cmd_buf_data.encoder.open()?;
let query_set = hub.query_sets.get(query_set_id).get()?;
query_set.same_device_as(cmd_buf.as_ref())?;
query_set.same_device_as(cmd_enc.as_ref())?;
query_set.validate_and_write_timestamp(raw_encoder, query_index, None)?;
@@ -404,8 +404,8 @@ impl Global {
) -> Result<(), EncoderStateError> {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), QueryError> {
#[cfg(feature = "trace")]
if let Some(ref mut list) = cmd_buf_data.commands {
@@ -418,7 +418,7 @@ impl Global {
});
}
cmd_buf.device.check_is_valid()?;
cmd_enc.device.check_is_valid()?;
if destination_offset % wgt::QUERY_RESOLVE_BUFFER_ALIGNMENT != 0 {
return Err(QueryError::Resolve(ResolveError::BufferOffsetAlignment));
@@ -426,11 +426,11 @@ impl Global {
let query_set = hub.query_sets.get(query_set_id).get()?;
query_set.same_device_as(cmd_buf.as_ref())?;
query_set.same_device_as(cmd_enc.as_ref())?;
let dst_buffer = hub.buffers.get(destination).get()?;
dst_buffer.same_device_as(cmd_buf.as_ref())?;
dst_buffer.same_device_as(cmd_enc.as_ref())?;
let snatch_guard = dst_buffer.device.snatchable_lock.read();
dst_buffer.check_destroyed(&snatch_guard)?;
@@ -508,7 +508,7 @@ impl Global {
if matches!(query_set.desc.ty, wgt::QueryType::Timestamp) {
// Timestamp normalization is only needed for timestamps.
cmd_buf
cmd_enc
.device
.timestamp_normalizer
.get()

View File

@@ -67,12 +67,12 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(
|cmd_buf_data| -> Result<(), BuildAccelerationStructureError> {
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid()?;
device.require_features(Features::EXPERIMENTAL_RAY_QUERY)?;
@@ -107,7 +107,7 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut build_command = AsBuild::default();
@@ -197,7 +197,7 @@ impl Global {
}
});
let mut cmd_buf_data = cmd_buf.data.lock();
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| {
#[cfg(feature = "trace")]
if let Some(ref mut list) = cmd_buf_data.commands {
@@ -207,7 +207,7 @@ impl Global {
});
}
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid()?;
device.require_features(Features::EXPERIMENTAL_RAY_QUERY)?;

View File

@@ -494,7 +494,7 @@ impl VertexState {
}
}
struct State<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder> {
struct State<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder> {
pipeline_flags: PipelineFlags,
blend_constant: OptionalState,
stencil_reference: u32,
@@ -504,14 +504,14 @@ struct State<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder> {
info: RenderPassInfo,
general: pass::BaseState<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder>,
general: pass::BaseState<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder>,
active_occlusion_query: Option<(Arc<QuerySet>, u32)>,
active_pipeline_statistics_query: Option<(Arc<QuerySet>, u32)>,
}
impl<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder>
State<'scope, 'snatch_guard, 'cmd_buf, 'raw_encoder>
impl<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder>
State<'scope, 'snatch_guard, 'cmd_enc, 'raw_encoder>
{
fn is_ready(&self, indexed: bool) -> Result<(), DrawError> {
if let Some(pipeline) = self.pipeline.as_ref() {
@@ -1665,8 +1665,8 @@ impl Global {
let scope = PassErrorScope::Pass;
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
match cmd_buf_data.lock_encoder() {
Ok(()) => {
@@ -1678,10 +1678,10 @@ impl Global {
depth_stencil_attachment: None,
occlusion_query_set: None,
};
match fill_arc_desc(hub, desc, &mut arc_desc, &cmd_buf.device) {
Ok(()) => (RenderPass::new(cmd_buf, arc_desc), None),
match fill_arc_desc(hub, desc, &mut arc_desc, &cmd_enc.device) {
Ok(()) => (RenderPass::new(cmd_enc, arc_desc), None),
Err(err) => (
RenderPass::new_invalid(cmd_buf, &desc.label, err.map_pass_err(scope)),
RenderPass::new_invalid(cmd_enc, &desc.label, err.map_pass_err(scope)),
None,
),
}
@@ -1693,7 +1693,7 @@ impl Global {
cmd_buf_data.invalidate(err.clone());
drop(cmd_buf_data);
(
RenderPass::new_invalid(cmd_buf, &desc.label, err.map_pass_err(scope)),
RenderPass::new_invalid(cmd_enc, &desc.label, err.map_pass_err(scope)),
None,
)
}
@@ -1702,7 +1702,7 @@ impl Global {
// generates an immediate validation error.
drop(cmd_buf_data);
(
RenderPass::new_invalid(cmd_buf, &desc.label, err.clone().map_pass_err(scope)),
RenderPass::new_invalid(cmd_enc, &desc.label, err.clone().map_pass_err(scope)),
Some(err.into()),
)
}
@@ -1714,7 +1714,7 @@ impl Global {
// invalid pass to save that work.
drop(cmd_buf_data);
(
RenderPass::new_invalid(cmd_buf, &desc.label, err.map_pass_err(scope)),
RenderPass::new_invalid(cmd_enc, &desc.label, err.map_pass_err(scope)),
None,
)
}
@@ -1739,8 +1739,8 @@ impl Global {
) {
#[cfg(feature = "trace")]
{
let cmd_buf = self.hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = self.hub.command_encoders.get(encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
let cmd_buf_data = cmd_buf_data.get_inner();
if let Some(ref mut list) = cmd_buf_data.commands {
@@ -1804,8 +1804,8 @@ impl Global {
pass.base.label.as_deref().unwrap_or("")
);
let cmd_buf = pass.parent.take().ok_or(EncoderStateError::Ended)?;
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = pass.parent.take().ok_or(EncoderStateError::Ended)?;
let mut cmd_buf_data = cmd_enc.data.lock();
if let Some(err) = pass.base.error.take() {
if matches!(
@@ -1830,7 +1830,7 @@ impl Global {
}
cmd_buf_data.unlock_and_record(|cmd_buf_data| -> Result<(), RenderPassError> {
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid().map_pass_err(pass_scope)?;
let snatch_guard = &device.snatchable_lock.read();
@@ -1924,7 +1924,7 @@ impl Global {
let scope = PassErrorScope::SetBindGroup;
pass::set_bind_group::<RenderPassErrorInner>(
&mut state.general,
cmd_buf.as_ref(),
cmd_enc.as_ref(),
&base.dynamic_offsets,
index,
num_dynamic_offsets,
@@ -1935,7 +1935,7 @@ impl Global {
}
ArcRenderCommand::SetPipeline(pipeline) => {
let scope = PassErrorScope::SetPipelineRender;
set_pipeline(&mut state, &cmd_buf, pipeline).map_pass_err(scope)?;
set_pipeline(&mut state, &cmd_enc, pipeline).map_pass_err(scope)?;
}
ArcRenderCommand::SetIndexBuffer {
buffer,
@@ -1946,7 +1946,7 @@ impl Global {
let scope = PassErrorScope::SetIndexBuffer;
set_index_buffer(
&mut state,
&cmd_buf,
&cmd_enc,
buffer,
index_format,
offset,
@@ -1961,7 +1961,7 @@ impl Global {
size,
} => {
let scope = PassErrorScope::SetVertexBuffer;
set_vertex_buffer(&mut state, &cmd_buf, slot, buffer, offset, size)
set_vertex_buffer(&mut state, &cmd_enc, slot, buffer, offset, size)
.map_pass_err(scope)?;
}
ArcRenderCommand::SetBlendConstant(ref color) => {
@@ -2062,7 +2062,7 @@ impl Global {
&mut state,
indirect_draw_validation_resources,
&mut indirect_draw_validation_batcher,
&cmd_buf,
&cmd_enc,
buffer,
offset,
count,
@@ -2084,7 +2084,7 @@ impl Global {
};
multi_draw_indirect_count(
&mut state,
&cmd_buf,
&cmd_enc,
buffer,
offset,
count_buffer,
@@ -2112,7 +2112,7 @@ impl Global {
let scope = PassErrorScope::WriteTimestamp;
pass::write_timestamp::<RenderPassErrorInner>(
&mut state.general,
cmd_buf.as_ref(),
cmd_enc.as_ref(),
Some(&mut cmd_buf_data.pending_query_resets),
query_set,
query_index,
@@ -2163,7 +2163,7 @@ impl Global {
query_set,
state.general.raw_encoder,
&mut state.general.tracker.query_sets,
cmd_buf.as_ref(),
cmd_enc.as_ref(),
query_index,
Some(&mut cmd_buf_data.pending_query_resets),
&mut state.active_pipeline_statistics_query,
@@ -2186,7 +2186,7 @@ impl Global {
&mut state,
indirect_draw_validation_resources,
&mut indirect_draw_validation_batcher,
&cmd_buf,
&cmd_enc,
bundle,
)
.map_pass_err(scope)?;
@@ -2224,7 +2224,7 @@ impl Global {
pending_discard_init_fixups.into_iter(),
transit,
&mut tracker.textures,
&cmd_buf.device,
&cmd_enc.device,
snatch_guard,
);
@@ -2256,7 +2256,7 @@ impl Global {
fn set_pipeline(
state: &mut State,
cmd_buf: &Arc<CommandEncoder>,
cmd_enc: &Arc<CommandEncoder>,
pipeline: Arc<RenderPipeline>,
) -> Result<(), RenderPassErrorInner> {
api_log!("RenderPass::set_pipeline {}", pipeline.error_ident());
@@ -2270,7 +2270,7 @@ fn set_pipeline(
.insert_single(pipeline)
.clone();
pipeline.same_device_as(cmd_buf.as_ref())?;
pipeline.same_device_as(cmd_enc.as_ref())?;
state
.info
@@ -2323,7 +2323,7 @@ fn set_pipeline(
// This function is duplicative of `bundle::set_index_buffer`.
fn set_index_buffer(
state: &mut State,
cmd_buf: &Arc<CommandEncoder>,
cmd_enc: &Arc<CommandEncoder>,
buffer: Arc<crate::resource::Buffer>,
index_format: IndexFormat,
offset: u64,
@@ -2337,7 +2337,7 @@ fn set_index_buffer(
.buffers
.merge_single(&buffer, wgt::BufferUses::INDEX)?;
buffer.same_device_as(cmd_buf.as_ref())?;
buffer.same_device_as(cmd_enc.as_ref())?;
buffer.check_usage(BufferUsages::INDEX)?;
@@ -2371,7 +2371,7 @@ fn set_index_buffer(
// This function is duplicative of `render::set_vertex_buffer`.
fn set_vertex_buffer(
state: &mut State,
cmd_buf: &Arc<CommandEncoder>,
cmd_enc: &Arc<CommandEncoder>,
slot: u32,
buffer: Arc<crate::resource::Buffer>,
offset: u64,
@@ -2388,7 +2388,7 @@ fn set_vertex_buffer(
.buffers
.merge_single(&buffer, wgt::BufferUses::VERTEX)?;
buffer.same_device_as(cmd_buf.as_ref())?;
buffer.same_device_as(cmd_enc.as_ref())?;
let max_vertex_buffers = state.general.device.limits.max_vertex_buffers;
if slot >= max_vertex_buffers {
@@ -2604,7 +2604,7 @@ fn multi_draw_indirect(
state: &mut State,
indirect_draw_validation_resources: &mut crate::indirect_validation::DrawResources,
indirect_draw_validation_batcher: &mut crate::indirect_validation::DrawBatcher,
cmd_buf: &Arc<CommandEncoder>,
cmd_enc: &Arc<CommandEncoder>,
indirect_buffer: Arc<crate::resource::Buffer>,
offset: u64,
count: u32,
@@ -2629,7 +2629,7 @@ fn multi_draw_indirect(
.device
.require_downlevel_flags(wgt::DownlevelFlags::INDIRECT_EXECUTION)?;
indirect_buffer.same_device_as(cmd_buf.as_ref())?;
indirect_buffer.same_device_as(cmd_enc.as_ref())?;
indirect_buffer.check_usage(BufferUsages::INDIRECT)?;
indirect_buffer.check_destroyed(state.general.snatch_guard)?;
@@ -2785,7 +2785,7 @@ fn multi_draw_indirect(
fn multi_draw_indirect_count(
state: &mut State,
cmd_buf: &Arc<CommandEncoder>,
cmd_enc: &Arc<CommandEncoder>,
indirect_buffer: Arc<crate::resource::Buffer>,
offset: u64,
count_buffer: Arc<crate::resource::Buffer>,
@@ -2812,8 +2812,8 @@ fn multi_draw_indirect_count(
.device
.require_downlevel_flags(wgt::DownlevelFlags::INDIRECT_EXECUTION)?;
indirect_buffer.same_device_as(cmd_buf.as_ref())?;
count_buffer.same_device_as(cmd_buf.as_ref())?;
indirect_buffer.same_device_as(cmd_enc.as_ref())?;
count_buffer.same_device_as(cmd_enc.as_ref())?;
state
.general
@@ -2898,14 +2898,14 @@ fn execute_bundle(
state: &mut State,
indirect_draw_validation_resources: &mut crate::indirect_validation::DrawResources,
indirect_draw_validation_batcher: &mut crate::indirect_validation::DrawBatcher,
cmd_buf: &Arc<CommandEncoder>,
cmd_enc: &Arc<CommandEncoder>,
bundle: Arc<super::RenderBundle>,
) -> Result<(), RenderPassErrorInner> {
api_log!("RenderPass::execute_bundle {}", bundle.error_ident());
let bundle = state.general.tracker.bundles.insert_single(bundle);
bundle.same_device_as(cmd_buf.as_ref())?;
bundle.same_device_as(cmd_enc.as_ref())?;
state
.info

View File

@@ -640,10 +640,10 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), CommandEncoderError> {
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid()?;
if source == destination {
@@ -665,7 +665,7 @@ impl Global {
let src_buffer = hub.buffers.get(source).get()?;
src_buffer.same_device_as(cmd_buf.as_ref())?;
src_buffer.same_device_as(cmd_enc.as_ref())?;
let src_pending = cmd_buf_data
.trackers
@@ -682,7 +682,7 @@ impl Global {
let dst_buffer = hub.buffers.get(destination).get()?;
dst_buffer.same_device_as(cmd_buf.as_ref())?;
dst_buffer.same_device_as(cmd_enc.as_ref())?;
let dst_pending = cmd_buf_data
.trackers
@@ -807,10 +807,10 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), CommandEncoderError> {
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid()?;
#[cfg(feature = "trace")]
@@ -825,8 +825,8 @@ impl Global {
let dst_texture = hub.textures.get(destination.texture).get()?;
let src_buffer = hub.buffers.get(source.buffer).get()?;
dst_texture.same_device_as(cmd_buf.as_ref())?;
src_buffer.same_device_as(cmd_buf.as_ref())?;
dst_texture.same_device_as(cmd_enc.as_ref())?;
src_buffer.same_device_as(cmd_enc.as_ref())?;
let (hal_copy_size, array_layer_count) = validate_texture_copy_range(
destination,
@@ -963,10 +963,10 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), CommandEncoderError> {
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid()?;
#[cfg(feature = "trace")]
@@ -981,8 +981,8 @@ impl Global {
let src_texture = hub.textures.get(source.texture).get()?;
let dst_buffer = hub.buffers.get(destination.buffer).get()?;
src_texture.same_device_as(cmd_buf.as_ref())?;
dst_buffer.same_device_as(cmd_buf.as_ref())?;
src_texture.same_device_as(cmd_enc.as_ref())?;
dst_buffer.same_device_as(cmd_enc.as_ref())?;
let (hal_copy_size, array_layer_count) = validate_texture_copy_range(
source,
@@ -1136,10 +1136,10 @@ impl Global {
let hub = &self.hub;
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), CommandEncoderError> {
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid()?;
let snatch_guard = device.snatchable_lock.read();
@@ -1156,8 +1156,8 @@ impl Global {
let src_texture = hub.textures.get(source.texture).get()?;
let dst_texture = hub.textures.get(destination.texture).get()?;
src_texture.same_device_as(cmd_buf.as_ref())?;
dst_texture.same_device_as(cmd_buf.as_ref())?;
src_texture.same_device_as(cmd_enc.as_ref())?;
dst_texture.same_device_as(cmd_enc.as_ref())?;
// src and dst texture format must be copy-compatible
// https://gpuweb.github.io/gpuweb/#copy-compatible

View File

@@ -22,11 +22,11 @@ impl Global {
let hub = &self.hub;
// Lock command encoder for recording
let cmd_buf = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_buf.data.lock();
let cmd_enc = hub.command_encoders.get(command_encoder_id);
let mut cmd_buf_data = cmd_enc.data.lock();
cmd_buf_data.record_with(|cmd_buf_data| -> Result<(), CommandEncoderError> {
// Get and lock device
let device = &cmd_buf.device;
let device = &cmd_enc.device;
device.check_is_valid()?;
let snatch_guard = &device.snatchable_lock.read();
@@ -38,7 +38,7 @@ impl Global {
// Process buffer transitions
for buffer_transition in buffer_transitions {
let buffer = hub.buffers.get(buffer_transition.buffer).get()?;
buffer.same_device_as(cmd_buf.as_ref())?;
buffer.same_device_as(cmd_enc.as_ref())?;
usage_scope
.buffers
@@ -48,7 +48,7 @@ impl Global {
// Process texture transitions
for texture_transition in texture_transitions {
let texture = hub.textures.get(texture_transition.texture).get()?;
texture.same_device_as(cmd_buf.as_ref())?;
texture.same_device_as(cmd_enc.as_ref())?;
unsafe {
usage_scope.textures.merge_single(