@@ -997,11 +997,13 @@ namespace GUI
997997 c.scale = 1 ;
998998 c.delta_time = dt;
999999
1000-
1001- draw_infos.clear ();
1002- pre_draw_infos.clear ();
1003- draw_recursive (c);
1004- drag.draw (c);
1000+ {
1001+ PROFILE (L" collect_draw_infos" );
1002+ draw_infos.clear ();
1003+ pre_draw_infos.clear ();
1004+ draw_recursive (c);
1005+ drag.draw (c);
1006+ }
10051007
10061008 auto & ui_ctx = graph.get_context <UIContext>();
10071009 ui_ctx.draw_infos = std::move (draw_infos);
@@ -1012,10 +1014,14 @@ namespace GUI
10121014 ui_ctx.scaled_size = scaled_size.get ();
10131015 ui_ctx.result_texture_handler = Handlers::Texture (" ResultTexture" );
10141016
1015- process_graph (graph);
1017+ {
1018+ PROFILE (L" process_graph" );
1019+ process_graph (graph);
1020+ }
10161021
10171022 if (pre_draw_infos.size ())
10181023 {
1024+ PROFILE (L" pre_draw" );
10191025 auto command_list = RenderSystem::get ().device ().get_queue (HAL ::CommandListType::DIRECT )->get_free_list ();
10201026 command_list->begin (L" pre_draw" );
10211027 for (auto & e : pre_draw_infos)
@@ -1632,6 +1638,7 @@ void PassDefault<Passes::UI_Render>::render(
16321638 auto texture = (*data.swapchain );
16331639
16341640 {
1641+ PROFILE (L" setup_rt" );
16351642 RT ::SingleColor rt;
16361643 rt.GetColor () = texture.renderTarget ;
16371644 const auto rt_options = (slot == 0 )
@@ -1649,6 +1656,7 @@ void PassDefault<Passes::UI_Render>::render(
16491656 c.result_texture_srv = *ui_ctx.result_texture_handler ;
16501657
16511658 {
1659+ PROFILE (L" draw_elements" );
16521660 PROFILE_GPU (L" draw" );
16531661 for (uint32_t i = start; i < end; i++)
16541662 {
@@ -1669,6 +1677,10 @@ void PassDefault<Passes::UI_Render>::render(
16691677 else
16701678 e.elem ->draw_after (c);
16711679 }
1680+ }
1681+
1682+ {
1683+ PROFILE (L" flush" );
16721684 renderer.flush (c);
16731685 }
16741686}
0 commit comments