summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* client: Re-enable USE_XRANDR_1_2Alexander Larsson2010-09-291-1/+1
| | | | This was disabled by mistake before.
* client: Don't hardcode -lrtAlexander Larsson2010-09-291-2/+1
| | | | | -lrt is already included in SPICE_NONPKGCONFIG_LIBS if needed so no need to add it to the command line manually.
* client: Fall back to gettimeofday if clock_gettime not foundAlexander Larsson2010-09-293-1/+20
|
* client: Include config.h from common.hAlexander Larsson2010-09-295-10/+4
| | | | | config.h should be availible everywhere, so move its inclusion to the top of common.h.
* client: Check for pthread yield function using autoconfAlexander Larsson2010-09-292-1/+21
|
* Initialize variable to avoid compiler warningAlexander Larsson2010-09-291-1/+1
| | | | Seems the OSX gcc warns on saveRight not being initialzied.
* client: Include stdint.h for uint32_tAlexander Larsson2010-09-291-0/+2
|
* client: Don't use basename for argv[0] in --help outputAlexander Larsson2010-09-291-17/+1
| | | | | This isn't what other apps do, and it had issues in the OSX port, so just remove this.
* Fix warning from OSX compilerAlexander Larsson2010-09-291-4/+1
| | | | | The OSX compiler warns about uninitialized variable, so we change a bit how size is initialized.
* Handle surface images in DrawOpaqueAlexander Larsson2010-09-221-19/+42
|
* server: Handle self_image in localize_bitmapAlexander Larsson2010-09-211-9/+16
| | | | | | When drawing a drawable with a NULL src bitmap that means we should be using the previously generated self_bitmap. Not doing this causes a segfault due to accessing the NULL.
* server: Handle NULL image in red_update_streamableAlexander Larsson2010-09-211-1/+2
| | | | A NULL src bitmap means self_bitmap, which is not a stream, so abort.
* server: Use the right image size for self_bitmapAlexander Larsson2010-09-211-2/+2
| | | | | | | The self_bitmap is the size of self_bitmap_area, not the bbox. This is especially important since we later copy the self_bitmap_area into the new bitmap, and if that is larger than bbox then we will overwrite random memory.
* server: Don't leak QUIC image chunksAlexander Larsson2010-09-211-0/+3
| | | | | red_put_image() needs to free the chunks for QUIC images, as we allocate these when creating the image.
* Fix crash when resetting pixman image transformAlexander Larsson2010-09-211-1/+2
| | | | | Resetting the transform is done by setting it to the identity transform, not passing in NULL. Passing in NULL causes a crash.
* server: Ensure we flush the release pipe after an oomAlexander Larsson2010-09-201-0/+1
| | | | | | We really need to flush the ring to ensure that we push something on the release ring. If we don't do this and the ring is not pushed for other reasons we will timeout in the guest driver waiting for the ring.
* Release more drawables on OOMAlexander Larsson2010-09-201-1/+1
| | | | | | | | We've changed how resources are released so they are now being freed continuosly, rather than on OOM, since we want to free as early possible to avoid fragmentation. So, OOM situations should be a bit less common now and signify a real memory shortage, so we should try to free up more resources.
* fix palette handling for 0.4 compatGerd Hoffmann2010-09-141-43/+56
| | | | | spice 0.4 guests pass 16bpp palette colors when running in a 16bpp video mode. Convert them to 32bpp.
* fix brush handling for 0.4 compatGerd Hoffmann2010-09-141-23/+38
| | | | | spice 0.4 guests pass 16bpp colors for brushes when running in a 16bpp video mode. Convert them to 32bpp.
* move command flags handling to the qxl parserGerd Hoffmann2010-09-143-14/+18
| | | | | Pass through command flags to the qxl parser, so we can hide all compat bits for spice 0.4 within the qxl parser.
* spicec-x11: Fix going into a never ending loop upon xrandr event (#628573) (v2)Hans de Goede2010-09-091-0/+10
| | | | | | | | | | | | | When handling an xrandr event the event_listener->on_monitors_change() callback destroys and re-creates the monitor object(s) which results in the DynamicScreen or MultyMonconstructor being called, which triggers more xrandr events. This causes a never ending event handling loop making spicec hang, and eventually making the X-server crash as a backlog of events builds up and it oom's. This patches this by explictly processing the xrandr event caused by the constructor inside the constructor surrounded by the already present guard code against recursive xrandr events.
* server: avoid creating a stream from traces more than once for the same drawableYonit Halperin2010-09-021-5/+10
| | | | could have caused ASSERT(!drawable->stream) in red_create_stream
* Add API to turn on backwards compatibility modeAlexander Larsson2010-09-022-0/+33
| | | | | | | | | | | | | | | | | | When upgrading a cluster of machines you typically do this by upgrading a set of machines at a time, making the new machines run the new software version, but in a fashion compatible with the old versions (in terms of e.g. migration). Then when all machines are upgrades, any new features in the new version can be enabled. This API allows qemu to limit the set of features that spice uses to those compatible with an older version, in order to do an upgrade like this. Right now it doesn't really do much, since we don't keep compat with 0.4.0 atm (although that may be added later). There is no guarantee that any future version of spice support being compatible with any previous version. However, we will always support compatibility with the previous major version so that clusters can be upgraded step by step.
* Bump version to 0.6.00.6.0Alexander Larsson2010-08-311-2/+2
|
* Require spice-protocol 0.6.0Alexander Larsson2010-08-311-1/+1
|
* Update NEWS for releaseAlexander Larsson2010-08-311-0/+12
|
* Fix scaling with large magnificationAlexander Larsson2010-08-311-20/+16
| | | | | | | | | | | | | | When scaling part of an image we need to specify the source coordinates in transformed coordinates. For large magnifications this means we will get pretty large values. Now, if e.g. src_x * transform is larger than 32765, then the coordinate ends up outside the pixman 16bit image size, so the rendering will not work. The fix is to make the src_x/y offset part of the transformation. This means its automatically transformed by the correct scaling, and the coordinates passed into pixman are not (typically) over 16bit.
* Revert "Fix scaling with large magnification"Alexander Larsson2010-08-311-104/+32
| | | | This reverts commit e13be77f33609cb3fdae354ce1f2686ae865f9e0.
* client: add default agent capabilitiesAlon Levy2010-08-311-0/+11
|
* qxl parser: complete parsing of QXLCompatDrawable structsGerd Hoffmann2010-08-311-0/+14
|
* server: red_current_add_equal - don't push a drawable to the middle of the ↵Yonit Halperin2010-08-311-1/+13
| | | | | | | pipe if it depends on surfaces. This will prevent: 1) rendering problems (commands sent to the client in the wrong order) 2) sending commands for surfaces that haven't been created yet on the client side.
* server: when woken up by data ready to be read, don't call write.Alon Levy2010-08-311-1/+1
| | | | | | | | | This used to be a callback for the vdi_port "data ready" interrupt, which did indicate either data ready to read or data ready to write, but this is no longer the case now that virtio-serial is used. This seemingly simple fix prevents a race that needs to be fixed with another patch, see freedesktop bz #29903
* server: retry mouse send on queue fullAlon Levy2010-08-311-0/+1
|
* server: bugfix - make vdi_port_write_retry reiterate if write_queue still ↵Alon Levy2010-08-311-1/+1
| | | | | | | | | not empty The vdi_port_write_timer_started flag was not being reset, which prevented another vdi_port_write_timer_start from actually starting the timer. Fix is to change order of lines. This happens in the callback of the timer, so no chance of double timer set.
* client: add announce_capabilitiesAlon Levy2010-08-312-4/+70
|
* server: add subtype to SpiceCharDeviceInterface, use for vdagentAlon Levy2010-08-312-7/+50
|
* server: rename SpiceVDIPort* to SpiceCharDevice*Alon Levy2010-08-312-38/+38
|
* server: fix red_current_flush to flush only the surface that was given as ↵Yonit Halperin2010-08-301-1/+3
| | | | | | | | | | parameter A side effect of the previous red_current_flush, which flushed all the surfaces, and was called on a new display channel connection, was that red_handle_drawable_surfaces_client_synced sent the most updated surfaces images when needed. However, now, it should explicitly call red_current_flush. Moreover, since red_current_flush was called on a new display channel connection only if there was a primary surface, if the connection of the display channel occurred at the moment of no primary surface, red_handle_drawable_surfaces_client_synced was buggy.
* Fix scaling with large magnificationAlexander Larsson2010-08-301-32/+104
| | | | | | | | | | | | | | When scaling part of an image we need to specify the source coordinates in transformed coordinates. For large magnifications this means we will get pretty large values. Now, if e.g. src_x * transform is larger than 32765, then the coordinate ends up outside the pixman 16bit image size, so the rendering will not work. In order to work around this we generate a "sub-image" of the pixman image such that the src_x/y values we have to specify are zero (or near zero).
* Bump versions.Gerd Hoffmann2010-08-302-2/+2
| | | | | | Update #define in server/spice.h in preparation for the 0.6.0 release. We also got some new functions, thus we have to increate the shared lib minor number for spice-server.
* Add config functions.Gerd Hoffmann2010-08-302-0/+38
| | | | | | A bunch of configuration functions where never ported forward from rhel-6 to upstream. Add them so we can add qemu config options for these settings.
* Merge commit 'ea298a14e1cde8b811baf6bd187287f18dde0dee'Alon Levy2010-08-301-10/+0
|\
| * server: moved agent pipe headers to spice-protocolAlon Levy2010-08-301-10/+0
| |
* | server: cleanups in destorying surfaces codeYonit Halperin2010-08-301-29/+22
| |
* | server: really wait for a surface to be destroyed, when calling ↵Yonit Halperin2010-08-301-9/+75
| | | | | | | | | | | | | | destroy_surface_wait Waiting till all the pipe items that are dependent on the surface will be sent. This was probably the cause for freedesktop bug #29750.
* | server: consider also PIPE_ITEM_UPGRADE when searching for drawables in ↵Yonit Halperin2010-08-301-17/+19
| | | | | | | | red_clear_surface_drawables_from_pipe
* | canvas: Better coordinate rounding in scalingAlexander Larsson2010-08-271-28/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | When scaling in pixman you give the source coordinates in transformed space rather than in the source coordinates. This is a bit problematic when both source and destination coordinates are at integer positions, but the scaling factor is not an exact 16.16 fixed point value. We used to calculate the transformed source based on the floating point transformation, which gave the wrong answer sometimes. Now we do the calculations based on the fixed point transform that we give pixman. However, even with this patch I can still sometimes see issues related to this, although they are less bad.
* | server: red_send_image() - append image data to right marshallerAlexander Larsson2010-08-271-1/+2
| | | | | | | | | | | | The actual bitmap data was added to the main marshaller rather than the submarshaller that pointed to the SpiceImage part. This made us send too short messages failing demarshalling in the client.
* | server: red_send_image() initialize bitmap.flagsAlexander Larsson2010-08-271-0/+1
|/ | | | We're currently sending this to the network based on random memory.
* zap more unused bits.Gerd Hoffmann2010-08-271-14/+0
| | | | | BufDescriptor isn't used at all. Two AddBufInfo fields (slot_id and group_id) are not used any more.