You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Merge pull request #99086 from Calinou/editor-visual-profiler-show-hardware-info
Display CPU and GPU model name in the editor visual profiler
This commit is contained in:
@@ -37,6 +37,12 @@
|
|||||||
#include "editor/themes/editor_scale.h"
|
#include "editor/themes/editor_scale.h"
|
||||||
#include "scene/resources/image_texture.h"
|
#include "scene/resources/image_texture.h"
|
||||||
|
|
||||||
|
void EditorVisualProfiler::set_hardware_info(const String &p_cpu_name, const String &p_gpu_name) {
|
||||||
|
cpu_name = p_cpu_name;
|
||||||
|
gpu_name = p_gpu_name;
|
||||||
|
queue_redraw();
|
||||||
|
}
|
||||||
|
|
||||||
void EditorVisualProfiler::add_frame_metric(const Metric &p_metric) {
|
void EditorVisualProfiler::add_frame_metric(const Metric &p_metric) {
|
||||||
++last_metric;
|
++last_metric;
|
||||||
if (last_metric >= frame_metrics.size()) {
|
if (last_metric >= frame_metrics.size()) {
|
||||||
@@ -489,8 +495,8 @@ void EditorVisualProfiler::_graph_tex_draw() {
|
|||||||
graph->draw_string(font, Vector2(half_width * 2 - font->get_string_size(limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75));
|
graph->draw_string(font, Vector2(half_width * 2 - font->get_string_size(limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75));
|
||||||
}
|
}
|
||||||
|
|
||||||
graph->draw_string(font, Vector2(font->get_string_size("X", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x, font->get_ascent(font_size) + 2), "CPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1));
|
graph->draw_string(font, Vector2(font->get_string_size("X", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x, font->get_ascent(font_size) + 2), "CPU: " + cpu_name, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75));
|
||||||
graph->draw_string(font, Vector2(font->get_string_size("X", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x + graph->get_size().width / 2, font->get_ascent(font_size) + 2), "GPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1));
|
graph->draw_string(font, Vector2(font->get_string_size("X", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x + graph->get_size().width / 2, font->get_ascent(font_size) + 2), "GPU: " + gpu_name, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75));
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorVisualProfiler::_graph_tex_mouse_exit() {
|
void EditorVisualProfiler::_graph_tex_mouse_exit() {
|
||||||
|
|||||||
@@ -98,6 +98,9 @@ private:
|
|||||||
|
|
||||||
float graph_limit = 1000.0f / 60;
|
float graph_limit = 1000.0f / 60;
|
||||||
|
|
||||||
|
String cpu_name;
|
||||||
|
String gpu_name;
|
||||||
|
|
||||||
bool seeking = false;
|
bool seeking = false;
|
||||||
|
|
||||||
Timer *frame_delay = nullptr;
|
Timer *frame_delay = nullptr;
|
||||||
@@ -136,6 +139,7 @@ protected:
|
|||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void set_hardware_info(const String &p_cpu_name, const String &p_gpu_name);
|
||||||
void add_frame_metric(const Metric &p_metric);
|
void add_frame_metric(const Metric &p_metric);
|
||||||
void set_enabled(bool p_enable);
|
void set_enabled(bool p_enable);
|
||||||
void set_profiling(bool p_profiling);
|
void set_profiling(bool p_profiling);
|
||||||
|
|||||||
@@ -513,6 +513,10 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, uint64_t p_thread
|
|||||||
frame_data.write[i] = p_data[i];
|
frame_data.write[i] = p_data[i];
|
||||||
}
|
}
|
||||||
performance_profiler->add_profile_frame(frame_data);
|
performance_profiler->add_profile_frame(frame_data);
|
||||||
|
} else if (p_msg == "visual:hardware_info") {
|
||||||
|
const String cpu_name = p_data[0];
|
||||||
|
const String gpu_name = p_data[1];
|
||||||
|
visual_profiler->set_hardware_info(cpu_name, gpu_name);
|
||||||
} else if (p_msg == "visual:profile_frame") {
|
} else if (p_msg == "visual:profile_frame") {
|
||||||
ServersDebugger::VisualProfilerFrame frame;
|
ServersDebugger::VisualProfilerFrame frame;
|
||||||
frame.deserialize(p_data);
|
frame.deserialize(p_data);
|
||||||
|
|||||||
@@ -370,6 +370,12 @@ class ServersDebugger::VisualProfiler : public EngineProfiler {
|
|||||||
public:
|
public:
|
||||||
void toggle(bool p_enable, const Array &p_opts) {
|
void toggle(bool p_enable, const Array &p_opts) {
|
||||||
RS::get_singleton()->set_frame_profiling_enabled(p_enable);
|
RS::get_singleton()->set_frame_profiling_enabled(p_enable);
|
||||||
|
|
||||||
|
// Send hardware information from the remote device so that it's accurate for remote debugging.
|
||||||
|
Array hardware_info;
|
||||||
|
hardware_info.push_back(OS::get_singleton()->get_processor_name());
|
||||||
|
hardware_info.push_back(RenderingServer::get_singleton()->get_video_adapter_name());
|
||||||
|
EngineDebugger::get_singleton()->send_message("visual:hardware_info", hardware_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
void add(const Array &p_data) {}
|
void add(const Array &p_data) {}
|
||||||
|
|||||||
Reference in New Issue
Block a user