From 257bbc8ec9dd15c73dc53d2c7ced52c44d8fcdc9 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Fri, 23 Dec 2022 03:42:38 +0100 Subject: [PATCH] wgpu: Revert using same pool for whole frame - breaks bitmapdata.draw and I'm not sure why yet --- render/wgpu/src/backend.rs | 7 ------- render/wgpu/src/surface.rs | 5 ++--- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/render/wgpu/src/backend.rs b/render/wgpu/src/backend.rs index 4f0708f35..5243bab46 100644 --- a/render/wgpu/src/backend.rs +++ b/render/wgpu/src/backend.rs @@ -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 { // 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 WgpuRenderBackend { 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 RenderBackend for WgpuRenderBackend { &mut self.uniform_buffers_storage, &self.meshes, commands, - &mut self.frame_texture_pool, ); self.target.submit( @@ -379,7 +374,6 @@ impl RenderBackend for WgpuRenderBackend { command_buffers, frame_output, ); - self.frame_texture_pool = TexturePool::new(); } fn register_bitmap(&mut self, bitmap: Bitmap) -> Result { @@ -544,7 +538,6 @@ impl RenderBackend for WgpuRenderBackend { &mut self.uniform_buffers_storage, &self.meshes, commands, - &mut self.frame_texture_pool, ); let index = target.submit( &self.descriptors.device, diff --git a/render/wgpu/src/surface.rs b/render/wgpu/src/surface.rs index dcfd85101..518df1e2b 100644 --- a/render/wgpu/src/surface.rs +++ b/render/wgpu/src/surface.rs @@ -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, meshes: &Vec, commands: CommandList, - texture_pool: &mut TexturePool, ) -> Vec { 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()];