Fix deadlock when resizing

This commit is contained in:
hodasemi 2025-03-10 17:19:17 +01:00
parent 402f3eb5bd
commit f7f3f9ccf1

View file

@ -54,7 +54,7 @@ impl SkyBox {
.sample_count;
let context = world.resources.get_mut_unchecked::<Context>();
context.render_core_mut().add_render_routine::<Self>(1);
context.render_core_mut().add_render_routine::<Self>(10);
let images = images.into();
let cube_map = Image::cube_map([
@ -91,7 +91,7 @@ impl SkyBox {
)
.build(context.device().clone())?;
let render_target = Self::create_render_target(context, sample_count)?;
let render_target = Self::create_render_target(context, &context.images(), sample_count)?;
let pipeline_layout = PipelineLayout::builder()
.add_descriptor_set_layout(&descriptor_set_layout)
@ -179,9 +179,10 @@ impl SkyBox {
fn create_render_target(
context: &Context,
images: &TargetMode<Vec<Arc<Image>>>,
sample_count: VkSampleCountFlags,
) -> Result<TargetMode<RenderTarget>> {
context.images().execute(|images| {
images.execute(|images| {
let first = images.first().unwrap();
let width = first.width();
@ -287,7 +288,7 @@ impl TScene for SkyBox {
&mut self,
_window_width: f32,
_window_height: f32,
_images: &TargetMode<Vec<Arc<Image>>>,
images: &TargetMode<Vec<Arc<Image>>>,
world: &mut World,
) -> Result<()> {
let sample_count = world
@ -303,7 +304,7 @@ impl TScene for SkyBox {
TargetMode::Stereo(p, _) => p.pipeline_layout().clone(),
};
self.render_target = Self::create_render_target(context, sample_count)?;
self.render_target = Self::create_render_target(context, images, sample_count)?;
self.pipeline = Self::create_pipeline(
context,
sample_count,