diff --git a/src/App.cppm b/src/App.cppm
index e935a4d..20deb11 100644
--- a/src/App.cppm
+++ b/src/App.cppm
@@ -23,6 +23,7 @@ import InputAssembly;
 import UniformBuffer;
 import TextureSampler;
 import Descriptor;
+import QueryPool;
 import Drawer;
 
 export namespace vht {
@@ -40,6 +41,7 @@ export namespace vht {
         std::shared_ptr<vht::UniformBuffer> m_uniform_buffer{ nullptr };
         std::shared_ptr<vht::TextureSampler> m_texture_sampler{ nullptr };
         std::shared_ptr<vht::Descriptor> m_descriptor{ nullptr };
+        std::shared_ptr<vht::QueryPool> m_query_pool; // 添加查询池成员
         std::shared_ptr<vht::Drawer> m_drawer{ nullptr };
     public:
         void run() {
@@ -79,6 +81,8 @@ export namespace vht {
             std::cout << "texture sampler created" << std::endl;
             init_descriptor();
             std::cout << "descriptor created" << std::endl;
+            init_query_pool(); // 初始化查询池
+            std::cout << "query pool created" << std::endl;
             init_drawer();
             std::cout << "drawer created" << std::endl;
         }
@@ -95,6 +99,7 @@ export namespace vht {
         void init_uniform_buffer() { m_uniform_buffer = std::make_shared<vht::UniformBuffer>( m_window, m_device, m_swapchain ); }
         void init_texture_sampler() { m_texture_sampler = std::make_shared<vht::TextureSampler>( m_device, m_command_pool ); }
         void init_descriptor() { m_descriptor = std::make_shared<vht::Descriptor>( m_device, m_graphics_pipeline, m_uniform_buffer, m_texture_sampler ); }
+        void init_query_pool() { m_query_pool = std::make_shared<vht::QueryPool>( m_device ); }
         void init_drawer() {
             m_drawer = std::make_shared<vht::Drawer>(
                 m_data_loader,
@@ -106,7 +111,8 @@ export namespace vht {
                 m_command_pool,
                 m_input_assembly,
                 m_uniform_buffer,
-                m_descriptor
+                m_descriptor,
+                m_query_pool // 传递查询池
             );
         }
     };
