diff --git a/src/utils/Drawer.cppm b/src/utils/Drawer.cppm
index 1d33377..c2441fe 100644
--- a/src/utils/Drawer.cppm
+++ b/src/utils/Drawer.cppm
@@ -101,6 +101,7 @@ export namespace vht {
                 image_index = idx;
             } catch (const vk::OutOfDateKHRError&){
                 m_render_pass->recreate();
+                m_descriptor->recreate();
                 return;
             }
             // 重置当前帧的栅栏，延迟到此处等待，防止上方 return 导致死锁
@@ -131,13 +132,16 @@ export namespace vht {
             try{
                 if(  m_device->present_queue().presentKHR(present_info) == vk::Result::eSuboptimalKHR ) {
                     m_render_pass->recreate();
+                    m_descriptor->recreate();
                 }
             } catch (const vk::OutOfDateKHRError&){
                 m_render_pass->recreate();
+                m_descriptor->recreate();
             }
             // 检查窗口是否被调整大小
             if( m_window->framebuffer_resized() ){
                 m_render_pass->recreate();
+                m_descriptor->recreate();
             }
             // 更新飞行中的帧索引
             m_current_frame = (m_current_frame + 1) % MAX_FRAMES_IN_FLIGHT;
@@ -181,9 +185,12 @@ export namespace vht {
             render_pass_begin_info.renderArea.offset = vk::Offset2D{0, 0};
             render_pass_begin_info.renderArea.extent = m_swapchain->extent();
 
-            std::array<vk::ClearValue, 2> clear_values;
+            std::array<vk::ClearValue, 5> clear_values; // 增加 3 个子元素
             clear_values[0] = vk::ClearColorValue{ 0.0f, 0.0f, 0.0f, 1.0f };
             clear_values[1] = vk::ClearDepthStencilValue{ 1.0f ,0 };
+            clear_values[2] = clear_values[0];
+            clear_values[3] = clear_values[0];
+            clear_values[4] = clear_values[0];
             render_pass_begin_info.setClearValues( clear_values );
 
             command_buffer.beginRenderPass( render_pass_begin_info, vk::SubpassContents::eInline);
@@ -234,6 +241,25 @@ export namespace vht {
             );
             command_buffer.drawIndexed(m_data_loader->index_counts()[1], 1, m_data_loader->index_offsets()[1], 0, 1);
 
+            // ↓ 第二个管线的命令
+            // --- 切换到第二个子通道 ---
+            command_buffer.nextSubpass(vk::SubpassContents::eInline);
+            // --- 绑定第二个管线 ---
+            command_buffer.bindPipeline( vk::PipelineBindPoint::eGraphics, m_graphics_pipeline->second_pipeline() );
+            // 视口与裁剪共用上方的设置，此处无需再次设置
+            // --- 绑定描述符集合 ---
+            command_buffer.bindDescriptorSets(
+                vk::PipelineBindPoint::eGraphics,
+                    m_graphics_pipeline->second_pipeline_layout(),
+                    0,
+                    *m_descriptor->second_sets()[m_current_frame],
+                    nullptr
+            );
+            // 绘制 6 个点，对应着色器中的两个三角形
+            command_buffer.draw(6, 1, 0, 0);
+
+
+
             command_buffer.endRenderPass();
             command_buffer.end();
         }
