All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/8] Ui 20180308 patches
@ 2018-03-08  8:32 Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 1/8] make: switch language file build to be gtk module aware Gerd Hoffmann
                   ` (8 more replies)
  0 siblings, 9 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

The following changes since commit f32408f3b472a088467474ab152be3b6285b2d7b:

  misc: don't use hwaddr as a type in trace events (2018-03-06 14:24:30 +0000)

are available in the git repository at:

  git://git.kraxel.org/qemu tags/ui-20180308-pull-request

for you to fetch changes up to 5c71cfd94d46a9c2e09d041dcc82b297efab2b57:

  ui/gtk-egl: add cursor_dmabuf support (2018-03-08 08:59:01 +0100)

----------------------------------------------------------------
gtk: add dmabuf support. cleanups, i18n fix.
sdl: workaround sdl 2.0.8 header bug,

----------------------------------------------------------------

Bruce Rogers (1):
  make: switch language file build to be gtk module aware

Gerd Hoffmann (7):
  sdl: workaround bug in sdl 2.0.8 headers
  ui/gtk: make GtkGlArea usage a runtime option
  ui/gtk: group gtk.mo declarations in Makefile
  ui/opengl: Makefile cleanup
  ui/gtk: use GtkGlArea on wayland only
  ui/gtk-egl: add scanout_dmabuf support
  ui/gtk-egl: add cursor_dmabuf support

 configure        |  1 +
 Makefile         |  2 +-
 include/ui/gtk.h | 14 ++++++++++++
 ui/gtk-egl.c     | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 ui/gtk.c         | 68 +++++++++++++++++++++++++++++++++-----------------------
 ui/Makefile.objs | 25 +++++++++++----------
 6 files changed, 131 insertions(+), 42 deletions(-)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PULL 1/8] make: switch language file build to be gtk module aware
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
@ 2018-03-08  8:32 ` Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 2/8] sdl: workaround bug in sdl 2.0.8 headers Gerd Hoffmann
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Bruce Rogers

From: Bruce Rogers <brogers@suse.com>

Now that gtk support builds as a module, CONFIG_GTK changed from
y to m. Adjust Makefile correspondingly.

Signed-off-by: Bruce Rogers <brogers@suse.com>
Message-id: 20180307155517.32570-1-brogers@suse.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 9a75c48ae0..026fa17dc0 100644
--- a/Makefile
+++ b/Makefile
@@ -851,7 +851,7 @@ ifneq ($(BLOBS),)
 		$(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(qemu_datadir)"; \
 	done
 endif
-ifeq ($(CONFIG_GTK),y)
+ifeq ($(CONFIG_GTK),m)
 	$(MAKE) -C po $@
 endif
 	$(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/keymaps"
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PULL 2/8] sdl: workaround bug in sdl 2.0.8 headers
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 1/8] make: switch language file build to be gtk module aware Gerd Hoffmann
@ 2018-03-08  8:32 ` Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 3/8] ui/gtk: make GtkGlArea usage a runtime option Gerd Hoffmann
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892087

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-id: 20180307154258.9313-1-kraxel@redhat.com
---
 configure | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configure b/configure
index 6f3921c02a..86240f97ac 100755
--- a/configure
+++ b/configure
@@ -2874,6 +2874,7 @@ if test "$sdl" != "no" ; then
 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
 EOF
   sdl_cflags=$($sdlconfig --cflags 2>/dev/null)
+  sdl_cflags="$sdl_cflags -Wno-undef"  # workaround 2.0.8 bug
   if test "$static" = "yes" ; then
     if $pkg_config $sdlname --exists; then
       sdl_libs=$($pkg_config $sdlname --static --libs 2>/dev/null)
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PULL 3/8] ui/gtk: make GtkGlArea usage a runtime option
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 1/8] make: switch language file build to be gtk module aware Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 2/8] sdl: workaround bug in sdl 2.0.8 headers Gerd Hoffmann
@ 2018-03-08  8:32 ` Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 4/8] ui/gtk: group gtk.mo declarations in Makefile Gerd Hoffmann
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

Compile in both gtk-egl and gtk-gl-area, then allow to choose at runtime
instead of compile time which opengl variant we want use.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306090951.22932-2-kraxel@redhat.com
---
 include/ui/gtk.h |  2 ++
 ui/gtk.c         | 53 +++++++++++++++++++++++++++++------------------------
 ui/Makefile.objs |  3 +--
 3 files changed, 32 insertions(+), 26 deletions(-)

diff --git a/include/ui/gtk.h b/include/ui/gtk.h
index 849c896eef..f6dafc5961 100644
--- a/include/ui/gtk.h
+++ b/include/ui/gtk.h
@@ -90,6 +90,8 @@ typedef struct VirtualConsole {
     };
 } VirtualConsole;
 
+extern bool gtk_use_gl_area;
+
 /* ui/gtk.c */
 void gd_update_windowsize(VirtualConsole *vc);
 
