gsk/gpu: add profiler node for shader loading

This is helpful when tracking down why a frameclock cycle took so long. In
quick recordings it seems to often correlate with a shader compile.
This commit is contained in:
Christian Hergert 2024-03-04 11:53:04 -08:00
parent 0b4c695d65
commit d181d53762

View File

@ -9,6 +9,7 @@
#include "gdk/gdkdisplayprivate.h"
#include "gdk/gdkglcontextprivate.h"
#include "gdk/gdkprofilerprivate.h"
#include <glib/gi18n-lib.h>
@ -473,6 +474,7 @@ gsk_gl_device_load_program (GskGLDevice *self,
guint n_external_textures,
GError **error)
{
G_GNUC_UNUSED gint64 begin_time = GDK_PROFILER_CURRENT_TIME;
GLuint vertex_shader_id, fragment_shader_id, program_id;
GLint link_status;
@ -527,6 +529,11 @@ gsk_gl_device_load_program (GskGLDevice *self,
return 0;
}
gdk_profiler_end_markf (begin_time,
"Compile Program",
"name=%s id=%u frag=%u vert=%u",
op_class->shader_name, program_id, fragment_shader_id, vertex_shader_id);
return program_id;
}