display min/max frametime for period

gpu_metrics
FlightlessMango 2 years ago
parent e435764eff
commit fb1cae9cc9

@ -559,7 +559,7 @@ void HudElements::frame_timing(){
for (size_t i = 0; i < HUDElements.params->table_columns - 1; i++)
ImGui::TableNextColumn();
ImGui::Dummy(ImVec2(0.0f, real_font_size.y));
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width * 1.3, "%.1f ms", 1000 / HUDElements.sw_stats->fps);
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width * 1.3, "min: %.1fms, max: %.1fms", min_frametime, max_frametime);
ImGui::PopFont();
ImGui::TableNextRow(); ImGui::TableNextColumn();
char hash[40];

@ -43,6 +43,7 @@ ImVec2 real_font_size;
std::deque<logData> graph_data;
const char* engines[] = {"Unknown", "OpenGL", "VULKAN", "DXVK", "VKD3D", "DAMAVAND", "ZINK", "WINED3D", "Feral3D", "ToGL", "GAMESCOPE"};
overlay_params *_params {};
double min_frametime, max_frametime;
void update_hw_info(struct swapchain_stats& sw_stats, struct overlay_params& params, uint32_t vendorID)
{
@ -195,7 +196,13 @@ void update_hud_info_with_frametime(struct swapchain_stats& sw_stats, struct ove
sw_stats.last_fps_update = now;
}
double min_time = UINT64_MAX, max_time = 0;
for (auto& stat : sw_stats.frames_stats ){
min_time = MIN2(stat.stats[0], min_time);
max_time = MAX2(stat.stats[0], min_time);
}
min_frametime = min_time / sw_stats.time_dividor;
max_frametime = max_time / sw_stats.time_dividor;
if (params.log_interval == 0){
logger->try_log();
}

@ -147,6 +147,7 @@ extern std::string wineVersion;
extern std::deque<logData> graph_data;
extern overlay_params *_params;
extern struct gpu_metrics_v2_2 amdgpu_metrics;
extern double min_frametime, max_frametime;
void position_layer(struct swapchain_stats& data, struct overlay_params& params, ImVec2 window_size);
void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2& window_size, bool is_vulkan);

Loading…
Cancel
Save