diff --git a/docs/reference/gtk/running.md b/docs/reference/gtk/running.md index deb990c84b..0141f53156 100644 --- a/docs/reference/gtk/running.md +++ b/docs/reference/gtk/running.md @@ -288,9 +288,6 @@ A number of options affect behavior instead of logging: `staging` : Use a staging image for texture upload (Vulkan only) -`offload-disable` -: Disable graphics offload to subsurfaces - `cairo` : Overlay error pattern over cairo drawing (finds fallbacks) @@ -358,6 +355,9 @@ disable certain features. `dmabuf` : Disable dmabuf support +`offload` +: Disable graphics offload to subsurfaces + ### `GDK_GL_DISABLE` This variable can be set to a list of values, which cause GDK to diff --git a/gdk/gdk.c b/gdk/gdk.c index 75cbc7ac13..4d0c986838 100644 --- a/gdk/gdk.c +++ b/gdk/gdk.c @@ -150,6 +150,7 @@ static const GdkDebugKey gdk_feature_keys[] = { { "wgl", GDK_FEATURE_WGL, "Disable WGL" }, { "vulkan", GDK_FEATURE_VULKAN, "Disable Vulkan support" }, { "dmabuf", GDK_FEATURE_DMABUF, "Disable dmabuf support" }, + { "offload", GDK_FEATURE_OFFLOAD, "Disable graphics offload" }, }; diff --git a/gdk/gdkdebugprivate.h b/gdk/gdkdebugprivate.h index a3b49ddc6a..c46085fa79 100644 --- a/gdk/gdkdebugprivate.h +++ b/gdk/gdkdebugprivate.h @@ -62,9 +62,10 @@ typedef enum { GDK_FEATURE_WGL = 1 << 5, GDK_FEATURE_VULKAN = 1 << 6, GDK_FEATURE_DMABUF = 1 << 7, + GDK_FEATURE_OFFLOAD = 1 << 8, } GdkFeatures; -#define GDK_ALL_FEATURES ((1 << 8) - 1) +#define GDK_ALL_FEATURES ((1 << 9) - 1) extern guint _gdk_debug_flags; diff --git a/gsk/gskdebug.c b/gsk/gskdebug.c index 22070ec358..76ac24d1d3 100644 --- a/gsk/gskdebug.c +++ b/gsk/gskdebug.c @@ -13,7 +13,6 @@ static const GdkDebugKey gsk_debug_keys[] = { { "geometry", GSK_DEBUG_GEOMETRY, "Show borders (when using cairo)" }, { "full-redraw", GSK_DEBUG_FULL_REDRAW, "Force full redraws" }, { "staging", GSK_DEBUG_STAGING, "Use a staging image for texture upload (Vulkan only)" }, - { "offload-disable", GSK_DEBUG_OFFLOAD_DISABLE, "Disable graphics offload" }, { "cairo", GSK_DEBUG_CAIRO, "Overlay error pattern over Cairo drawing (finds fallbacks)" }, { "occlusion", GSK_DEBUG_OCCLUSION, "Overlay highlight over areas optimized via occlusion culling" }, }; diff --git a/gsk/gskdebugprivate.h b/gsk/gskdebugprivate.h index bbf2910998..38362c099c 100644 --- a/gsk/gskdebugprivate.h +++ b/gsk/gskdebugprivate.h @@ -7,21 +7,20 @@ G_BEGIN_DECLS typedef enum { GSK_DEBUG_RENDERER = 1 << 0, - GSK_DEBUG_SHADERS = 1 << 2, - GSK_DEBUG_VULKAN = 1 << 3, - GSK_DEBUG_FALLBACK = 1 << 4, - GSK_DEBUG_CACHE = 1 << 5, - GSK_DEBUG_VERBOSE = 1 << 6, + GSK_DEBUG_SHADERS = 1 << 1, + GSK_DEBUG_VULKAN = 1 << 2, + GSK_DEBUG_FALLBACK = 1 << 3, + GSK_DEBUG_CACHE = 1 << 4, + GSK_DEBUG_VERBOSE = 1 << 5, /* flags below may affect behavior */ - GSK_DEBUG_GEOMETRY = 1 << 7, - GSK_DEBUG_FULL_REDRAW = 1 << 8, - GSK_DEBUG_STAGING = 1 << 10, - GSK_DEBUG_OFFLOAD_DISABLE = 1 << 11, - GSK_DEBUG_CAIRO = 1 << 12, - GSK_DEBUG_OCCLUSION = 1 << 13, + GSK_DEBUG_GEOMETRY = 1 << 6, + GSK_DEBUG_FULL_REDRAW = 1 << 7, + GSK_DEBUG_STAGING = 1 << 8, + GSK_DEBUG_CAIRO = 1 << 9, + GSK_DEBUG_OCCLUSION = 1 << 10, } GskDebugFlags; -#define GSK_DEBUG_ANY ((1 << 13) - 1) +#define GSK_DEBUG_ANY ((1 << 11) - 1) GskDebugFlags gsk_get_debug_flags (void); void gsk_set_debug_flags (GskDebugFlags flags); diff --git a/gsk/gskrenderer.c b/gsk/gskrenderer.c index b42cf4f820..8535acd7dd 100644 --- a/gsk/gskrenderer.c +++ b/gsk/gskrenderer.c @@ -51,6 +51,7 @@ #include #include #include +#include "gdk/gdkdebugprivate.h" #ifdef GDK_WINDOWING_X11 #include @@ -472,8 +473,7 @@ gsk_renderer_render (GskRenderer *renderer, clip = cairo_region_copy (region); - if (renderer_class->supports_offload && - !GSK_RENDERER_DEBUG_CHECK (renderer, OFFLOAD_DISABLE)) + if (renderer_class->supports_offload && gdk_has_feature (GDK_FEATURE_OFFLOAD)) offload = gsk_offload_new (priv->surface, root, clip); else offload = NULL;