[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