mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-21 22:33:49 +00:00
change return type of ResourceMetadataProvider.get
to &Arc<T>
This commit is contained in:
parent
26eceabe86
commit
123a59ae7b
@ -748,8 +748,8 @@ unsafe fn insert<A: HalApi>(
|
||||
}
|
||||
*current_states.get_unchecked_mut(index) = new_end_state;
|
||||
|
||||
let resource = metadata_provider.get_own(index);
|
||||
resource_metadata.insert(index, resource);
|
||||
let resource = metadata_provider.get(index);
|
||||
resource_metadata.insert(index, resource.clone());
|
||||
}
|
||||
}
|
||||
|
||||
@ -768,7 +768,7 @@ unsafe fn merge<A: HalApi>(
|
||||
|
||||
if invalid_resource_state(merged_state) {
|
||||
return Err(UsageConflict::from_buffer(
|
||||
unsafe { metadata_provider.get_own(index).info.id() },
|
||||
unsafe { metadata_provider.get(index).info.id() },
|
||||
*current_state,
|
||||
new_state,
|
||||
));
|
||||
|
@ -182,21 +182,20 @@ pub(super) enum ResourceMetadataProvider<'a, T: Resource> {
|
||||
Indirect { metadata: &'a ResourceMetadata<T> },
|
||||
}
|
||||
impl<T: Resource> ResourceMetadataProvider<'_, T> {
|
||||
/// Get the epoch and an owned refcount from this.
|
||||
/// Get a reference to the resource from this.
|
||||
///
|
||||
/// # Safety
|
||||
///
|
||||
/// - The index must be in bounds of the metadata tracker if this uses an indirect source.
|
||||
/// - info must be Some if this uses a Resource source.
|
||||
#[inline(always)]
|
||||
pub(super) unsafe fn get_own(self, index: usize) -> Arc<T> {
|
||||
pub(super) unsafe fn get(&self, index: usize) -> &Arc<T> {
|
||||
match self {
|
||||
ResourceMetadataProvider::Direct { resource } => resource.into_owned(),
|
||||
ResourceMetadataProvider::Direct { resource } => resource,
|
||||
ResourceMetadataProvider::Indirect { metadata } => {
|
||||
metadata.tracker_assert_in_bounds(index);
|
||||
{
|
||||
let resource = unsafe { metadata.resources.get_unchecked(index) };
|
||||
unsafe { resource.clone().unwrap_unchecked() }
|
||||
let resource = unsafe { metadata.resources.get_unchecked(index) }.as_ref();
|
||||
unsafe { resource.unwrap_unchecked() }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1064,8 +1064,8 @@ unsafe fn insert<A: HalApi>(
|
||||
}
|
||||
|
||||
unsafe {
|
||||
let resource = metadata_provider.get_own(index);
|
||||
resource_metadata.insert(index, resource);
|
||||
let resource = metadata_provider.get(index);
|
||||
resource_metadata.insert(index, resource.clone());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1096,7 +1096,7 @@ unsafe fn merge<A: HalApi>(
|
||||
|
||||
if invalid_resource_state(merged_state) {
|
||||
return Err(UsageConflict::from_texture(
|
||||
unsafe { metadata_provider.get_own(index).info.id() },
|
||||
unsafe { metadata_provider.get(index).info.id() },
|
||||
texture_selector.clone(),
|
||||
*current_simple,
|
||||
new_simple,
|
||||
@ -1123,7 +1123,7 @@ unsafe fn merge<A: HalApi>(
|
||||
|
||||
if invalid_resource_state(merged_state) {
|
||||
return Err(UsageConflict::from_texture(
|
||||
unsafe { metadata_provider.get_own(index).info.id() },
|
||||
unsafe { metadata_provider.get(index).info.id() },
|
||||
selector,
|
||||
*current_simple,
|
||||
new_state,
|
||||
@ -1164,7 +1164,7 @@ unsafe fn merge<A: HalApi>(
|
||||
|
||||
if invalid_resource_state(merged_state) {
|
||||
return Err(UsageConflict::from_texture(
|
||||
unsafe { metadata_provider.get_own(index).info.id() },
|
||||
unsafe { metadata_provider.get(index).info.id() },
|
||||
TextureSelector {
|
||||
mips: mip_id..mip_id + 1,
|
||||
layers: layers.clone(),
|
||||
@ -1205,7 +1205,7 @@ unsafe fn merge<A: HalApi>(
|
||||
|
||||
if invalid_resource_state(merged_state) {
|
||||
return Err(UsageConflict::from_texture(
|
||||
unsafe { metadata_provider.get_own(index).info.id() },
|
||||
unsafe { metadata_provider.get(index).info.id() },
|
||||
TextureSelector {
|
||||
mips: mip_id..mip_id + 1,
|
||||
layers: layers.clone(),
|
||||
|
Loading…
Reference in New Issue
Block a user