<feed xmlns='http://www.w3.org/2005/Atom'>
<title>spice-protocol.git/spice, branch master</title>
<subtitle>spice-protocol</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/'/>
<entry>
<title>Remove codegen</title>
<updated>2016-03-10T15:57:08+00:00</updated>
<author>
<name>Marc-André Lureau</name>
<email>marcandre.lureau@gmail.com</email>
</author>
<published>2016-02-26T17:14:33+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=2a6e51c7ee867fe3f4b7dd07dee5517533a967be'/>
<id>2a6e51c7ee867fe3f4b7dd07dee5517533a967be</id>
<content type='text'>
Codegen generates code specific to spice-common submodule. It's not
meant as a generic protocol header or specification. See discussion and
commits about spice-common codegen re-import.

Signed-off-by: Marc-André Lureau &lt;marcandre.lureau@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Codegen generates code specific to spice-common submodule. It's not
meant as a generic protocol header or specification. See discussion and
commits about spice-common codegen re-import.

Signed-off-by: Marc-André Lureau &lt;marcandre.lureau@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>protocol: Add support for the VP8 and h264 video codecs</title>
<updated>2016-03-03T17:04:44+00:00</updated>
<author>
<name>Francois Gouget</name>
<email>fgouget@codeweavers.com</email>
</author>
<published>2016-03-01T15:50:16+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=7937915d67702a5c4b5147b277c432f5555e3852'/>
<id>7937915d67702a5c4b5147b277c432f5555e3852</id>
<content type='text'>
Clients that support multiple codecs must advertise the
SPICE_DISPLAY_CAP_MULTI_CODEC capability and one
SPICE_DISPLAY_CAP_CODEC_XXX per supported codec.

Signed-off-by: Francois Gouget &lt;fgouget@codeweavers.com&gt;
Acked-by: Christophe Fergeau &lt;cfergeau@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clients that support multiple codecs must advertise the
SPICE_DISPLAY_CAP_MULTI_CODEC capability and one
SPICE_DISPLAY_CAP_CODEC_XXX per supported codec.

Signed-off-by: Francois Gouget &lt;fgouget@codeweavers.com&gt;
Acked-by: Christophe Fergeau &lt;cfergeau@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>macros: do not use more type safe CONTAINEROF version if not requested</title>
<updated>2016-03-02T12:05:55+00:00</updated>
<author>
<name>Frediano Ziglio</name>
<email>fziglio@redhat.com</email>
</author>
<published>2016-03-02T11:25:09+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=0721716bb8c29f7d9abf1942182ad072fa0cc248'/>
<id>0721716bb8c29f7d9abf1942182ad072fa0cc248</id>
<content type='text'>
This prevents incompatibility if users (like old spice-server/spice-gtk)
are not expected to have this additional restriction.

Signed-off-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
Acked-by: Christophe Fergeau &lt;cfergeau@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This prevents incompatibility if users (like old spice-server/spice-gtk)
are not expected to have this additional restriction.

Signed-off-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
Acked-by: Christophe Fergeau &lt;cfergeau@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>protocol: add unix GL scanout messages</title>
<updated>2016-01-14T11:52:41+00:00</updated>
<author>
<name>Marc-Andre Lureau</name>
<email>marcandre.lureau@gmail.com</email>
</author>
<published>2015-12-22T15:08:09+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=3fc2221e965623c5a7e50d95f1623269a067c2d3'/>
<id>3fc2221e965623c5a7e50d95f1623269a067c2d3</id>
<content type='text'>
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 &lt;marcandre.lureau@redhat.com&gt;
Acked-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;marcandre.lureau@redhat.com&gt;
Acked-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use gcc builtin rather than asm for memory barriers</title>
<updated>2016-01-08T14:31:38+00:00</updated>
<author>
<name>Christophe Fergeau</name>
<email>cfergeau@redhat.com</email>
</author>
<published>2013-04-10T11:59:34+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=6b86c1a510f333f53a6955cd09da16fd98731d02'/>
<id>6b86c1a510f333f53a6955cd09da16fd98731d02</id>
<content type='text'>
This should make things more portable.

On my machine, __sync_synchronize() uses mfence rather than lock; addl;
Looking at the kernel memory barriers, this should be fine:
http://lxr.free-electrons.com/source/arch/x86/um/asm/barrier.h

The kernel favours using mfence, but falls back to lock; addl; when it's
not available (32 bit non-SSE machines).

https://bugs.freedesktop.org/show_bug.cgi?id=86997
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should make things more portable.

On my machine, __sync_synchronize() uses mfence rather than lock; addl;
Looking at the kernel memory barriers, this should be fine:
http://lxr.free-electrons.com/source/arch/x86/um/asm/barrier.h

The kernel favours using mfence, but falls back to lock; addl; when it's
not available (32 bit non-SSE machines).

https://bugs.freedesktop.org/show_bug.cgi?id=86997
</pre>
</div>
</content>
</entry>
<entry>
<title>macros: make SPICE_CONTAINEROF more typesafe</title>
<updated>2015-12-04T11:15:12+00:00</updated>
<author>
<name>Frediano Ziglio</name>
<email>fziglio@redhat.com</email>
</author>
<published>2015-12-03T15:24:58+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=cffb8baee117710087445c968acc55654f74f508'/>
<id>cffb8baee117710087445c968acc55654f74f508</id>
<content type='text'>
Check the pointer given is the same type as member pointer.

