diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index d78c2e4892..145a0b3879 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -396,87 +396,11 @@ static void virgl_cmd_resource_flush(VirtIOGPU *g, } } -static GLuint virgl_borrow_texture_for_scanout(uint32_t id, bool *y_0_top, - uint32_t *width, - uint32_t *height, - void **d3d_tex2d) -{ - struct virgl_renderer_texture_info info; - int ret; - - memset(&info, 0, sizeof(info)); - - ret = virgl_renderer_borrow_texture_for_scanout(id, &info); - if (ret == -1) { - return 0; - } - - if (y_0_top) { - *y_0_top = info.flags & VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP; - } - - if (width) { - *width = info.width; - } - - if (height) { - *height = info.height; - } - - if (d3d_tex2d) { - *d3d_tex2d = NULL; - } - - return info.tex_id; -} - -#if VIRGL_VERSION_MAJOR >= 1 -static GLuint virgl_borrow_d3d_info_for_scanout(uint32_t id, bool *y_0_top, - uint32_t *width, - uint32_t *height, - void **d3d_tex2d) -{ - int ret; - struct virgl_renderer_resource_info info; - struct virgl_renderer_resource_info_ext ext; - void *d3d_tex2d = NULL; - - memset(&ext, 0, sizeof(ext)); - - ret = virgl_renderer_resource_get_info_ext(id, &ext); - info = ext.base; - d3d_tex2d = ext.d3d_tex2d; - if (ret) { - qemu_log_mask(LOG_GUEST_ERROR, - "%s: illegal resource specified %d\n", - __func__, id); - return 0; - } - - if (y_0_top) { - *y_0_top = info.flags & VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP; - } - - if (width) { - *width = info.width; - } - - if (height) { - *height = info.height; - } - - if (d3d_tex2d) { - *d3d_tex2d = ext.d3d_tex2d; - } - - return info.tex_id; -} -#endif - static void virgl_cmd_set_scanout(VirtIOGPU *g, struct virtio_gpu_ctrl_command *cmd) { struct virtio_gpu_set_scanout ss; + int ret; VIRTIO_GPU_FILL_CMD(ss); trace_virtio_gpu_cmd_set_scanout(ss.scanout_id, ss.resource_id, @@ -491,18 +415,35 @@ static void virgl_cmd_set_scanout(VirtIOGPU *g, g->parent_obj.enable = 1; if (ss.resource_id && ss.r.width && ss.r.height) { - DisplayGLTextureBorrower borrower; + struct virgl_renderer_resource_info info; + void *d3d_tex2d = NULL; + #if VIRGL_VERSION_MAJOR >= 1 - borrower = virgl_borrow_d3d_info_for_scanout; + struct virgl_renderer_resource_info_ext ext; + memset(&ext, 0, sizeof(ext)); + ret = virgl_renderer_resource_get_info_ext(ss.resource_id, &ext); + info = ext.base; + d3d_tex2d = ext.d3d_tex2d; #else - borrower = virgl_borrow_texture_for_scanout; + memset(&info, 0, sizeof(info)); + ret = virgl_renderer_resource_get_info(ss.resource_id, &info); #endif + if (ret) { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: illegal resource specified %d\n", + __func__, ss.resource_id); + cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID; + return; + } qemu_console_resize(g->parent_obj.scanout[ss.scanout_id].con, ss.r.width, ss.r.height); virgl_renderer_force_ctx_0(); dpy_gl_scanout_texture( - g->parent_obj.scanout[ss.scanout_id].con, ss.resource_id, - borrower, ss.r.x, ss.r.y, ss.r.width, ss.r.height); + g->parent_obj.scanout[ss.scanout_id].con, info.tex_id, + info.flags & VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP, + info.width, info.height, + ss.r.x, ss.r.y, ss.r.width, ss.r.height, + d3d_tex2d); } else { dpy_gfx_replace_surface( g->parent_obj.scanout[ss.scanout_id].con, NULL); diff --git a/include/ui/console.h b/include/ui/console.h index 8717931ed3..46b3128185 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -131,18 +131,16 @@ struct QemuConsoleClass { ObjectClass parent_class; }; -typedef uint32_t (* DisplayGLTextureBorrower)(uint32_t id, bool *y_0_top, - uint32_t *width, - uint32_t *height, - void **d3d_tex2d); - typedef struct ScanoutTexture { uint32_t backing_id; - DisplayGLTextureBorrower backing_borrow; + bool backing_y_0_top; + uint32_t backing_width; + uint32_t backing_height; uint32_t x; uint32_t y; uint32_t width; uint32_t height; + void *d3d_tex2d; } ScanoutTexture; typedef struct QemuUIInfo { @@ -242,9 +240,12 @@ typedef struct DisplayChangeListenerOps { /* required if GL */ void (*dpy_gl_scanout_texture)(DisplayChangeListener *dcl, uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, + bool backing_y_0_top, + uint32_t backing_width, + uint32_t backing_height, uint32_t x, uint32_t y, - uint32_t w, uint32_t h); + uint32_t w, uint32_t h, + void *d3d_tex2d); /* optional (default to true if has dpy_gl_scanout_dmabuf) */ bool (*dpy_has_dmabuf)(DisplayChangeListener *dcl); /* optional */ @@ -324,9 +325,11 @@ bool dpy_gfx_check_format(QemuConsole *con, pixman_format_code_t format); void dpy_gl_scanout_disable(QemuConsole *con); -void dpy_gl_scanout_texture(QemuConsole *con, uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, - uint32_t x, uint32_t y, uint32_t w, uint32_t h); +void dpy_gl_scanout_texture(QemuConsole *con, + uint32_t backing_id, bool backing_y_0_top, + uint32_t backing_width, uint32_t backing_height, + uint32_t x, uint32_t y, uint32_t w, uint32_t h, + void *d3d_tex2d); void dpy_gl_scanout_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf); void dpy_gl_cursor_dmabuf(QemuConsole *con, QemuDmaBuf *dmabuf, diff --git a/include/ui/gtk.h b/include/ui/gtk.h index bfd1075b6d..aa3d637029 100644 --- a/include/ui/gtk.h +++ b/include/ui/gtk.h @@ -171,9 +171,12 @@ QEMUGLContext gd_egl_create_context(DisplayGLCtx *dgc, void gd_egl_scanout_disable(DisplayChangeListener *dcl); void gd_egl_scanout_texture(DisplayChangeListener *dcl, uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, + bool backing_y_0_top, + uint32_t backing_width, + uint32_t backing_height, uint32_t x, uint32_t y, - uint32_t w, uint32_t h); + uint32_t w, uint32_t h, + void *d3d_tex2d); void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl, QemuDmaBuf *dmabuf); void gd_egl_cursor_dmabuf(DisplayChangeListener *dcl, @@ -205,9 +208,12 @@ void gd_gl_area_scanout_dmabuf(DisplayChangeListener *dcl, QemuDmaBuf *dmabuf); void gd_gl_area_scanout_texture(DisplayChangeListener *dcl, uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, + bool backing_y_0_top, + uint32_t backing_width, + uint32_t backing_height, uint32_t x, uint32_t y, - uint32_t w, uint32_t h); + uint32_t w, uint32_t h, + void *d3d_tex2d); void gd_gl_area_scanout_disable(DisplayChangeListener *dcl); void gd_gl_area_scanout_flush(DisplayChangeListener *dcl, uint32_t x, uint32_t y, uint32_t w, uint32_t h); diff --git a/include/ui/sdl2.h b/include/ui/sdl2.h index c079f9c5e0..dbe6e3d973 100644 --- a/include/ui/sdl2.h +++ b/include/ui/sdl2.h @@ -88,9 +88,12 @@ int sdl2_gl_make_context_current(DisplayGLCtx *dgc, void sdl2_gl_scanout_disable(DisplayChangeListener *dcl); void sdl2_gl_scanout_texture(DisplayChangeListener *dcl, uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, + bool backing_y_0_top, + uint32_t backing_width, + uint32_t backing_height, uint32_t x, uint32_t y, - uint32_t w, uint32_t h); + uint32_t w, uint32_t h, + void *d3d_tex2d); void sdl2_gl_scanout_flush(DisplayChangeListener *dcl, uint32_t x, uint32_t y, uint32_t w, uint32_t h); diff --git a/include/ui/spice-display.h b/include/ui/spice-display.h index 6f8305888d..4b9121bfb5 100644 --- a/include/ui/spice-display.h +++ b/include/ui/spice-display.h @@ -141,8 +141,8 @@ struct SimpleSpiceDisplay { #if defined(CONFIG_ANGLE) EGLSurface esurface; egl_fb iosurface_fb; - DisplayGLTextureBorrower backing_borrow; - uint32_t backing_id; + GLuint tex_id; + bool y_0_top; #endif bool render_cursor; diff --git a/ui/console.c b/ui/console.c index 4a0d205d73..480cd63f90 100644 --- a/ui/console.c +++ b/ui/console.c @@ -288,11 +288,14 @@ static void displaychangelistener_display_console(DisplayChangeListener *dcl, dcl->ops->dpy_gl_scanout_texture) { dcl->ops->dpy_gl_scanout_texture(dcl, con->scanout.texture.backing_id, - con->scanout.texture.backing_borrow, + con->scanout.texture.backing_y_0_top, + con->scanout.texture.backing_width, + con->scanout.texture.backing_height, con->scanout.texture.x, con->scanout.texture.y, con->scanout.texture.width, - con->scanout.texture.height); + con->scanout.texture.height, + con->scanout.texture.d3d_tex2d); } } @@ -1015,25 +1018,31 @@ void dpy_gl_scanout_disable(QemuConsole *con) void dpy_gl_scanout_texture(QemuConsole *con, uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, + bool backing_y_0_top, + uint32_t backing_width, + uint32_t backing_height, uint32_t x, uint32_t y, - uint32_t width, uint32_t height) + uint32_t width, uint32_t height, + void *d3d_tex2d) { DisplayState *s = con->ds; DisplayChangeListener *dcl; con->scanout.kind = SCANOUT_TEXTURE; con->scanout.texture = (ScanoutTexture) { - backing_id, backing_borrow, - x, y, width, height + backing_id, backing_y_0_top, backing_width, backing_height, + x, y, width, height, d3d_tex2d, }; QLIST_FOREACH(dcl, &s->listeners, next) { if (con != dcl->con) { continue; } if (dcl->ops->dpy_gl_scanout_texture) { - dcl->ops->dpy_gl_scanout_texture(dcl, backing_id, backing_borrow, - x, y, width, height); + dcl->ops->dpy_gl_scanout_texture(dcl, backing_id, + backing_y_0_top, + backing_width, backing_height, + x, y, width, height, + d3d_tex2d); } } } diff --git a/ui/dbus-console.c b/ui/dbus-console.c index 31939d0207..85e215ef23 100644 --- a/ui/dbus-console.c +++ b/ui/dbus-console.c @@ -94,9 +94,12 @@ dbus_gl_scanout_disable(DisplayChangeListener *dcl) static void dbus_gl_scanout_texture(DisplayChangeListener *dcl, uint32_t tex_id, - DisplayGLTextureBorrower backing_borrow, + bool backing_y_0_top, + uint32_t backing_width, + uint32_t backing_height, uint32_t x, uint32_t y, - uint32_t w, uint32_t h) + uint32_t w, uint32_t h, + void *d3d_tex2d) { DBusDisplayConsole *ddc = container_of(dcl, DBusDisplayConsole, dcl); diff --git a/ui/dbus-listener.c b/ui/dbus-listener.c index abcc96287b..51244c9240 100644 --- a/ui/dbus-listener.c +++ b/ui/dbus-listener.c @@ -491,7 +491,7 @@ static bool dbus_scanout_map(DBusDisplayListener *ddl) #endif /* WIN32 */ #ifdef CONFIG_OPENGL -static void dbus_scanout_borrowed_texture(DisplayChangeListener *dcl, +static void dbus_scanout_texture(DisplayChangeListener *dcl, uint32_t tex_id, bool backing_y_0_top, uint32_t backing_width, @@ -540,25 +540,6 @@ static void dbus_scanout_borrowed_texture(DisplayChangeListener *dcl, #endif } -static void dbus_scanout_texture(DisplayChangeListener *dcl, - uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, - uint32_t x, uint32_t y, - uint32_t w, uint32_t h) -{ - bool backing_y_0_top; - uint32_t backing_width; - uint32_t backing_height; - void *d3d_tex2d; - uint32_t tex_id = backing_borrow(backing_id, &backing_y_0_top, - &backing_width, &backing_height, - &d3d_tex2d); - - dbus_scanout_borrowed_texture(dcl, tex_id, backing_y_0_top, - backing_width, backing_height, - x, y, w, h, d3d_tex2d); -} - #ifdef CONFIG_GBM static void dbus_cursor_dmabuf(DisplayChangeListener *dcl, QemuDmaBuf *dmabuf, bool have_hot, @@ -798,7 +779,7 @@ static void dbus_gl_gfx_switch(DisplayChangeListener *dcl, int height = surface_height(ddl->ds); /* TODO: lazy send dmabuf (there are unnecessary sent otherwise) */ - dbus_scanout_borrowed_texture(&ddl->dcl, ddl->ds->texture, false, + dbus_scanout_texture(&ddl->dcl, ddl->ds->texture, false, width, height, 0, 0, width, height, NULL); } } diff --git a/ui/egl-headless.c b/ui/egl-headless.c index 96bbf52fd0..ba8d099f80 100644 --- a/ui/egl-headless.c +++ b/ui/egl-headless.c @@ -63,7 +63,7 @@ static void egl_scanout_disable(DisplayChangeListener *dcl) egl_fb_destroy(&edpy->blit_fb); } -static void egl_scanout_imported_texture(DisplayChangeListener *dcl, +static void egl_scanout_texture(DisplayChangeListener *dcl, uint32_t backing_id, bool backing_y_0_top, uint32_t backing_width, @@ -88,25 +88,6 @@ static void egl_scanout_imported_texture(DisplayChangeListener *dcl, } } -static void egl_scanout_texture(DisplayChangeListener *dcl, - uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, - uint32_t x, uint32_t y, - uint32_t w, uint32_t h) -{ - bool backing_y_0_top; - uint32_t backing_width; - uint32_t backing_height; - void *d3d_tex2d; - - GLuint backing_texture = backing_borrow(backing_id, &backing_y_0_top, - &backing_width, &backing_height, - &d3d_tex2d); - egl_scanout_imported_texture(dcl, backing_texture, backing_y_0_top, - backing_width, backing_height, - x, y, w, h, d3d_tex2d); -} - #ifdef CONFIG_GBM static void egl_scanout_dmabuf(DisplayChangeListener *dcl, @@ -123,7 +104,7 @@ static void egl_scanout_dmabuf(DisplayChangeListener *dcl, width = qemu_dmabuf_get_width(dmabuf); height = qemu_dmabuf_get_height(dmabuf); - egl_scanout_imported_texture(dcl, texture, false, width, height, 0, 0, + egl_scanout_texture(dcl, texture, false, width, height, 0, 0, width, height, NULL); } diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c index d600456159..341afd41fb 100644 --- a/ui/gtk-egl.c +++ b/ui/gtk-egl.c @@ -233,7 +233,7 @@ void gd_egl_scanout_disable(DisplayChangeListener *dcl) gtk_egl_set_scanout_mode(vc, false); } -void gd_egl_scanout_borrowed_texture(DisplayChangeListener *dcl, +void gd_egl_scanout_texture(DisplayChangeListener *dcl, uint32_t backing_id, bool backing_y_0_top, uint32_t backing_width, uint32_t backing_height, uint32_t x, uint32_t y, @@ -263,25 +263,8 @@ void gd_egl_scanout_borrowed_texture(DisplayChangeListener *dcl, backing_id, false); } -void gd_egl_scanout_texture(DisplayChangeListener *dcl, uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, - uint32_t x, uint32_t y, - uint32_t w, uint32_t h) -{ - bool backing_y_0_top; - uint32_t backing_width; - uint32_t backing_height; - void *d3d_tex2d; - - GLuint backing_texture = backing_borrow(backing_id, &backing_y_0_top, - &backing_width, &backing_height, - &d3d_tex2d); - gd_egl_scanout_borrowed_texture(dcl, backing_texture, backing_y_0_top, - backing_width, backing_height, - x, y, w, h, d3d_tex2d); -} - -void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl, QemuDmaBuf *dmabuf) +void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl, + QemuDmaBuf *dmabuf) { #ifdef CONFIG_GBM VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl); @@ -305,8 +288,8 @@ void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl, QemuDmaBuf *dmabuf) backing_height = qemu_dmabuf_get_backing_height(dmabuf); y0_top = qemu_dmabuf_get_y0_top(dmabuf); - gd_egl_scanout_borrowed_texture(dcl, texture, y0_top, backing_width, - backing_height, x, y, width, height, NULL); + gd_egl_scanout_texture(dcl, texture, y0_top, backing_width, backing_height, + x, y, width, height, NULL); if (qemu_dmabuf_get_allow_fences(dmabuf)) { vc->gfx.guest_fb.dmabuf = dmabuf; diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c index 32bca91cbb..2c9a0db425 100644 --- a/ui/gtk-gl-area.c +++ b/ui/gtk-gl-area.c @@ -248,7 +248,7 @@ void gd_gl_area_destroy_context(DisplayGLCtx *dgc, QEMUGLContext ctx) g_clear_object(&ctx); } -void gd_gl_area_scanout_borrowed_texture(DisplayChangeListener *dcl, +void gd_gl_area_scanout_texture(DisplayChangeListener *dcl, uint32_t backing_id, bool backing_y_0_top, uint32_t backing_width, @@ -277,26 +277,6 @@ void gd_gl_area_scanout_borrowed_texture(DisplayChangeListener *dcl, backing_id, false); } -void gd_gl_area_scanout_texture(DisplayChangeListener *dcl, - uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, - uint32_t x, uint32_t y, - uint32_t w, uint32_t h) -{ - bool backing_y_0_top; - uint32_t backing_width; - uint32_t backing_height; - void *d3d_tex2d; - - GLuint backing_texture = backing_borrow(backing_id, &backing_y_0_top, - &backing_width, &backing_height, - &d3d_tex2d); - gd_gl_area_scanout_borrowed_texture(dcl, backing_texture, - backing_y_0_top, - backing_width, backing_height, - x, y, w, h, d3d_tex2d); -} - void gd_gl_area_scanout_disable(DisplayChangeListener *dcl) { VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl); @@ -341,7 +321,7 @@ void gd_gl_area_scanout_dmabuf(DisplayChangeListener *dcl, backing_height = qemu_dmabuf_get_backing_height(dmabuf); y0_top = qemu_dmabuf_get_y0_top(dmabuf); - gd_gl_area_scanout_borrowed_texture(dcl, texture, y0_top, + gd_gl_area_scanout_texture(dcl, texture, y0_top, backing_width, backing_height, x, y, width, height, NULL); diff --git a/ui/sdl2-gl.c b/ui/sdl2-gl.c index b164fb6b28..061f10c449 100644 --- a/ui/sdl2-gl.c +++ b/ui/sdl2-gl.c @@ -201,22 +201,17 @@ void sdl2_gl_scanout_disable(DisplayChangeListener *dcl) void sdl2_gl_scanout_texture(DisplayChangeListener *dcl, uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, + bool backing_y_0_top, + uint32_t backing_width, + uint32_t backing_height, uint32_t x, uint32_t y, - uint32_t w, uint32_t h) + uint32_t w, uint32_t h, + void *d3d_tex2d) { struct sdl2_console *scon = container_of(dcl, struct sdl2_console, dcl); - bool backing_y_0_top; - uint32_t backing_width; - uint32_t backing_height; - void *d3d_tex2d; assert(scon->opengl); - GLuint backing_texture = backing_borrow(backing_id, &backing_y_0_top, - &backing_width, &backing_height, - &d3d_tex2d); - scon->x = x; scon->y = y; scon->w = w; @@ -227,7 +222,7 @@ void sdl2_gl_scanout_texture(DisplayChangeListener *dcl, sdl2_set_scanout_mode(scon, true); egl_fb_setup_for_tex(&scon->guest_fb, backing_width, backing_height, - backing_texture, false); + backing_id, false); } void sdl2_gl_scanout_flush(DisplayChangeListener *dcl, diff --git a/ui/spice-display.c b/ui/spice-display.c index c7688256e9..61cdda0e8a 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -1132,36 +1132,30 @@ static void qemu_spice_gl_scanout_disable(DisplayChangeListener *dcl) spice_iosurface_destroy(ssd); #endif #if defined(CONFIG_ANGLE) - ssd->backing_borrow = NULL; - ssd->backing_id = -1; + ssd->tex_id = -1; #endif } static void qemu_spice_gl_scanout_texture(DisplayChangeListener *dcl, - uint32_t backing_id, - DisplayGLTextureBorrower backing_borrow, + uint32_t tex_id, + bool y_0_top, + uint32_t backing_width, + uint32_t backing_height, uint32_t x, uint32_t y, - uint32_t w, uint32_t h) + uint32_t w, uint32_t h, + void *d3d_tex2d) { SimpleSpiceDisplay *ssd = container_of(dcl, SimpleSpiceDisplay, dcl); EGLint stride = 0, fourcc = 0; int fd = -1; - bool y_0_top; - uint32_t backing_width; - uint32_t backing_height; - void *d3d_tex2d; - GLuint tex_id = backing_borrow(backing_id, &y_0_top, - &backing_width, &backing_height, - &d3d_tex2d); - assert(tex_id); #if defined(CONFIG_GBM) fd = egl_get_fd_for_texture(tex_id, &stride, &fourcc, NULL); #elif defined(CONFIG_IOSURFACE) if (spice_iosurface_resize(ssd, backing_width, backing_height)) { #if defined(CONFIG_ANGLE) - ssd->backing_borrow = backing_borrow; - ssd->backing_id = backing_id; + ssd->tex_id = tex_id; + ssd->y_0_top = y_0_top; #endif fd = spice_iosurface_create_fd(ssd, &fourcc); } else { @@ -1253,11 +1247,10 @@ static void qemu_spice_gl_update(DisplayChangeListener *dcl, EGLint stride = 0, fourcc = 0; int fd; bool render_cursor = false; + uint32_t texture; #endif bool y_0_top = false; /* FIXME */ uint64_t cookie; - int fd; - uint32_t width, height, texture; if (!ssd->have_scanout) { return; @@ -1331,8 +1324,8 @@ static void qemu_spice_gl_update(DisplayChangeListener *dcl, glFlush(); } #elif defined(CONFIG_ANGLE) && defined(CONFIG_IOSURFACE) - GLuint tex_id = ssd->backing_borrow(ssd->backing_id, &y_0_top, - NULL, NULL, NULL); + GLuint tex_id = ssd->tex_id; + y_0_top = ssd->y_0_top; spice_iosurface_blit(ssd, tex_id, !y_0_top, false); //TODO: cursor stuff #endif @@ -1403,8 +1396,7 @@ static void qemu_spice_display_init_one(QemuConsole *con) #endif #if defined(CONFIG_ANGLE) ssd->esurface = EGL_NO_SURFACE; - ssd->backing_borrow = NULL; - ssd->backing_id = -1; + ssd->tex_id = -1; #endif } #endif