diff --git a/vulkan-rs/src/render_target/mod.rs b/vulkan-rs/src/render_target/mod.rs
index 5479232..af6d916 100644
--- a/vulkan-rs/src/render_target/mod.rs
+++ b/vulkan-rs/src/render_target/mod.rs
@@ -415,7 +415,7 @@ mod test {
         RenderTarget::builder()
             .add_sub_pass(
                 SubPass::builder(target_images[0].width(), target_images[0].height())
-                    .set_prepared_targets(&target_images, 0, [0.0, 0.0, 0.0, 0.0], false)
+                    .set_prepared_targets(&target_images, 0, None)
                     .build(&device)
                     .unwrap(),
             )
@@ -448,7 +448,7 @@ mod test {
                         sub_pass_index: 1,
                         input_indices: vec![1],
                     })
-                    .set_prepared_targets(&target_images, 0, [0.0, 0.0, 0.0, 0.0], false)
+                    .set_prepared_targets(&target_images, 0, None)
                     .build(&device)
                     .unwrap(),
             )
diff --git a/vulkan-rs/src/render_target/sub_pass.rs b/vulkan-rs/src/render_target/sub_pass.rs
index 551b2fb..fa02d21 100644
--- a/vulkan-rs/src/render_target/sub_pass.rs
+++ b/vulkan-rs/src/render_target/sub_pass.rs
@@ -244,14 +244,15 @@ impl<'a> SubPassBuilder<'a> {
         mut self,
         prepared_targets: &'a [Arc<Image>],
         target_index: usize,
-        clear_color: impl Into<[f32; 4]>,
-        clear_on_load: bool,
+        clear_color: impl Into<Option<[f32; 4]>>,
     ) -> Self {
+        let clear_color = clear_color.into();
+
         self.prepared_targets = Some((
             prepared_targets,
             target_index,
-            clear_color.into(),
-            clear_on_load,
+            clear_color.unwrap_or_default(),
+            clear_color.is_some(),
         ));
 
         self