[gtk+] gsk: Reorganize env vars
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gsk: Reorganize env vars
- Date: Sun, 14 Jan 2018 22:06:42 +0000 (UTC)
commit ba21a7764b584475162558693c518b1f319926f1
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jan 14 15:11:33 2018 -0500
gsk: Reorganize env vars
Get rid of GSK_RENDERING_MODE and add the flags to GSK_DEBUG,
following the same pattern we use in gdk now.
gsk/gl/gskglrenderer.c | 2 +-
gsk/gskcairorenderer.c | 4 +++-
gsk/gskdebug.c | 36 ++++++------------------------------
gsk/gskdebugprivate.h | 37 +++++++++++++++----------------------
gsk/gskrenderer.c | 12 ++++++------
gsk/gskrendernode.c | 8 ++++++--
gsk/vulkan/gskvulkanimage.c | 4 ++--
gsk/vulkan/gskvulkanrender.c | 6 ++++--
gsk/vulkan/gskvulkanrenderer.c | 2 +-
9 files changed, 44 insertions(+), 67 deletions(-)
---
diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c
index f0204a4..11c088d 100644
--- a/gsk/gl/gskglrenderer.c
+++ b/gsk/gl/gskglrenderer.c
@@ -1723,7 +1723,7 @@ gsk_gl_renderer_create_programs (GskGLRenderer *self,
}
#ifdef G_ENABLE_DEBUG
- if (GSK_RENDER_MODE_CHECK (SHADERS))
+ if (GSK_RENDERER_DEBUG_CHECK (GSK_RENDERER (self), SHADERS))
gsk_shader_builder_add_define (builder, "GSK_DEBUG", "1");
#endif
diff --git a/gsk/gskcairorenderer.c b/gsk/gskcairorenderer.c
index bc596e2..ca0b493 100644
--- a/gsk/gskcairorenderer.c
+++ b/gsk/gskcairorenderer.c
@@ -107,7 +107,8 @@ gsk_cairo_renderer_render (GskRenderer *renderer,
g_return_if_fail (cr != NULL);
- if (GSK_RENDER_MODE_CHECK (GEOMETRY))
+#ifdef G_ENABLE_DEBUG
+ if (GSK_RENDERER_DEBUG_CHECK (renderer, GEOMETRY))
{
cairo_save (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
@@ -118,6 +119,7 @@ gsk_cairo_renderer_render (GskRenderer *renderer,
cairo_stroke (cr);
cairo_restore (cr);
}
+#endif
gsk_cairo_renderer_do_render (renderer, cr, root);
}
diff --git a/gsk/gskdebug.c b/gsk/gskdebug.c
index 61e555d..ef117ea 100644
--- a/gsk/gskdebug.c
+++ b/gsk/gskdebug.c
@@ -9,19 +9,15 @@ static const GDebugKey gsk_debug_keys[] = {
{ "surface", GSK_DEBUG_SURFACE },
{ "vulkan", GSK_DEBUG_VULKAN },
{ "fallback", GSK_DEBUG_FALLBACK },
- { "glyphcache", GSK_DEBUG_GLYPH_CACHE }
+ { "glyphcache", GSK_DEBUG_GLYPH_CACHE },
+ { "geometry", GSK_DEBUG_GEOMETRY },
+ { "full-redraw", GSK_DEBUG_FULL_REDRAW},
+ { "sync", GSK_DEBUG_SYNC },
+ { "vulkan-staging-image", GSK_DEBUG_VULKAN_STAGING_IMAGE },
+ { "vulkan-staging-buffer", GSK_DEBUG_VULKAN_STAGING_BUFFER }
};
#endif
-static const GDebugKey gsk_rendering_keys[] = {
- { "geometry", GSK_RENDERING_MODE_GEOMETRY },
- { "shaders", GSK_RENDERING_MODE_SHADERS },
- { "sync", GSK_RENDERING_MODE_SYNC },
- { "full-redraw", GSK_RENDERING_MODE_FULL_REDRAW},
- { "staging-image", GSK_RENDERING_MODE_STAGING_IMAGE },
- { "staging-buffer", GSK_RENDERING_MODE_STAGING_BUFFER }
-};
-
static guint gsk_debug_flags;
static void
@@ -58,23 +54,3 @@ gsk_get_debug_flags (void)
return gsk_debug_flags;
}
-
-gboolean
-gsk_check_rendering_flags (GskRenderingMode flags)
-{
- static volatile gsize gsk_rendering_flags__set;
- static guint gsk_rendering_flags;
-
- if (g_once_init_enter (&gsk_rendering_flags__set))
- {
- const char *env = g_getenv ("GSK_RENDERING_MODE");
-
- gsk_rendering_flags = g_parse_debug_string (env,
- (GDebugKey *) gsk_rendering_keys,
- G_N_ELEMENTS (gsk_rendering_keys));
-
- g_once_init_leave (&gsk_rendering_flags__set, TRUE);
- }
-
- return (gsk_rendering_flags & flags) != 0;
-}
diff --git a/gsk/gskdebugprivate.h b/gsk/gskdebugprivate.h
index 131d3d4..6801416 100644
--- a/gsk/gskdebugprivate.h
+++ b/gsk/gskdebugprivate.h
@@ -6,36 +6,30 @@
G_BEGIN_DECLS
typedef enum {
- GSK_DEBUG_RENDERER = 1 << 0,
- GSK_DEBUG_CAIRO = 1 << 1,
- GSK_DEBUG_OPENGL = 1 << 2,
- GSK_DEBUG_SHADERS = 1 << 3,
- GSK_DEBUG_SURFACE = 1 << 4,
- GSK_DEBUG_VULKAN = 1 << 5,
- GSK_DEBUG_FALLBACK = 1 << 6,
- GSK_DEBUG_GLYPH_CACHE = 1 << 7
+ GSK_DEBUG_RENDERER = 1 << 0,
+ GSK_DEBUG_CAIRO = 1 << 1,
+ GSK_DEBUG_OPENGL = 1 << 2,
+ GSK_DEBUG_SHADERS = 1 << 3,
+ GSK_DEBUG_SURFACE = 1 << 4,
+ GSK_DEBUG_VULKAN = 1 << 5,
+ GSK_DEBUG_FALLBACK = 1 << 6,
+ GSK_DEBUG_GLYPH_CACHE = 1 << 7,
+ /* flags below may affect behavior */
+ GSK_DEBUG_GEOMETRY = 1 << 8,
+ GSK_DEBUG_FULL_REDRAW = 1 << 9,
+ GSK_DEBUG_SYNC = 1 << 10,
+ GSK_DEBUG_VULKAN_STAGING_IMAGE = 1 << 11,
+ GSK_DEBUG_VULKAN_STAGING_BUFFER = 1 << 12
} GskDebugFlags;
-#define GSK_DEBUG_ANY ((1 << 8) - 1)
-
-typedef enum {
- GSK_RENDERING_MODE_GEOMETRY = 1 << 0,
- GSK_RENDERING_MODE_SHADERS = 1 << 1,
- GSK_RENDERING_MODE_SYNC = 1 << 2,
- GSK_RENDERING_MODE_FULL_REDRAW = 1 << 3,
- GSK_RENDERING_MODE_STAGING_IMAGE = 1 << 4,
- GSK_RENDERING_MODE_STAGING_BUFFER = 1 << 5
-} GskRenderingMode;
+#define GSK_DEBUG_ANY ((1 << 13) - 1)
GskDebugFlags gsk_get_debug_flags (void);
gboolean gsk_check_debug_flags (GskDebugFlags flags);
-gboolean gsk_check_rendering_flags (GskRenderingMode flags);
-
#ifdef G_ENABLE_DEBUG
#define GSK_DEBUG_CHECK(type) G_UNLIKELY (gsk_check_debug_flags (GSK_DEBUG_ ## type))
-#define GSK_RENDER_MODE_CHECK(type) G_UNLIKELY (gsk_check_rendering_flags (GSK_RENDERING_MODE_ ## type))
#define GSK_RENDERER_DEBUG_CHECK(renderer,type) \
G_UNLIKELY ((gsk_renderer_get_debug_flags (renderer) & GSK_DEBUG_ ## type) != 0)
@@ -50,7 +44,6 @@ gboolean gsk_check_rendering_flags (GskRenderingMode flags);
#else
-#define GSK_RENDER_MODE_CHECK(type) 0
#define GSK_DEBUG_CHECK(type) 0
#define GSK_RENDERER_DEBUG_CHECK(renderer,type) 0
#define GSK_NOTE(type,action)
diff --git a/gsk/gskrenderer.c b/gsk/gskrenderer.c
index 6014fd2..ad5450e 100644
--- a/gsk/gskrenderer.c
+++ b/gsk/gskrenderer.c
@@ -799,24 +799,24 @@ gsk_renderer_begin_draw_frame (GskRenderer *renderer,
g_return_val_if_fail (region != NULL, NULL);
g_return_val_if_fail (priv->drawing_context == NULL, NULL);
- if (GSK_RENDER_MODE_CHECK (FULL_REDRAW))
+#ifdef G_ENABLE_DEBUG
+ if (GSK_RENDERER_DEBUG_CHECK (renderer, FULL_REDRAW))
{
cairo_region_t *full_window;
-
+
full_window = cairo_region_create_rectangle (&(GdkRectangle) {
0, 0,
gdk_window_get_width (priv->window),
gdk_window_get_height (priv->window)
});
-
+
priv->drawing_context = GSK_RENDERER_GET_CLASS (renderer)->begin_draw_frame (renderer, full_window);
cairo_region_destroy (full_window);
}
else
- {
- priv->drawing_context = GSK_RENDERER_GET_CLASS (renderer)->begin_draw_frame (renderer, region);
- }
+#endif
+ priv->drawing_context = GSK_RENDERER_GET_CLASS (renderer)->begin_draw_frame (renderer, region);
return priv->drawing_context;
}
diff --git a/gsk/gskrendernode.c b/gsk/gskrendernode.c
index a2a4409..496e4e0 100644
--- a/gsk/gskrendernode.c
+++ b/gsk/gskrendernode.c
@@ -239,7 +239,8 @@ gsk_render_node_draw (GskRenderNode *node,
cairo_save (cr);
- if (!GSK_RENDER_MODE_CHECK (GEOMETRY))
+#ifdef G_ENABLE_DEBUG
+ if (!GSK_DEBUG_CHECK (GEOMETRY))
{
GSK_NOTE (CAIRO, g_message ("CLIP = { .x = %g, .y = %g, .width = %g, .height = %g }",
node->bounds.origin.x, node->bounds.origin.y,
@@ -248,6 +249,7 @@ gsk_render_node_draw (GskRenderNode *node,
cairo_rectangle (cr, node->bounds.origin.x, node->bounds.origin.y, node->bounds.size.width,
node->bounds.size.height);
cairo_clip (cr);
}
+#endif
GSK_NOTE (CAIRO, g_message ("Rendering node %s[%p]",
node->name ? node->name : node->node_class->type_name,
@@ -255,7 +257,8 @@ gsk_render_node_draw (GskRenderNode *node,
node->node_class->draw (node, cr);
- if (GSK_RENDER_MODE_CHECK (GEOMETRY))
+#ifdef G_ENABLE_DEBUG
+ if (GSK_DEBUG_CHECK (GEOMETRY))
{
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
cairo_rectangle (cr, node->bounds.origin.x - 1, node->bounds.origin.y - 1,
@@ -264,6 +267,7 @@ gsk_render_node_draw (GskRenderNode *node,
cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
cairo_stroke (cr);
}
+#endif
cairo_restore (cr);
diff --git a/gsk/vulkan/gskvulkanimage.c b/gsk/vulkan/gskvulkanimage.c
index 8d3bdb4..34cfd3d 100644
--- a/gsk/vulkan/gskvulkanimage.c
+++ b/gsk/vulkan/gskvulkanimage.c
@@ -532,9 +532,9 @@ gsk_vulkan_image_new_from_data (GskVulkanUploader *uploader,
gsize height,
gsize stride)
{
- if (GSK_RENDER_MODE_CHECK (STAGING_BUFFER))
+ if (GSK_DEBUG_CHECK (VULKAN_STAGING_BUFFER))
return gsk_vulkan_image_new_from_data_via_staging_buffer (uploader, data, width, height, stride);
- if (GSK_RENDER_MODE_CHECK (STAGING_IMAGE))
+ else if (GSK_DEBUG_CHECK (VULKAN_STAGING_IMAGE))
return gsk_vulkan_image_new_from_data_via_staging_image (uploader, data, width, height, stride);
else
return gsk_vulkan_image_new_from_data_directly (uploader, data, width, height, stride);
diff --git a/gsk/vulkan/gskvulkanrender.c b/gsk/vulkan/gskvulkanrender.c
index 5d8b241..66291b9 100644
--- a/gsk/vulkan/gskvulkanrender.c
+++ b/gsk/vulkan/gskvulkanrender.c
@@ -581,7 +581,7 @@ gsk_vulkan_render_draw (GskVulkanRender *self)
GList *l;
#ifdef G_ENABLE_DEBUG
- if (GSK_RENDER_MODE_CHECK (SYNC))
+ if (GSK_RENDERER_DEBUG_CHECK (self->renderer, SYNC))
gsk_profiler_timer_begin (gsk_renderer_get_profiler (self->renderer), self->gpu_time_timer);
#endif
@@ -612,7 +612,8 @@ gsk_vulkan_render_draw (GskVulkanRender *self)
l->next != NULL ? VK_NULL_HANDLE : self->fence);
}
- if (GSK_RENDER_MODE_CHECK (SYNC))
+#ifdef G_ENABLE_DEBUG
+ if (GSK_RENDERER_DEBUG_CHECK (self->renderer, SYNC))
{
GskProfiler *profiler;
gint64 gpu_time;
@@ -627,6 +628,7 @@ gsk_vulkan_render_draw (GskVulkanRender *self)
gpu_time = gsk_profiler_timer_end (profiler, self->gpu_time_timer);
gsk_profiler_timer_set (profiler, self->gpu_time_timer, gpu_time);
}
+#endif
}
GdkTexture *
diff --git a/gsk/vulkan/gskvulkanrenderer.c b/gsk/vulkan/gskvulkanrenderer.c
index e6b180a..0a0cdab 100644
--- a/gsk/vulkan/gskvulkanrenderer.c
+++ b/gsk/vulkan/gskvulkanrenderer.c
@@ -291,7 +291,7 @@ gsk_vulkan_renderer_init (GskVulkanRenderer *self)
self->profile_counters.texture_pixels = gsk_profiler_add_counter (profiler, "texture-pixels", "Texture
pixels", TRUE);
self->profile_timers.cpu_time = gsk_profiler_add_timer (profiler, "cpu-time", "CPU time", FALSE, TRUE);
- if (GSK_RENDER_MODE_CHECK (SYNC))
+ 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);
#endif
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]