[Spice-devel] [PATCH RFC 00/12] Remote Virgl support

Frediano Ziglio fziglio at redhat.com
Fri Jul 15 13:49:24 UTC 2016


This patch is an improve to last one. There are still many work
to be done. The main reason I'm posting is to discuss the Qemu
API changes ("Define a new interface for Qemu to pass texture"
patch). This code add dependency to EGL directly.

The main idea is still extracting raw data and passing to the
normal flow (display_channel_process_draw).

Changes from last version:
- this set supports all cards using a different protocol from Qemu
  that now can pass EGL information (display and context) and
  texture directly. This allows spice-server to choose dma buffers
  or just GL data;
- the patch set is much neat.

Multiple clients are still not supported (but actually is not a
regression).

Looks like the queue is reduced automatically by drawable code
in spice-server so new frames replace old ones if network or
streaming code is not fast enough.

If you expect similar performance to the video I posted days
ago you will be disappointed. These video were done with
lot of tweak in the streaming code (both server and client).
I decided to avoid patches for stream code as they are quite
in a bad shape.

Frediano Ziglio (12):
  Define a new interface for Qemu to pass texture
  Add libepoxy to dependency
  Implements spice_qxl_gl_init
  Save and allow to retrieve texture information in Qxl
  Import function to get dma buffer from a texture
  Add get_texture_raw_data to extract raw data from a texture
  Implements spice_qxl_gl_scanout_texture
  Check client is using unix sockets in dcc_gl_draw_item_new
  Do not disconnect client if not connected locally in
    dcc_gl_scanout_item_new
  Add get_dummy_drawable
  Handle remote 3d connections
  Fix a bug... why this happens ??

 configure.ac             |   4 ++
 server/Makefile.am       |   4 ++
 server/dcc.c             |  14 +++---
 server/display-channel.c |  97 +++++++++++++++++++++++++++++++++++--
 server/display-channel.h |   4 +-
 server/egl.c             | 123 +++++++++++++++++++++++++++++++++++++++++++++++
 server/egl.h             |  29 +++++++++++
 server/red-qxl.c         | 110 ++++++++++++++++++++++++++++++++++++++++--
 server/red-qxl.h         |  11 +++++
 server/red-worker.c      |   6 ++-
 server/spice-qxl.h       |   8 +++
 server/spice-server.syms |   6 +++
 server/tests/Makefile.am |   2 +
 13 files changed, 399 insertions(+), 19 deletions(-)
 create mode 100644 server/egl.c
 create mode 100644 server/egl.h

-- 
2.7.4



More information about the Spice-devel mailing list