wgpu: Revert using same pool for whole frame - breaks bitmapdata.draw and I'm not sure why yet

This commit is contained in:
Nathan Adams 2022-12-23 03:42:38 +01:00
parent 0f676fc6ce
commit 257bbc8ec9
2 changed files with 2 additions and 10 deletions

View File

@ -1,4 +1,3 @@
use crate::buffer_pool::TexturePool;
use crate::context3d::WgpuContext3D;
use crate::mesh::{Draw, Mesh};
use crate::surface::Surface;
@ -34,8 +33,6 @@ pub struct WgpuRenderBackend<T: RenderTarget> {
// This is currently unused - we just store it to report in
// `get_viewport_dimensions`
viewport_scale_factor: f64,
// Texture pool to use for a frame - should be reset at the end of each frame
frame_texture_pool: TexturePool,
preferred_sample_count: u32,
}
@ -157,7 +154,6 @@ impl<T: RenderTarget> WgpuRenderBackend<T> {
meshes: Vec::new(),
shape_tessellator: ShapeTessellator::new(),
viewport_scale_factor: 1.0,
frame_texture_pool: TexturePool::new(),
preferred_sample_count,
})
}
@ -370,7 +366,6 @@ impl<T: RenderTarget + 'static> RenderBackend for WgpuRenderBackend<T> {
&mut self.uniform_buffers_storage,
&self.meshes,
commands,
&mut self.frame_texture_pool,
);
self.target.submit(
@ -379,7 +374,6 @@ impl<T: RenderTarget + 'static> RenderBackend for WgpuRenderBackend<T> {
command_buffers,
frame_output,
);
self.frame_texture_pool = TexturePool::new();
}
fn register_bitmap(&mut self, bitmap: Bitmap) -> Result<BitmapHandle, BitmapError> {
@ -544,7 +538,6 @@ impl<T: RenderTarget + 'static> RenderBackend for WgpuRenderBackend<T> {
&mut self.uniform_buffers_storage,
&self.meshes,
commands,
&mut self.frame_texture_pool,
);
let index = target.submit(
&self.descriptors.device,

View File

@ -181,7 +181,6 @@ impl Surface {
}
}
#[allow(clippy::too_many_arguments)]
pub fn draw_commands_to(
&mut self,
frame_view: &wgpu::TextureView,
@ -190,7 +189,6 @@ impl Surface {
uniform_buffers_storage: &mut BufferStorage<Transforms>,
meshes: &Vec<Mesh>,
commands: CommandList,
texture_pool: &mut TexturePool,
) -> Vec<wgpu::CommandBuffer> {
uniform_buffers_storage.recall();
let uniform_encoder_label = create_debug_label!("Uniform upload command encoder");
@ -209,6 +207,7 @@ impl Surface {
label: label.as_deref(),
});
let mut texture_pool = TexturePool::new();
let target = self.draw_commands(
clear_color,
descriptors,
@ -218,7 +217,7 @@ impl Surface {
&mut uniform_encoder,
&mut draw_encoder,
None,
texture_pool,
&mut texture_pool,
);
let mut buffers = vec![draw_encoder.finish()];