diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-04-09 00:52:18 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-04-09 00:52:18 -0400 |
commit | bfe4aea981b225ad5e4f4daf5902b6a4e30e90fc (patch) | |
tree | 2dd6d4ec8cb04a732042c5cf236fc714ede49c60 | |
parent | 0caa28c1dee734fc42411f61d96171d2621b9062 (diff) | |
download | gtk+-bfe4aea981b225ad5e4f4daf5902b6a4e30e90fc.tar.gz |
ngl: Add a program change counterngl-coloring-underlines
Count how often we change programs during a frame.
-rw-r--r-- | gsk/ngl/gsknglcommandqueue.c | 5 | ||||
-rw-r--r-- | gsk/ngl/gsknglcommandqueueprivate.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gsk/ngl/gsknglcommandqueue.c b/gsk/ngl/gsknglcommandqueue.c index 4ce1628e2f..ca84d04774 100644 --- a/gsk/ngl/gsknglcommandqueue.c +++ b/gsk/ngl/gsknglcommandqueue.c @@ -951,6 +951,7 @@ gsk_ngl_command_queue_execute (GskNglCommandQueue *self, guint n_binds = 0; guint n_fbos = 0; guint n_uniforms = 0; + guint n_programs = 0; guint vao_id; guint vbo_id; int textures[4]; @@ -1062,6 +1063,8 @@ gsk_ngl_command_queue_execute (GskNglCommandQueue *self, { program = batch->any.program; glUseProgram (program); + + n_programs++; } if (apply_framebuffer (&framebuffer, batch->draw.framebuffer)) @@ -1144,6 +1147,7 @@ gsk_ngl_command_queue_execute (GskNglCommandQueue *self, gdk_profiler_set_int_counter (self->metrics.n_binds, n_binds); gdk_profiler_set_int_counter (self->metrics.n_uniforms, n_uniforms); gdk_profiler_set_int_counter (self->metrics.n_fbos, n_fbos); + gdk_profiler_set_int_counter (self->metrics.n_programs, n_programs); gdk_profiler_set_int_counter (self->metrics.n_uploads, self->n_uploads); gdk_profiler_set_int_counter (self->metrics.queue_depth, self->batches.len); @@ -1415,6 +1419,7 @@ gsk_ngl_command_queue_set_profiler (GskNglCommandQueue *self, self->metrics.n_fbos = gdk_profiler_define_int_counter ("fbos", "Number of framebuffers attached"); self->metrics.n_uniforms = gdk_profiler_define_int_counter ("uniforms", "Number of uniforms changed"); self->metrics.n_uploads = gdk_profiler_define_int_counter ("uploads", "Number of texture uploads"); + self->metrics.n_programs = gdk_profiler_define_int_counter ("programs", "Number of program changes"); self->metrics.queue_depth = gdk_profiler_define_int_counter ("gl-queue-depth", "Depth of GL command batches"); } #endif diff --git a/gsk/ngl/gsknglcommandqueueprivate.h b/gsk/ngl/gsknglcommandqueueprivate.h index bcd7c8312d..a05095dbf0 100644 --- a/gsk/ngl/gsknglcommandqueueprivate.h +++ b/gsk/ngl/gsknglcommandqueueprivate.h @@ -250,6 +250,7 @@ struct _GskNglCommandQueue guint n_fbos; guint n_uniforms; guint n_uploads; + guint n_programs; guint queue_depth; } metrics; |