Skip to content

Commit ae11fe2

Browse files
committed
call clear_texture in initialize_texture_memory with a single range at a time
1 parent 3142f91 commit ae11fe2

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

wgpu-core/src/command/mod.rs

+12-15
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ impl<A: hal::Api> BakedCommands<A> {
162162
device_tracker: &mut TrackerSet,
163163
texture_guard: &mut Storage<Texture<A>, id::TextureId>,
164164
) -> Result<(), DestroyedTextureError> {
165-
let mut ranges = Vec::new();
165+
let mut ranges: Vec<TextureInitRange> = Vec::new();
166166
for texture_use in self.texture_memory_init_actions.drain(..) {
167167
let texture = texture_guard
168168
.get_mut(texture_use.id)
@@ -227,20 +227,17 @@ impl<A: hal::Api> BakedCommands<A> {
227227
);
228228
self.encoder.clear_texture(
229229
raw_texture,
230-
&ranges
231-
.iter()
232-
.map(|r| wgt::ImageSubresourceRange {
233-
aspect: wgt::TextureAspect::All,
234-
base_mip_level: r.mip_range.start,
235-
mip_level_count: NonZeroU32::new(
236-
r.mip_range.end - r.mip_range.start,
237-
),
238-
base_array_layer: r.layer_range.start,
239-
array_layer_count: NonZeroU32::new(
240-
r.layer_range.end - r.layer_range.start,
241-
),
242-
})
243-
.collect::<Vec<wgt::ImageSubresourceRange>>(),
230+
&wgt::ImageSubresourceRange {
231+
aspect: wgt::TextureAspect::All,
232+
base_mip_level: range.mip_range.start,
233+
mip_level_count: NonZeroU32::new(
234+
range.mip_range.end - range.mip_range.start,
235+
),
236+
base_array_layer: range.layer_range.start,
237+
array_layer_count: NonZeroU32::new(
238+
range.layer_range.end - range.layer_range.start,
239+
),
240+
},
244241
);
245242
}
246243
}

0 commit comments

Comments
 (0)