diff options
author | Marc-Andre Lureau <marcandre.lureau@gmail.com> | 2015-12-22 16:08:09 +0100 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2016-01-14 11:52:41 +0000 |
commit | 3fc2221e965623c5a7e50d95f1623269a067c2d3 (patch) | |
tree | fd80ee3526ec9b4fd99d1d146b6fc03f6e8abba6 /ChangeLog | |
parent | 267391c8fd7c90c067b3e4845ff0227a2580e2e2 (diff) | |
download | spice-protocol-3fc2221e965623c5a7e50d95f1623269a067c2d3.tar.gz spice-protocol-3fc2221e965623c5a7e50d95f1623269a067c2d3.tar.xz spice-protocol-3fc2221e965623c5a7e50d95f1623269a067c2d3.zip |
protocol: add unix GL scanout messages
Add 2 new messages to the display channel to stream pre-rendered GL
images of the display. This is only possible when the client supports
SPICE_DISPLAY_CAP_GL_SCANOUT capability.
The first message, SPICE_MSG_DISPLAY_GL_SCANOUT_UNIX, sends a gl image
file handle via socket ancillary data, and can be imported in a GL
context with the help of eglCreateImageKHR() (as with the 2d canvas, the
SPICE_MSG_DISPLAY_MONITORS_CONFIG will give the monitors
coordinates (x/y/w/h) within the image). There can be only one scanount
per display channel.
A SPICE_MSG_DISPLAY_GL_DRAW message is sent with the coordinate of the
region within the scanount to (re)draw on the client display. For each
draw, once the client is done with the rendering, it must acknowldge it
by sending a SPICE_MSGC_DISPLAY_GL_DRAW_DONE message, in order to
release the context (it is expected to improve this in the future with a
cross-process GL fence).
The relation with the existing display channel messages is that all
other messages are unchanged: the last drawing command received must be
displayed. However the scanout display is all or nothing. Consequently,
if a 2d canvas draw is received, the display must be switched to the
drawn canvas. In other words, if the last message received is a GL draw
the display should switch to the GL display, if it's a 2d draw message
the display should be switched to the client 2d canvas.
(there will probably be a stipped-down "gl-only" channel in the future,
or support for other streaming methods, but this protocol change should
be enough for basic virgl or other gpu-accelerated support)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Diffstat (limited to 'ChangeLog')
0 files changed, 0 insertions, 0 deletions