diff options
author | Matthias Clasen <mclasen@redhat.com> | 2018-05-19 20:35:02 +0100 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2019-05-07 09:37:59 -0700 |
commit | 64454a7e47f5d0bac12bae3c1d73e47392803d38 (patch) | |
tree | 2ff270d130f021fe164f73c76313521b89acc574 /gsk | |
parent | b09a0958a0515d6bb261bc65a017a62936abbf56 (diff) | |
download | gtk+-64454a7e47f5d0bac12bae3c1d73e47392803d38.tar.gz |
gsk: Add tracing to the vulkan renderer
Emit the equivalent of the cpu-time counter, as well
as pixel numbers i the inspector.
Diffstat (limited to 'gsk')
-rw-r--r-- | gsk/vulkan/gskvulkanrenderer.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/gsk/vulkan/gskvulkanrenderer.c b/gsk/vulkan/gskvulkanrenderer.c index e84efcdb47..6fc59758c6 100644 --- a/gsk/vulkan/gskvulkanrenderer.c +++ b/gsk/vulkan/gskvulkanrenderer.c @@ -13,6 +13,7 @@ #include "gskvulkanglyphcacheprivate.h" #include "gdk/gdktextureprivate.h" +#include "gdk/gdkprofilerprivate.h" #include <graphene.h> @@ -38,6 +39,9 @@ typedef struct { } ProfileTimers; #endif +static guint texture_pixels_counter; +static guint fallback_pixels_counter; + struct _GskVulkanRenderer { GskRenderer parent_instance; @@ -170,7 +174,7 @@ gsk_vulkan_renderer_render_texture (GskRenderer *renderer, GdkTexture *texture; #ifdef G_ENABLE_DEBUG GskProfiler *profiler; - gint64 cpu_time; + gint64 cpu_time, start_time; #endif #ifdef G_ENABLE_DEBUG @@ -201,10 +205,22 @@ gsk_vulkan_renderer_render_texture (GskRenderer *renderer, gsk_vulkan_render_free (render); #ifdef G_ENABLE_DEBUG + start_time = gsk_profiler_timer_get_start (profiler, self->profile_timers.cpu_time); cpu_time = gsk_profiler_timer_end (profiler, self->profile_timers.cpu_time); gsk_profiler_timer_set (profiler, self->profile_timers.cpu_time, cpu_time); gsk_profiler_push_samples (profiler); + + if (gdk_profiler_is_running ()) + { + gdk_profiler_add_mark (start_time, cpu_time, "render", ""); + gdk_profiler_set_int_counter (texture_pixels_counter, + start_time + cpu_time, + gsk_profiler_counter_get (profiler, self->profile_counters.texture_pixels)); + gdk_profiler_set_int_counter (fallback_pixels_counter, + start_time + cpu_time, + gsk_profiler_counter_get (profiler, self->profile_counters.fallback_pixels)); + } #endif return texture; @@ -284,6 +300,13 @@ gsk_vulkan_renderer_init (GskVulkanRenderer *self) self->profile_timers.cpu_time = gsk_profiler_add_timer (profiler, "cpu-time", "CPU time", FALSE, TRUE); if (GSK_RENDERER_DEBUG_CHECK (GSK_RENDERER (self), SYNC)) self->profile_timers.gpu_time = gsk_profiler_add_timer (profiler, "gpu-time", "GPU time", FALSE, TRUE); + + if (texture_pixels_counter == 0) + { + texture_pixels_counter = gdk_profiler_define_int_counter ("texture-pixels", "Texture Pixels"); + fallback_pixels_counter = gdk_profiler_define_int_counter ("fallback-pixels", "Fallback Pixels"); + } + #endif } |