Hi, > Here is the flow of things from the Qemu side: > - Call gl_scanout (to update the fd) and gl_draw_async just like > in the local display case.
Ok. > - Additionally, create an update with the cmd set to QXL_CMD_DRAW > to trigger the creation of a new drawable (associated with the fd) > by the Spice server. > - Wait (or block) until the Encoder is done encoding the content. > - Unblock the pipeline once the async completion cookie is received. Care to explain? For qemu it should make a difference what spice-server does with the dma-bufs passed (local display / encode video + send to remote). > #ifdef HAVE_SPICE_GL > + } else if (spice_dmabuf_encode) { > + if (g_strcmp0(preferred_codec, "gstreamer:h264")) { > + error_report("dmabuf-encode=on currently only works and > tested" > + "with gstreamer:h264"); > + exit(1); > + } IMHO we should not hard-code todays spice-server capabilities like this. For starters this isn't true for spice-server versions which don't (yet) have your patches. Also the capability might depend on hardware support. IMHO we need some feature negotiation between qemu and spice here. take care, Gerd