diff --git a/ui/gtk.c b/ui/gtk.c
index 563cff32b8..856429a02f 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -243,6 +243,8 @@ typedef struct VCChardev {
 #define TYPE_CHARDEV_VC "chardev-vc"
 #define VC_CHARDEV(obj) OBJECT_CHECK(VCChardev, (obj), TYPE_CHARDEV_VC)
 
+bool gtk_use_gl_area;
+
 static void gd_grab_pointer(VirtualConsole *vc, const char *reason);
 static void gd_ungrab_pointer(GtkDisplayState *s);
 static void gd_grab_keyboard(VirtualConsole *vc, const char *reason);
@@ -453,7 +455,7 @@ static void gd_update_full_redraw(VirtualConsole *vc)
     int ww, wh;
     gdk_drawable_get_size(gtk_widget_get_window(area), &ww, &wh);
 #if defined(CONFIG_GTK_GL)
-    if (vc->gfx.gls) {
+    if (vc->gfx.gls && gtk_use_gl_area) {
         gtk_gl_area_queue_render(GTK_GL_AREA(vc->gfx.drawing_area));
         return;
     }
@@ -725,7 +727,7 @@ static const DisplayChangeListenerOps dcl_gl_area_ops = {
     .dpy_gl_update           = gd_gl_area_scanout_flush,
 };
 
-#else
+#endif /* CONFIG_GTK_GL */
 
 static const DisplayChangeListenerOps dcl_egl_ops = {
     .dpy_name             = "gtk-egl",
@@ -745,7 +747,6 @@ static const DisplayChangeListenerOps dcl_egl_ops = {
     .dpy_gl_update           = gd_egl_scanout_flush,
 };
 
-#endif /* CONFIG_GTK_GL */
 #endif /* CONFIG_OPENGL */
 
 /** QEMU Events **/
@@ -844,13 +845,13 @@ static gboolean gd_draw_event(GtkWidget *widget, cairo_t *cr, void *opaque)
 
 #if defined(CONFIG_OPENGL)
     if (vc->gfx.gls) {
-#if defined(CONFIG_GTK_GL)
-        /* invoke render callback please */
-        return FALSE;
-#else
-        gd_egl_draw(vc);
-        return TRUE;
-#endif
+        if (gtk_use_gl_area) {
+            /* invoke render callback please */
+            return FALSE;
+        } else {
+            gd_egl_draw(vc);
+            return TRUE;
+        }
     }
 #endif
 
@@ -1993,7 +1994,7 @@ static void gd_connect_vc_gfx_signals(VirtualConsole *vc)
     g_signal_connect(vc->gfx.drawing_area, "draw",
                      G_CALLBACK(gd_draw_event), vc);
 #if defined(CONFIG_GTK_GL)
-    if (display_opengl) {
+    if (gtk_use_gl_area) {
         /* wire up GtkGlArea events */
         g_signal_connect(vc->gfx.drawing_area, "render",
                          G_CALLBACK(gd_render_event), vc);
@@ -2116,26 +2117,29 @@ static GSList *gd_vc_gfx_init(GtkDisplayState *s, VirtualConsole *vc,
 #if defined(CONFIG_OPENGL)
     if (display_opengl) {
 #if defined(CONFIG_GTK_GL)
-        vc->gfx.drawing_area = gtk_gl_area_new();
-        vc->gfx.dcl.ops = &dcl_gl_area_ops;
-#else
-        vc->gfx.drawing_area = gtk_drawing_area_new();
-        /*
-         * gtk_widget_set_double_buffered() was deprecated in 3.14.
-         * It is required for opengl rendering on X11 though.  A
-         * proper replacement (native opengl support) is only
-         * available in 3.16+.  Silence the warning if possible.
-         */
+        if (gtk_use_gl_area) {
+            vc->gfx.drawing_area = gtk_gl_area_new();
+            vc->gfx.dcl.ops = &dcl_gl_area_ops;
+        } else
+#endif /* CONFIG_GTK_GL */
+        {
+            vc->gfx.drawing_area = gtk_drawing_area_new();
+            /*
+             * gtk_widget_set_double_buffered() was deprecated in 3.14.
+             * It is required for opengl rendering on X11 though.  A
+             * proper replacement (native opengl support) is only
+             * available in 3.16+.  Silence the warning if possible.
+             */
 #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #endif
-        gtk_widget_set_double_buffered(vc->gfx.drawing_area, FALSE);
+            gtk_widget_set_double_buffered(vc->gfx.drawing_area, FALSE);
 #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
 #pragma GCC diagnostic pop
 #endif
-        vc->gfx.dcl.ops = &dcl_egl_ops;
-#endif /* CONFIG_GTK_GL */
+            vc->gfx.dcl.ops = &dcl_egl_ops;
+        }
     } else
 #endif
     {
@@ -2437,6 +2441,7 @@ static void early_gtk_display_init(DisplayOptions *opts)
     if (opts->has_gl && opts->gl) {
 #if defined(CONFIG_OPENGL)
 #if defined(CONFIG_GTK_GL)
+        gtk_use_gl_area = true;
         gtk_gl_area_init();
 #else
         gtk_egl_init();
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index dcd54a5287..d1203bb80a 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -52,11 +52,10 @@ common-obj-y += egl-context.o
 common-obj-$(CONFIG_OPENGL_DMABUF) += egl-headless.o
 ifeq ($(CONFIG_GTK_GL),y)
 gtk.mo-objs += gtk-gl-area.o
-else
+endif
 gtk.mo-objs += gtk-egl.o
 gtk.mo-libs += $(OPENGL_LIBS)
 endif
-endif
 
 shader.o-libs += $(OPENGL_LIBS)
 console-gl.o-libs += $(OPENGL_LIBS)
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PULL 4/8] ui/gtk: group gtk.mo declarations in Makefile
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
                   ` (2 preceding siblings ...)
  2018-03-08  8:32 ` [Qemu-devel] [PULL 3/8] ui/gtk: make GtkGlArea usage a runtime option Gerd Hoffmann
@ 2018-03-08  8:32 ` Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 5/8] ui/opengl: Makefile cleanup Gerd Hoffmann
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306090951.22932-3-kraxel@redhat.com
---
 ui/Makefile.objs | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index d1203bb80a..b560ee12c3 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -38,6 +38,13 @@ common-obj-$(CONFIG_GTK) += gtk.mo
 gtk.mo-objs := gtk.o
 gtk.mo-cflags := $(GTK_CFLAGS) $(VTE_CFLAGS)
 gtk.mo-libs := $(GTK_LIBS) $(VTE_LIBS)
+ifeq ($(CONFIG_OPENGL),y)
+gtk.mo-objs += gtk-egl.o
+gtk.mo-libs += $(OPENGL_LIBS)
+ifeq ($(CONFIG_GTK_GL),y)
+gtk.mo-objs += gtk-gl-area.o
+endif
+endif
 
 common-obj-$(CONFIG_CURSES) += curses.mo
 curses.mo-objs := curses.o
@@ -50,11 +57,6 @@ common-obj-y += console-gl.o
 common-obj-y += egl-helpers.o
 common-obj-y += egl-context.o
 common-obj-$(CONFIG_OPENGL_DMABUF) += egl-headless.o
-ifeq ($(CONFIG_GTK_GL),y)
-gtk.mo-objs += gtk-gl-area.o
-endif
-gtk.mo-objs += gtk-egl.o
-gtk.mo-libs += $(OPENGL_LIBS)
 endif
 
 shader.o-libs += $(OPENGL_LIBS)
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PULL 5/8] ui/opengl: Makefile cleanup
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
                   ` (3 preceding siblings ...)
  2018-03-08  8:32 ` [Qemu-devel] [PULL 4/8] ui/gtk: group gtk.mo declarations in Makefile Gerd Hoffmann
@ 2018-03-08  8:32 ` Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 6/8] ui/gtk: use GtkGlArea on wayland only Gerd Hoffmann
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

With gtk.mo bits moved away we don't need the ifeq any more.
Also add missing opengl libs for some objects.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306090951.22932-4-kraxel@redhat.com
---
 ui/Makefile.objs | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index b560ee12c3..cc784346cb 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -51,14 +51,14 @@ curses.mo-objs := curses.o
 curses.mo-cflags := $(CURSES_CFLAGS)
 curses.mo-libs := $(CURSES_LIBS)
 
-ifeq ($(CONFIG_OPENGL),y)
-common-obj-y += shader.o
-common-obj-y += console-gl.o
-common-obj-y += egl-helpers.o
-common-obj-y += egl-context.o
+common-obj-$(CONFIG_OPENGL) += shader.o
+common-obj-$(CONFIG_OPENGL) += console-gl.o
+common-obj-$(CONFIG_OPENGL) += egl-helpers.o
+common-obj-$(CONFIG_OPENGL) += egl-context.o
 common-obj-$(CONFIG_OPENGL_DMABUF) += egl-headless.o
-endif
 
 shader.o-libs += $(OPENGL_LIBS)
 console-gl.o-libs += $(OPENGL_LIBS)
 egl-helpers.o-libs += $(OPENGL_LIBS)
+egl-context.o-libs += $(OPENGL_LIBS)
+egl-headless.o-libs += $(OPENGL_LIBS)
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PULL 6/8] ui/gtk: use GtkGlArea on wayland only
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
                   ` (4 preceding siblings ...)
  2018-03-08  8:32 ` [Qemu-devel] [PULL 5/8] ui/opengl: Makefile cleanup Gerd Hoffmann
@ 2018-03-08  8:32 ` Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 7/8] ui/gtk-egl: add scanout_dmabuf support Gerd Hoffmann
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

For dma-buf support we need a egl context.  The gtk x11 backend uses glx
contexts though.  We can't use the GtkGlArea widget on x11 because of
that, so use our own gtk-egl code instead.  wayland continues to use
the GtkGlArea widget.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306090951.22932-5-kraxel@redhat.com
---
 ui/gtk.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/ui/gtk.c b/ui/gtk.c
index 856429a02f..4a1622b887 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -2440,12 +2440,15 @@ static void early_gtk_display_init(DisplayOptions *opts)
     assert(opts->type == DISPLAY_TYPE_GTK);
     if (opts->has_gl && opts->gl) {
 #if defined(CONFIG_OPENGL)
-#if defined(CONFIG_GTK_GL)
-        gtk_use_gl_area = true;
-        gtk_gl_area_init();
-#else
-        gtk_egl_init();
+#if defined(CONFIG_GTK_GL) && defined(GDK_WINDOWING_WAYLAND)
+        if (GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) {
+            gtk_use_gl_area = true;
+            gtk_gl_area_init();
+        }
 #endif
+        {
+            gtk_egl_init();
+        }
 #endif
     }
 
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PULL 7/8] ui/gtk-egl: add scanout_dmabuf support
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
                   ` (5 preceding siblings ...)
  2018-03-08  8:32 ` [Qemu-devel] [PULL 6/8] ui/gtk: use GtkGlArea on wayland only Gerd Hoffmann
@ 2018-03-08  8:32 ` Gerd Hoffmann
  2018-03-08  8:32 ` [Qemu-devel] [PULL 8/8] ui/gtk-egl: add cursor_dmabuf support Gerd Hoffmann
  2018-03-08 17:27 ` [Qemu-devel] [PULL 0/8] Ui 20180308 patches Peter Maydell
  8 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

Add support for dmabuf scanouts to gtk-egl.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306090951.22932-6-kraxel@redhat.com
---
 include/ui/gtk.h |  4 ++++
 ui/gtk-egl.c     | 23 +++++++++++++++++++++++
 ui/gtk.c         |  2 ++
 3 files changed, 29 insertions(+)

diff --git a/include/ui/gtk.h b/include/ui/gtk.h
index f6dafc5961..84c992c227 100644
--- a/include/ui/gtk.h
+++ b/include/ui/gtk.h
@@ -113,6 +113,10 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl,
                             uint32_t backing_height,
                             uint32_t x, uint32_t y,
                             uint32_t w, uint32_t h);
+void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
+                           QemuDmaBuf *dmabuf);
+void gd_egl_release_dmabuf(DisplayChangeListener *dcl,
+                           QemuDmaBuf *dmabuf);
 void gd_egl_scanout_flush(DisplayChangeListener *dcl,
                           uint32_t x, uint32_t y, uint32_t w, uint32_t h);
 void gtk_egl_init(void);
diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c
index eb86c26a1d..2c83c22d04 100644
--- a/ui/gtk-egl.c
+++ b/ui/gtk-egl.c
@@ -194,6 +194,29 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl,
                          backing_id, false);
 }
 
+void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
+                           QemuDmaBuf *dmabuf)
+{
+#ifdef CONFIG_OPENGL_DMABUF
+    egl_dmabuf_import_texture(dmabuf);
+    if (!dmabuf->texture) {
+        return;
+    }
+
+    gd_egl_scanout_texture(dcl, dmabuf->texture,
+                           false, dmabuf->width, dmabuf->height,
+                           0, 0, dmabuf->width, dmabuf->height);
+#endif
+}
+
+void gd_egl_release_dmabuf(DisplayChangeListener *dcl,
+                           QemuDmaBuf *dmabuf)
+{
+#ifdef CONFIG_OPENGL_DMABUF
+    egl_dmabuf_release_texture(dmabuf);
+#endif
+}
+
 void gd_egl_scanout_flush(DisplayChangeListener *dcl,
                           uint32_t x, uint32_t y, uint32_t w, uint32_t h)
 {
diff --git a/ui/gtk.c b/ui/gtk.c
index 4a1622b887..cf2061d716 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -744,6 +744,8 @@ static const DisplayChangeListenerOps dcl_egl_ops = {
     .dpy_gl_ctx_get_current  = qemu_egl_get_current_context,
     .dpy_gl_scanout_disable  = gd_egl_scanout_disable,
     .dpy_gl_scanout_texture  = gd_egl_scanout_texture,
+    .dpy_gl_scanout_dmabuf   = gd_egl_scanout_dmabuf,
+    .dpy_gl_release_dmabuf   = gd_egl_release_dmabuf,
     .dpy_gl_update           = gd_egl_scanout_flush,
 };
 
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PULL 8/8] ui/gtk-egl: add cursor_dmabuf support
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
                   ` (6 preceding siblings ...)
  2018-03-08  8:32 ` [Qemu-devel] [PULL 7/8] ui/gtk-egl: add scanout_dmabuf support Gerd Hoffmann
