wgpu: Revert using same pool for whole frame - breaks bitmapdata.draw and I'm not sure why yet
This commit is contained in:
parent
0f676fc6ce
commit
257bbc8ec9
|
@ -1,4 +1,3 @@
|
||||||
use crate::buffer_pool::TexturePool;
|
|
||||||
use crate::context3d::WgpuContext3D;
|
use crate::context3d::WgpuContext3D;
|
||||||
use crate::mesh::{Draw, Mesh};
|
use crate::mesh::{Draw, Mesh};
|
||||||
use crate::surface::Surface;
|
use crate::surface::Surface;
|
||||||
|
@ -34,8 +33,6 @@ pub struct WgpuRenderBackend<T: RenderTarget> {
|
||||||
// This is currently unused - we just store it to report in
|
// This is currently unused - we just store it to report in
|
||||||
// `get_viewport_dimensions`
|
// `get_viewport_dimensions`
|
||||||
viewport_scale_factor: f64,
|
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,
|
preferred_sample_count: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +154,6 @@ impl<T: RenderTarget> WgpuRenderBackend<T> {
|
||||||
meshes: Vec::new(),
|
meshes: Vec::new(),
|
||||||
shape_tessellator: ShapeTessellator::new(),
|
shape_tessellator: ShapeTessellator::new(),
|
||||||
viewport_scale_factor: 1.0,
|
viewport_scale_factor: 1.0,
|
||||||
frame_texture_pool: TexturePool::new(),
|
|
||||||
preferred_sample_count,
|
preferred_sample_count,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -370,7 +366,6 @@ impl<T: RenderTarget + 'static> RenderBackend for WgpuRenderBackend<T> {
|
||||||
&mut self.uniform_buffers_storage,
|
&mut self.uniform_buffers_storage,
|
||||||
&self.meshes,
|
&self.meshes,
|
||||||
commands,
|
commands,
|
||||||
&mut self.frame_texture_pool,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
self.target.submit(
|
self.target.submit(
|
||||||
|
@ -379,7 +374,6 @@ impl<T: RenderTarget + 'static> RenderBackend for WgpuRenderBackend<T> {
|
||||||
command_buffers,
|
command_buffers,
|
||||||
frame_output,
|
frame_output,
|
||||||
);
|
);
|
||||||
self.frame_texture_pool = TexturePool::new();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn register_bitmap(&mut self, bitmap: Bitmap) -> Result<BitmapHandle, BitmapError> {
|
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,
|
&mut self.uniform_buffers_storage,
|
||||||
&self.meshes,
|
&self.meshes,
|
||||||
commands,
|
commands,
|
||||||
&mut self.frame_texture_pool,
|
|
||||||
);
|
);
|
||||||
let index = target.submit(
|
let index = target.submit(
|
||||||
&self.descriptors.device,
|
&self.descriptors.device,
|
||||||
|
|
|
@ -181,7 +181,6 @@ impl Surface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
|
||||||
pub fn draw_commands_to(
|
pub fn draw_commands_to(
|
||||||
&mut self,
|
&mut self,
|
||||||
frame_view: &wgpu::TextureView,
|
frame_view: &wgpu::TextureView,
|
||||||
|
@ -190,7 +189,6 @@ impl Surface {
|
||||||
uniform_buffers_storage: &mut BufferStorage<Transforms>,
|
uniform_buffers_storage: &mut BufferStorage<Transforms>,
|
||||||
meshes: &Vec<Mesh>,
|
meshes: &Vec<Mesh>,
|
||||||
commands: CommandList,
|
commands: CommandList,
|
||||||
texture_pool: &mut TexturePool,
|
|
||||||
) -> Vec<wgpu::CommandBuffer> {
|
) -> Vec<wgpu::CommandBuffer> {
|
||||||
uniform_buffers_storage.recall();
|
uniform_buffers_storage.recall();
|
||||||
let uniform_encoder_label = create_debug_label!("Uniform upload command encoder");
|
let uniform_encoder_label = create_debug_label!("Uniform upload command encoder");
|
||||||
|
@ -209,6 +207,7 @@ impl Surface {
|
||||||
label: label.as_deref(),
|
label: label.as_deref(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let mut texture_pool = TexturePool::new();
|
||||||
let target = self.draw_commands(
|
let target = self.draw_commands(
|
||||||
clear_color,
|
clear_color,
|
||||||
descriptors,
|
descriptors,
|
||||||
|
@ -218,7 +217,7 @@ impl Surface {
|
||||||
&mut uniform_encoder,
|
&mut uniform_encoder,
|
||||||
&mut draw_encoder,
|
&mut draw_encoder,
|
||||||
None,
|
None,
|
||||||
texture_pool,
|
&mut texture_pool,
|
||||||
);
|
);
|
||||||
let mut buffers = vec![draw_encoder.finish()];
|
let mut buffers = vec![draw_encoder.finish()];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue