mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-01-10 10:57:57 -05:00
rename cmd_buf to cmd_enc where appropriate
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()?;
|
||||
|
||||
|
||||
@@ -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()?;
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)?;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user