@ 2018-03-08  8:32 ` Gerd Hoffmann
  2018-03-08 17:27 ` [Qemu-devel] [PULL 0/8] Ui 20180308 patches Peter Maydell
  8 siblings, 0 replies; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-08  8:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann

Add support for cursor dmabufs to gtk-egl.  Just blend in the cursor
(if we have one) when rendering the dmabuf.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180306090951.22932-7-kraxel@redhat.com
---
 include/ui/gtk.h |  8 ++++++++
 ui/gtk-egl.c     | 40 +++++++++++++++++++++++++++++++++++++++-
 ui/gtk.c         |  2 ++
 3 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/include/ui/gtk.h b/include/ui/gtk.h
index 84c992c227..2922fc64b2 100644
--- a/include/ui/gtk.h
+++ b/include/ui/gtk.h
@@ -54,6 +54,9 @@ typedef struct VirtualGfxConsole {
     int x, y, w, h;
     egl_fb guest_fb;
     egl_fb win_fb;
+    egl_fb cursor_fb;
+    int cursor_x;
+    int cursor_y;
     bool y0_top;
     bool scanout_mode;
 #endif
@@ -115,6 +118,11 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl,
                             uint32_t w, uint32_t h);
 void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
                            QemuDmaBuf *dmabuf);
+void gd_egl_cursor_dmabuf(DisplayChangeListener *dcl,
+                          QemuDmaBuf *dmabuf, bool have_hot,
+                          uint32_t hot_x, uint32_t hot_y);
+void gd_egl_cursor_position(DisplayChangeListener *dcl,
+                            uint32_t pos_x, uint32_t pos_y);
 void gd_egl_release_dmabuf(DisplayChangeListener *dcl,
                            QemuDmaBuf *dmabuf);
 void gd_egl_scanout_flush(DisplayChangeListener *dcl,
diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c
index 2c83c22d04..9390c6762e 100644
--- a/ui/gtk-egl.c
+++ b/ui/gtk-egl.c
@@ -19,6 +19,7 @@
 #include "ui/console.h"
 #include "ui/gtk.h"
 #include "ui/egl-helpers.h"
+#include "ui/shader.h"
 
 #include "sysemu/sysemu.h"
 
@@ -209,6 +210,35 @@ void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
 #endif
 }
 
+void gd_egl_cursor_dmabuf(DisplayChangeListener *dcl,
+                          QemuDmaBuf *dmabuf, bool have_hot,
+                          uint32_t hot_x, uint32_t hot_y)
+{
+#ifdef CONFIG_OPENGL_DMABUF
+    VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
+
+    if (dmabuf) {
+        egl_dmabuf_import_texture(dmabuf);
+        if (!dmabuf->texture) {
+            return;
+        }
+        egl_fb_setup_for_tex(&vc->gfx.cursor_fb, dmabuf->width, dmabuf->height,
+                             dmabuf->texture, false);
+    } else {
+        egl_fb_destroy(&vc->gfx.cursor_fb);
+    }
+#endif
+}
+
+void gd_egl_cursor_position(DisplayChangeListener *dcl,
+                            uint32_t pos_x, uint32_t pos_y)
+{
+    VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
+
+    vc->gfx.cursor_x = pos_x;
+    vc->gfx.cursor_y = pos_y;
+}
+
 void gd_egl_release_dmabuf(DisplayChangeListener *dcl,
                            QemuDmaBuf *dmabuf)
 {
@@ -237,7 +267,15 @@ void gd_egl_scanout_flush(DisplayChangeListener *dcl,
     window = gtk_widget_get_window(vc->gfx.drawing_area);
     gdk_drawable_get_size(window, &ww, &wh);
     egl_fb_setup_default(&vc->gfx.win_fb, ww, wh);
-    egl_fb_blit(&vc->gfx.win_fb, &vc->gfx.guest_fb, !vc->gfx.y0_top);
+    if (vc->gfx.cursor_fb.texture) {
+        egl_texture_blit(vc->gfx.gls, &vc->gfx.win_fb, &vc->gfx.guest_fb,
+                         vc->gfx.y0_top);
+        egl_texture_blend(vc->gfx.gls, &vc->gfx.win_fb, &vc->gfx.cursor_fb,
+                          vc->gfx.y0_top,
+                          vc->gfx.cursor_x, vc->gfx.cursor_y);
+    } else {
+        egl_fb_blit(&vc->gfx.win_fb, &vc->gfx.guest_fb, !vc->gfx.y0_top);
+    }
 
     eglSwapBuffers(qemu_egl_display, vc->gfx.esurface);
 }
diff --git a/ui/gtk.c b/ui/gtk.c
index cf2061d716..ef5bc42094 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -745,6 +745,8 @@ static const DisplayChangeListenerOps dcl_egl_ops = {
     .dpy_gl_scanout_disable  = gd_egl_scanout_disable,
     .dpy_gl_scanout_texture  = gd_egl_scanout_texture,
     .dpy_gl_scanout_dmabuf   = gd_egl_scanout_dmabuf,
+    .dpy_gl_cursor_dmabuf    = gd_egl_cursor_dmabuf,
+    .dpy_gl_cursor_position  = gd_egl_cursor_position,
     .dpy_gl_release_dmabuf   = gd_egl_release_dmabuf,
     .dpy_gl_update           = gd_egl_scanout_flush,
 };
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
                   ` (7 preceding siblings ...)
  2018-03-08  8:32 ` [Qemu-devel] [PULL 8/8] ui/gtk-egl: add cursor_dmabuf support Gerd Hoffmann
@ 2018-03-08 17:27 ` Peter Maydell
  2018-03-09  6:52   ` Gerd Hoffmann
  8 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2018-03-08 17:27 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: QEMU Developers

On 8 March 2018 at 08:32, Gerd Hoffmann <kraxel@redhat.com> wrote:
> The following changes since commit f32408f3b472a088467474ab152be3b6285b2d7b:
>
>   misc: don't use hwaddr as a type in trace events (2018-03-06 14:24:30 +0000)
>
> are available in the git repository at:
>
>   git://git.kraxel.org/qemu tags/ui-20180308-pull-request
>
> for you to fetch changes up to 5c71cfd94d46a9c2e09d041dcc82b297efab2b57:
>
>   ui/gtk-egl: add cursor_dmabuf support (2018-03-08 08:59:01 +0100)
>
> ----------------------------------------------------------------
> gtk: add dmabuf support. cleanups, i18n fix.
> sdl: workaround sdl 2.0.8 header bug,
>
> ----------------------------------------------------------------
>
> Bruce Rogers (1):
>   make: switch language file build to be gtk module aware
>
> Gerd Hoffmann (7):
>   sdl: workaround bug in sdl 2.0.8 headers
>   ui/gtk: make GtkGlArea usage a runtime option
>   ui/gtk: group gtk.mo declarations in Makefile
>   ui/opengl: Makefile cleanup
>   ui/gtk: use GtkGlArea on wayland only
>   ui/gtk-egl: add scanout_dmabuf support
>   ui/gtk-egl: add cursor_dmabuf support
>

Hi. This gives me a new warning on FreeBSD:

  CC      ui/gtk.o
/root/qemu/ui/gtk.c:2141:13: warning: 'gtk_widget_set_double_buffered'
is deprecated [-Wdeprecated-declarations]
            gtk_widget_set_double_buffered(vc->gfx.drawing_area, FALSE);
            ^
/usr/local/include/gtk-3.0/gtk/gtkwidget.h:876:23: note:
'gtk_widget_set_double_buffered' has been explicitly marked deprecated
here
void                  gtk_widget_set_double_buffered    (GtkWidget    *widget,
                      ^
1 warning generated.


thanks
-- PMM

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-08 17:27 ` [Qemu-devel] [PULL 0/8] Ui 20180308 patches Peter Maydell
@ 2018-03-09  6:52   ` Gerd Hoffmann
  2018-03-09  7:50     ` Gerd Hoffmann
  0 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-09  6:52 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

  Hi,

> Hi. This gives me a new warning on FreeBSD:
> 
>   CC      ui/gtk.o
> /root/qemu/ui/gtk.c:2141:13: warning: 'gtk_widget_set_double_buffered'
> is deprecated [-Wdeprecated-declarations]
>             gtk_widget_set_double_buffered(vc->gfx.drawing_area, FALSE);
>             ^
> /usr/local/include/gtk-3.0/gtk/gtkwidget.h:876:23: note:
> 'gtk_widget_set_double_buffered' has been explicitly marked deprecated
> here
> void                  gtk_widget_set_double_buffered    (GtkWidget    *widget,

Known issue.  The gtk-egl.c code needs this even though it is
deprecated.  We have a diagnostic pragma in place for gcc, seems that
doesn't work on freebsd because it builds with clang not gcc.

Hmm, quick googling shows clang seems to support this too.
https://clang.llvm.org/docs/UsersManual.html#pragma-gcc-diagnostic

/me looks puzzled.  Test for CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE not
working properly on freebsd?

Seems clang doesn't support a pragma used in qemu, config.log says:

error: unknown warning group '-Wunused-but-set-variable'.

Maybe I should move the code to a separate source file so it can be
built with different compiler flags, without needing #pragma?  I don't
feel like building all gtk code with -Wno-deprecated-declarations ...

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-09  6:52   ` Gerd Hoffmann
@ 2018-03-09  7:50     ` Gerd Hoffmann
  2018-03-09  8:46       ` Thomas Huth
  0 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-09  7:50 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

  Hi,

> Maybe I should move the code to a separate source file so it can be
> built with different compiler flags, without needing #pragma?  I don't
> feel like building all gtk code with -Wno-deprecated-declarations ...

Hmm, that idea doesn't fly, seems per-object cflags don't work for
object files which get linked into a module.

Other ideas anyone?

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-09  7:50     ` Gerd Hoffmann
@ 2018-03-09  8:46       ` Thomas Huth
  2018-03-09  9:15         ` Gerd Hoffmann
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Huth @ 2018-03-09  8:46 UTC (permalink / raw)
  To: Gerd Hoffmann, Peter Maydell; +Cc: QEMU Developers

On 09.03.2018 08:50, Gerd Hoffmann wrote:
>   Hi,
> 
>> Maybe I should move the code to a separate source file so it can be
>> built with different compiler flags, without needing #pragma?  I don't
>> feel like building all gtk code with -Wno-deprecated-declarations ...
> 
> Hmm, that idea doesn't fly, seems per-object cflags don't work for
> object files which get linked into a module.
> 
> Other ideas anyone?

Maybe simply remove the '#pragma GCC diagnostic ignored
"-Wunused-but-set-variable"' from the configure test and change
util/coroutine-ucontext.c:

diff a/util/coroutine-ucontext.c b/util/coroutine-ucontext.c
--- a/util/coroutine-ucontext.c
+++ b/util/coroutine-ucontext.c
@@ -170,7 +170,7 @@ Coroutine *qemu_coroutine_new(void)
 }

 #ifdef CONFIG_VALGRIND_H
-#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
+#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && !defined(__clang__)
 /* Work around an unused variable in the valgrind.h macro... */
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
@@ -179,7 +179,7 @@ static inline void
valgrind_stack_deregister(CoroutineUContext *co)
 {
     VALGRIND_STACK_DEREGISTER(co->valgrind_stack_id);
 }
-#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
+#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && !defined(__clang__)
 #pragma GCC diagnostic pop
 #endif
 #endif


?

 Thomas

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-09  8:46       ` Thomas Huth
@ 2018-03-09  9:15         ` Gerd Hoffmann
  2018-03-09  9:44           ` Gerd Hoffmann
  0 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-09  9:15 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Peter Maydell, QEMU Developers

On Fri, Mar 09, 2018 at 09:46:44AM +0100, Thomas Huth wrote:
> On 09.03.2018 08:50, Gerd Hoffmann wrote:
> >   Hi,
> > 
> >> Maybe I should move the code to a separate source file so it can be
> >> built with different compiler flags, without needing #pragma?  I don't
> >> feel like building all gtk code with -Wno-deprecated-declarations ...
> > 
> > Hmm, that idea doesn't fly, seems per-object cflags don't work for
> > object files which get linked into a module.
> > 
> > Other ideas anyone?
> 
> Maybe simply remove the '#pragma GCC diagnostic ignored
> "-Wunused-but-set-variable"' from the configure test and change
> util/coroutine-ucontext.c:

I'll try.  Will probably have the effect that freebsd builds with
-Werror then (which is now turned off by configure due to missing
pragma support), which might trigger more issues ...

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-09  9:15         ` Gerd Hoffmann
@ 2018-03-09  9:44           ` Gerd Hoffmann
  2018-03-09  9:48             ` Thomas Huth
  0 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-09  9:44 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Peter Maydell, QEMU Developers

On Fri, Mar 09, 2018 at 10:15:33AM +0100, Gerd Hoffmann wrote:
> On Fri, Mar 09, 2018 at 09:46:44AM +0100, Thomas Huth wrote:
> > On 09.03.2018 08:50, Gerd Hoffmann wrote:
> > >   Hi,
> > > 
> > >> Maybe I should move the code to a separate source file so it can be
> > >> built with different compiler flags, without needing #pragma?  I don't
> > >> feel like building all gtk code with -Wno-deprecated-declarations ...
> > > 
> > > Hmm, that idea doesn't fly, seems per-object cflags don't work for
> > > object files which get linked into a module.
> > > 
> > > Other ideas anyone?
> > 
> > Maybe simply remove the '#pragma GCC diagnostic ignored
> > "-Wunused-but-set-variable"' from the configure test and change
> > util/coroutine-ucontext.c:
> 
> I'll try.  Will probably have the effect that freebsd builds with
> -Werror then (which is now turned off by configure due to missing
> pragma support), which might trigger more issues ...

Well, guessed almost right.  -Werror is enabled on linux only, so
freebsd builds do not fail.  But clang builds on linux fail, due to a
bunch of warnings (now errors) about unaligned access to struct members.

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-09  9:44           ` Gerd Hoffmann
@ 2018-03-09  9:48             ` Thomas Huth
  2018-03-09 10:41               ` Gerd Hoffmann
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Huth @ 2018-03-09  9:48 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Peter Maydell, QEMU Developers

On 09.03.2018 10:44, Gerd Hoffmann wrote:
> On Fri, Mar 09, 2018 at 10:15:33AM +0100, Gerd Hoffmann wrote:
>> On Fri, Mar 09, 2018 at 09:46:44AM +0100, Thomas Huth wrote:
>>> On 09.03.2018 08:50, Gerd Hoffmann wrote:
>>>>   Hi,
>>>>
>>>>> Maybe I should move the code to a separate source file so it can be
>>>>> built with different compiler flags, without needing #pragma?  I don't
>>>>> feel like building all gtk code with -Wno-deprecated-declarations ...
>>>>
>>>> Hmm, that idea doesn't fly, seems per-object cflags don't work for
>>>> object files which get linked into a module.
>>>>
>>>> Other ideas anyone?
>>>
>>> Maybe simply remove the '#pragma GCC diagnostic ignored
>>> "-Wunused-but-set-variable"' from the configure test and change
>>> util/coroutine-ucontext.c:
>>
>> I'll try.  Will probably have the effect that freebsd builds with
>> -Werror then (which is now turned off by configure due to missing
>> pragma support), which might trigger more issues ...
> 
> Well, guessed almost right.  -Werror is enabled on linux only, so
> freebsd builds do not fail.  But clang builds on linux fail, due to a
> bunch of warnings (now errors) about unaligned access to struct members.

Ugh, this is getting messy ... could you maybe turn them back into
warnings again with -Wno-error=... when compiling with clang?

 Thomas

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-09  9:48             ` Thomas Huth
@ 2018-03-09 10:41               ` Gerd Hoffmann
  2018-03-09 10:46                 ` Peter Maydell
  0 siblings, 1 reply; 18+ messages in thread
From: Gerd Hoffmann @ 2018-03-09 10:41 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Peter Maydell, QEMU Developers

On Fri, Mar 09, 2018 at 10:48:13AM +0100, Thomas Huth wrote:
> On 09.03.2018 10:44, Gerd Hoffmann wrote:
> > On Fri, Mar 09, 2018 at 10:15:33AM +0100, Gerd Hoffmann wrote:
> >> On Fri, Mar 09, 2018 at 09:46:44AM +0100, Thomas Huth wrote:
> >>> On 09.03.2018 08:50, Gerd Hoffmann wrote:
> >>>>   Hi,
> >>>>
> >>>>> Maybe I should move the code to a separate source file so it can be
> >>>>> built with different compiler flags, without needing #pragma?  I don't
> >>>>> feel like building all gtk code with -Wno-deprecated-declarations ...
> >>>>
> >>>> Hmm, that idea doesn't fly, seems per-object cflags don't work for
> >>>> object files which get linked into a module.
> >>>>
> >>>> Other ideas anyone?
> >>>
> >>> Maybe simply remove the '#pragma GCC diagnostic ignored
> >>> "-Wunused-but-set-variable"' from the configure test and change
> >>> util/coroutine-ucontext.c:
> >>
> >> I'll try.  Will probably have the effect that freebsd builds with
> >> -Werror then (which is now turned off by configure due to missing
> >> pragma support), which might trigger more issues ...
> > 
> > Well, guessed almost right.  -Werror is enabled on linux only, so
> > freebsd builds do not fail.  But clang builds on linux fail, due to a
> > bunch of warnings (now errors) about unaligned access to struct members.
> 
> Ugh, this is getting messy ... could you maybe turn them back into
> warnings again with -Wno-error=... when compiling with clang?

Well, I can add -Wno-address-of-packed-member to the list of flags
configure tries to use with the compiler.  That gets me past that
warning, but the build will stop on the next then.  qemu simply doesn't
build warning-clean with clang ...

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PULL 0/8] Ui 20180308 patches
  2018-03-09 10:41               ` Gerd Hoffmann
@ 2018-03-09 10:46                 ` Peter Maydell
  0 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2018-03-09 10:46 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Thomas Huth, QEMU Developers

On 9 March 2018 at 10:41, Gerd Hoffmann <kraxel@redhat.com> wrote:
> Well, I can add -Wno-address-of-packed-member to the list of flags
> configure tries to use with the compiler.  That gets me past that
> warning, but the build will stop on the next then.  qemu simply doesn't
> build warning-clean with clang ...

That depends on your clang version. I have 3.8.0 in my test set builds
with -Werror enabled.

At some point we should go through and fix the issues that newer
clang versions warn about.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2018-03-09 10:46 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-08  8:32 [Qemu-devel] [PULL 0/8] Ui 20180308 patches Gerd Hoffmann
2018-03-08  8:32 ` [Qemu-devel] [PULL 1/8] make: switch language file build to be gtk module aware Gerd Hoffmann
2018-03-08  8:32 ` [Qemu-devel] [PULL 2/8] sdl: workaround bug in sdl 2.0.8 headers Gerd Hoffmann
2018-03-08  8:32 ` [Qemu-devel] [PULL 3/8] ui/gtk: make GtkGlArea usage a runtime option Gerd Hoffmann
2018-03-08  8:32 ` [Qemu-devel] [PULL 4/8] ui/gtk: group gtk.mo declarations in Makefile Gerd Hoffmann
2018-03-08  8:32 ` [Qemu-devel] [PULL 5/8] ui/opengl: Makefile cleanup Gerd Hoffmann
2018-03-08  8:32 ` [Qemu-devel] [PULL 6/8] ui/gtk: use GtkGlArea on wayland only Gerd Hoffmann
2018-03-08  8:32 ` [Qemu-devel] [PULL 7/8] ui/gtk-egl: add scanout_dmabuf support Gerd Hoffmann
2018-03-08  8:32 ` [Qemu-devel] [PULL 8/8] ui/gtk-egl: add cursor_dmabuf support Gerd Hoffmann
2018-03-08 17:27 ` [Qemu-devel] [PULL 0/8] Ui 20180308 patches Peter Maydell
2018-03-09  6:52   ` Gerd Hoffmann
2018-03-09  7:50     ` Gerd Hoffmann
2018-03-09  8:46       ` Thomas Huth
2018-03-09  9:15         ` Gerd Hoffmann
2018-03-09  9:44           ` Gerd Hoffmann
2018-03-09  9:48             ` Thomas Huth
2018-03-09 10:41               ` Gerd Hoffmann
2018-03-09 10:46                 ` Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.