@@ -467,6 +467,8 @@ class GraphRender : public Window, public GUI::user_interface
467467 GUI ::Elements::stat_graph::ptr graph_fps;
468468 GUI ::Elements::stat_graph::ptr graph_frametime;
469469 GUI ::Elements::stat_graph::ptr graph_vram;
470+ GUI ::Elements::stat_graph::ptr graph_upload;
471+ GUI ::Elements::stat_graph::ptr graph_readback;
470472
471473 std::shared_ptr<triangle_drawer> drawer;
472474 std::shared_ptr<triangle_drawer> drawer2;
@@ -546,9 +548,12 @@ class GraphRender : public Window, public GUI::user_interface
546548
547549 if (frame_dt > 0 .0f )
548550 {
551+ auto & dev = RenderSystem::get ().device ();
549552 if (graph_fps) graph_fps->push (1 .0f / frame_dt, frame_dt);
550553 if (graph_frametime) graph_frametime->push (frame_dt * 1000 .0f , frame_dt);
551- if (graph_vram) graph_vram->push ((float )RenderSystem::get ().device ().get_vram (), frame_dt);
554+ if (graph_vram) graph_vram->push ((float )dev.get_vram (), frame_dt);
555+ if (graph_upload) graph_upload->push ((float )dev.get_upload_heap (), frame_dt);
556+ if (graph_readback) graph_readback->push ((float )dev.get_readback_heap (), frame_dt);
552557 }
553558
554559
@@ -861,15 +866,17 @@ class GraphRender : public Window, public GUI::user_interface
861866 stats_panel->height_size = GUI ::size_type::MATCH_PARENT ;
862867
863868 graph_fps.reset (new GUI::Elements::stat_graph ());
864- graph_fps->title = " FPS" ;
865- graph_fps->size = {0 , 70 };
866- graph_fps->mode = GUI ::Elements::stat_graph::draw_mode::lines;
869+ graph_fps->title = " FPS" ;
870+ graph_fps->size = {0 , 70 };
871+ graph_fps->min_range = 150 .0f ;
872+ graph_fps->mode = GUI ::Elements::stat_graph::draw_mode::lines;
867873 stats_panel->add_child (graph_fps);
868874
869875 graph_frametime.reset (new GUI::Elements::stat_graph ());
870876 graph_frametime->title = " Frame Time" ;
871877 graph_frametime->unit = " ms" ;
872878 graph_frametime->size = {0 , 70 };
879+ graph_frametime->min_range = 20 .0f ;
873880 graph_frametime->line_color = {0 .95f , 0 .70f , 0 .20f , 1 .00f };
874881 graph_frametime->fill_color = {0 .95f , 0 .70f , 0 .20f , 0 .15f };
875882 graph_frametime->mode = GUI ::Elements::stat_graph::draw_mode::lines;
@@ -878,11 +885,32 @@ class GraphRender : public Window, public GUI::user_interface
878885 graph_vram.reset (new GUI::Elements::stat_graph ());
879886 graph_vram->title = " VRAM" ;
880887 graph_vram->size = {0 , 70 };
888+ graph_vram->min_range = 100 .0f ;
881889 graph_vram->line_color = {0 .90f , 0 .30f , 0 .30f , 1 .00f };
882890 graph_vram->fill_color = {0 .90f , 0 .30f , 0 .30f , 0 .15f };
883891 graph_vram->mode = GUI ::Elements::stat_graph::draw_mode::lines;
884892 stats_panel->add_child (graph_vram);
885893
894+ graph_upload.reset (new GUI::Elements::stat_graph ());
895+ graph_upload->title = " Upload Heap" ;
896+ graph_upload->unit = " MB" ;
897+ graph_upload->size = {0 , 70 };
898+ graph_upload->min_range = 50 .0f ;
899+ graph_upload->line_color = {0 .40f , 0 .70f , 1 .00f , 1 .00f };
900+ graph_upload->fill_color = {0 .40f , 0 .70f , 1 .00f , 0 .15f };
901+ graph_upload->mode = GUI ::Elements::stat_graph::draw_mode::lines;
902+ stats_panel->add_child (graph_upload);
903+
904+ graph_readback.reset (new GUI::Elements::stat_graph ());
905+ graph_readback->title = " Readback Heap" ;
906+ graph_readback->unit = " MB" ;
907+ graph_readback->size = {0 , 70 };
908+ graph_readback->min_range = 50 .0f ;
909+ graph_readback->line_color = {1 .00f , 0 .60f , 0 .20f , 1 .00f };
910+ graph_readback->fill_color = {1 .00f , 0 .60f , 0 .20f , 0 .15f };
911+ graph_readback->mode = GUI ::Elements::stat_graph::draw_mode::lines;
912+ stats_panel->add_child (graph_readback);
913+
886914 dock->get_tabs ()->add_page (" Stats" , stats_panel);
887915 dock->size = {100 , 230 };
888916 }
0 commit comments