From ef08738330d1df245b9752fe75153e8b9be0c042 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Thu, 2 Dec 2021 11:31:29 -0500 Subject: [PATCH] Insert texture barrier after initializing a texture --- wgpu-core/src/device/queue.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/wgpu-core/src/device/queue.rs b/wgpu-core/src/device/queue.rs index 11ab48e369..2cfe984f30 100644 --- a/wgpu-core/src/device/queue.rs +++ b/wgpu-core/src/device/queue.rs @@ -553,8 +553,21 @@ impl Global { encoder.copy_buffer_to_texture( &device.zero_buffer, dst_raw, - zero_buffer_copy_regions.into_iter(), + zero_buffer_copy_regions.iter().cloned(), ); + encoder.transition_textures(zero_buffer_copy_regions.iter().map(|copy| { + hal::TextureBarrier { + texture: dst_raw, + range: wgt::ImageSubresourceRange { + aspect: wgt::TextureAspect::All, + base_mip_level: copy.texture_base.mip_level, + mip_level_count: NonZeroU32::new(1), + base_array_layer: copy.texture_base.array_layer, + array_layer_count: NonZeroU32::new(1), + }, + usage: hal::TextureUses::COPY_DST..hal::TextureUses::COPY_DST, + } + })); } encoder.copy_buffer_to_texture(&stage.buffer, dst_raw, regions); }