Signed-off-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
Acked-by: Jonathon Jongsma &lt;jjongsma@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check the pointer given is the same type as member pointer.

Signed-off-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
Acked-by: Jonathon Jongsma &lt;jjongsma@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>macros: fix compatibility with non-clang compilers</title>
<updated>2015-08-20T10:16:31+00:00</updated>
<author>
<name>Frediano Ziglio</name>
<email>fziglio@redhat.com</email>
</author>
<published>2015-08-20T10:16:31+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=b397eca557673240e29e60c35a2458597e95d53d'/>
<id>b397eca557673240e29e60c35a2458597e95d53d</id>
<content type='text'>
Signed-off-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>macros: fix alignment issue reported by clang</title>
<updated>2015-08-20T10:05:19+00:00</updated>
<author>
<name>Victor Toso</name>
<email>victortoso@redhat.com</email>
</author>
<published>2015-08-14T16:24:23+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=39be7a8fce1c062a59590517bdab5e75a2d6028f'/>
<id>39be7a8fce1c062a59590517bdab5e75a2d6028f</id>
<content type='text'>
char_device.c:131:52: warning: cast from 'uint8_t *'
(aka 'unsigned char *') to 'SpiceCharDeviceMsgToClientItem *'
(aka 'struct SpiceCharDeviceMsgToClientItem *')
increases required alignment from 1 to 8 [-Wcast-align]

 SpiceCharDeviceMsgToClientItem *msg_item = SPICE_CONTAINEROF(item,
                                            ^~~~~~~~~~~~~~~~~~~~~~~

../spice-common/spice-protocol/spice/macros.h:142:6: note: expanded
from macro 'SPICE_CONTAINEROF'

 ((struct_type *)((uint8_t *)(ptr) - SPICE_OFFSETOF(struct_type, member)))
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
char_device.c:131:52: warning: cast from 'uint8_t *'
(aka 'unsigned char *') to 'SpiceCharDeviceMsgToClientItem *'
(aka 'struct SpiceCharDeviceMsgToClientItem *')
increases required alignment from 1 to 8 [-Wcast-align]

 SpiceCharDeviceMsgToClientItem *msg_item = SPICE_CONTAINEROF(item,
                                            ^~~~~~~~~~~~~~~~~~~~~~~

../spice-common/spice-protocol/spice/macros.h:142:6: note: expanded
from macro 'SPICE_CONTAINEROF'

 ((struct_type *)((uint8_t *)(ptr) - SPICE_OFFSETOF(struct_type, member)))
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</pre>
</div>
</content>
</entry>
<entry>
<title>macros: verify if __alloc_size__ works with clang</title>
<updated>2015-08-20T10:00:35+00:00</updated>
<author>
<name>Victor Toso</name>
<email>victortoso@redhat.com</email>
</author>
<published>2015-08-14T16:24:22+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=fa19ebb83f29bfc6fa011239d5fff172282bfe55'/>
<id>fa19ebb83f29bfc6fa011239d5fff172282bfe55</id>
<content type='text'>
So we can avoid using using an attribute not supported for the compiler.

warning:
../spice-common/common/mem.h:91:80: warning: unknown attribute
'__alloc_size__' ignored [-Wunknown-attributes]

void *spice_malloc0_n(size_t n_blocks, size_t n_block_bytes)
SPICE_GNUC_MALLOC SPICE_GNUC_ALLOC_SIZE2(1,2);

../spice-common/spice-protocol/spice/macros.h:52:52: note: expanded
from macro 'SPICE_GNUC_ALLOC_SIZE2'

 #define SPICE_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
                                                    ^
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So we can avoid using using an attribute not supported for the compiler.

warning:
../spice-common/common/mem.h:91:80: warning: unknown attribute
'__alloc_size__' ignored [-Wunknown-attributes]

void *spice_malloc0_n(size_t n_blocks, size_t n_block_bytes)
SPICE_GNUC_MALLOC SPICE_GNUC_ALLOC_SIZE2(1,2);

../spice-common/spice-protocol/spice/macros.h:52:52: note: expanded
from macro 'SPICE_GNUC_ALLOC_SIZE2'

 #define SPICE_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
                                                    ^
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix endianess compatibility with old GCC versions</title>
<updated>2015-08-19T14:42:10+00:00</updated>
<author>
<name>Frediano Ziglio</name>
<email>fziglio@redhat.com</email>
</author>
<published>2015-08-18T16:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice-protocol.git/commit/?id=2cd036e9d42ce9bf053609c9030ee7e2f9c01790'/>
<id>2cd036e9d42ce9bf053609c9030ee7e2f9c01790</id>
<content type='text'>
GCC 4.4.7 does not define __BYTE_ORDER__ macros so use architecture
macro to attempt to detect endianess.

Signed-off-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
Reported-by: Swapna Krishnan &lt;skrishna@redhat.com&gt;
Tested-by: Swapna Krishnan &lt;skrishna@redhat.com&gt;
Acked-by: Uri Lublin &lt;uril@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GCC 4.4.7 does not define __BYTE_ORDER__ macros so use architecture
macro to attempt to detect endianess.

Signed-off-by: Frediano Ziglio &lt;fziglio@redhat.com&gt;
Reported-by: Swapna Krishnan &lt;skrishna@redhat.com&gt;
Tested-by: Swapna Krishnan &lt;skrishna@redhat.com&gt;
Acked-by: Uri Lublin &lt;uril@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
