[mutter] clutter/x11: Add API to request video memory purges to be reported
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] clutter/x11: Add API to request video memory purges to be reported
- Date: Tue, 28 Jun 2016 17:54:55 +0000 (UTC)
commit 3691eb6d7027988fdc19560115ac7b51c6166e01
Author: Rui Matos <tiagomatos gmail com>
Date: Tue Jun 21 17:40:15 2016 +0200
clutter/x11: Add API to request video memory purges to be reported
https://bugzilla.gnome.org/show_bug.cgi?id=739178
clutter/clutter/x11/clutter-backend-x11.c | 28 +++++++++++++++++++++++++++-
clutter/clutter/x11/clutter-x11.h | 3 +++
2 files changed, 30 insertions(+), 1 deletions(-)
---
diff --git a/clutter/clutter/x11/clutter-backend-x11.c b/clutter/clutter/x11/clutter-backend-x11.c
index 9bb9c7b..281473e 100644
--- a/clutter/clutter/x11/clutter-backend-x11.c
+++ b/clutter/clutter/x11/clutter-backend-x11.c
@@ -109,6 +109,7 @@ static const gchar *atom_names[] = {
#define N_ATOM_NAMES G_N_ELEMENTS (atom_names)
/* various flags corresponding to pre init setup calls */
+static gboolean _want_reset_on_video_memory_purge = FALSE;
static gboolean _no_xevent_retrieval = FALSE;
static gboolean clutter_enable_xinput = TRUE;
static gboolean clutter_enable_argb = FALSE;
@@ -681,7 +682,8 @@ clutter_backend_x11_get_renderer (ClutterBackend *backend,
/* set the display object we're using */
cogl_xlib_renderer_set_foreign_display (renderer, xdisplay);
-
+ cogl_xlib_renderer_request_reset_on_video_memory_purge (renderer,
+ _want_reset_on_video_memory_purge);
return renderer;
}
@@ -1028,6 +1030,30 @@ clutter_x11_has_event_retrieval (void)
}
/**
+ * clutter_x11_request_reset_on_video_memory_purge:
+ *
+ * If the GL driver supports the NV_robustness_video_memory_purge
+ * extension, this call lets applications request that it gets
+ * initialized, thus allowing cogl_get_graphics_reset_status() to
+ * report memory purged errors if they happen. Checking for the
+ * graphics reset status is the application's responsibility.
+ *
+ * This function can only be called before calling clutter_init().
+ */
+void
+clutter_x11_request_reset_on_video_memory_purge (void)
+{
+ if (_clutter_context_is_initialized ())
+ {
+ g_warning ("%s() can only be used before calling clutter_init()",
+ G_STRFUNC);
+ return;
+ }
+
+ _want_reset_on_video_memory_purge = TRUE;
+}
+
+/**
* clutter_x11_get_default_screen:
*
* Gets the number of the default X Screen object.
diff --git a/clutter/clutter/x11/clutter-x11.h b/clutter/clutter/x11/clutter-x11.h
index e3204f3..bba7ec2 100644
--- a/clutter/clutter/x11/clutter-x11.h
+++ b/clutter/clutter/x11/clutter-x11.h
@@ -161,6 +161,9 @@ gint clutter_x11_event_get_key_group (const ClutterEvent *event);
CLUTTER_AVAILABLE_IN_ALL
guint clutter_x11_event_sequence_get_touch_detail (const ClutterEventSequence *sequence);
+CLUTTER_AVAILABLE_IN_ALL
+void clutter_x11_request_reset_on_video_memory_purge (void);
+
G_END_DECLS
#endif /* __CLUTTER_X11_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]