2015-07-02 06:04:33 by othyro | Files touched by this commit (49) | |
Log message: -xf86-input-{elographics,fpit,hyperpen,joystick,mutouch} -xf86-video-{modesetting,nouveau,qxl,suncg6,suntcx,voodoo} Imported into HEAD/x11. |
2015-06-27 00:12:58 by othyro | Files touched by this commit (2) |
Log message: Update to 0.1.4. This package will be imported after the freeze by request from wiz@. From Changelog: build-sys: use regular variables for LIBUDEV_CFLAGS No need for hardcoded variant here. build-sys: misc aligning and trailing ws Remove image cache While looking for leaks, I realized that the image cache looks quite suspicious. Not only it leaks when qxl_drop_image_cache() is called, since all the allocated image_info_t references are lost. But it is also useless: "The name implies it's a cache of some sort, but data is only added to it. The only time data is looked up in that cache is when it needs to be destroyed, and this is not done correctly and causes leaks. Since the cached data is never used and since it's leaky, it's better to remove it altogether" Don't leak ARGB cursor data bo qxl_load_cursor_argb() owns 2 references on the cursor_bo it creates: - one from the call to bo_alloc() - the second from a call to bo_output_bo_reloc() qxl_garbage_collect() release one of these refs, but the other one is never released, so ARGB cursor bos are leaked. This can cause out of memory issues, for example when running EL6 anaconda installer on a 2TB disk image (see bug https://bugzilla.redhat.com/show_bug.cgi?id=1199355 ). This is similar to what is done in qxl_surface_put_image(). build-sys: Fix indentation of trailing \ in Makefile.am Make sure they are indented with tabs and aligned. build-sys: Add spiceqxl_smartcard.h to _SOURCES This file needs to be listed in Makefile.am otherwise it will not be added to the tarballs make dist generates. Spice CCID: Handle server termination. Support IFD_RESET, print a diagnostic for unknown power sequences. Also add a message for apdus that come in while a reader is inactive. Remove an obviously unnecessary if stanza. README.xspice: clone and install xkeyboard-config Instead of copying /usr/share/X11/xkb README.xspice: clone more repos, add some script lines and more This helps build on a RHEL-6 machine vmc_read: rename variable "read" to "nbytes" This fixes the following compiler warning. spiceqxl_vdagent.c:49: warning: declaration of âreadâ shadows a \ global declaration /usr/include/unistd.h:357: warning: shadowed declaration is here playback_dir_changed: rename variable "index" to "offset" This fixes the following compiler warning. spiceqxl_audio.c: In function âplayback_dir_changedâ: spiceqxl_audio.c:386: warning: declaration of âindexâ shadows a \ global declaration scripts/Xspice: run vdagentd with -f command line option (fake uinput) scripts/Xspice: add default spice-vdagent executable names scripts/Xspice: better error messages for missing vdagent binaries Also added a check for the case variables are uninitialized (or when the executables are not found and which returns None) scripts/Xspice: which: warn if executable is not found Also handle None parameter case. Enable smartcard support for XSpice. This is done by creating a Unix domain socket to which smartcard messages are transferred, using the vscard protocol. A further system library, spiceccid, is used to provide an interface into pcsc-lite, specifically the pcsc-lite daemon, so that regular Unix applications can access the passed through smartcard information. Update drm properties correctly When connector properties got changed, those changes were not being propagated to user-space. This pushes those changes up so that e.g. new "suggested X|Y" properties can be used to help lay out multiple \ displays properly. This code is based on similar code from the nouveau driver. Xspice: fail if server can't be initialized Failure to bind to port should be an error, not a warning. https://bugs.freedesktop.org/show_bug.cgi?id=65185 |
2014-12-04 21:03:18 by othyro | Files touched by this commit (2) | |
Log message: xf86-video-qxl 0.1.3 Revise the XSpice audio processing to avoid the use of pthreads. The initial implementation used a separate thread to drive the audio playback channel. But if you have adaptive streaming turned on, you will eventually get a update_client_playback_latency message on the display channel (which in the Xspice case is being driven by the main, Xorg, thread). After enough time you would get a thread collision and bad things would result. I saw this manifest as infinite spin loops in snd_send_data. This patch eliminates the use of threading altogether, making everything run in the main Xorg thread using watches and timers, eliminating the possibility of thread collision. drmmode: Fix compilation warning One recent change introduced a gcc compilation warning: CC qxl_drmmode.lo qxl_drmmode.c: In function 'drmmode_set_mode_major': qxl_drmmode.c:251:9: error: ISO C90 forbids mixed declarations and code \ [-Werror=declaration-after-statement] CursorPtr cursor = xf86_config->cursor; This commit moves the CursorPtr declaration to the top of the drmmode_set_mode_major function in order to fix that warning. Remove call to CrtcRotate() Our driver doesn't support rotation, and calling CrtcRotoate() may result in crash. Let's remove that useless call. Fixes: http://bugzilla.redhat.com/1067709 Check qxl_download_box() arguments Sending empty region is invalid and the server returns an error (this can be triggered by typing space in xfig) Without the previous patch, error was ignored and the driver would enter an infinite loop. Assert on valid arguments, and return early if the given region is empty. Fixes: http://bugzilla.redhat.com/1151559 Assert on QXL_INTERRUPT_ERROR When qemu qxl device reaches a guest bug, it might set the QXL_INTERRUPT_ERROR interrupt flag, and stops processing guest commands. Therefore, it makes sense to check that flag in the guest and quit, instead of running in infinite loop in X and consuming CPU. Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1151559 drm: fail gracefuly on monitor resize If drmModeSetCrtc() failed, try to fallback to previous working configuration. Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1127552 In XSpice audio, fully clear the data structure; silences valgrind warnings. When uploading a region, do not go outside the source image size. This problem was exposed (and probably only occurs) when using XSpice in dfps mode with spice-html5, and resizing from larger to smaller. The screen would be resized, but the update region would still attempt to transmit any pending changes to the (now) truncated surface. This would often lead to a crash. Initialize the frame buffer used in dfps mode; this silences a number of valgrind errors. Tune the dfps region tracking to collapse to the bounding rectangle if too many small, incremental, updates are provided. Attempting to use x11perf to measure performance revealed a fairly serious weakness in the dfps code in that use case. In between fps ticks, the updated_region would grow to have thousands of rectangles, which made processing extraordinarily slow. This patch provides a cap on the number of rectangles inside a region; once it reaches the cap, we collapse the update_region to just transmit the bounding rectangle instead. Add helper functions for updating the boxes and regions; makes the code a bit cleaner. In XSpice mode, enable the ability to specify the various ram buffer sizes. Also adjust the mode selection to fit, and add a few larger modes. The display of the RAM size subtracts the frame buffer, but it has already been subtracted in setting the num_pages field. Skip modes more precisely. Free the region pointer as well; eliminates a memory leak in dfps mode. |
2014-08-07 05:00:12 by othyro | Files touched by this commit (2) |
Log message: Release 0.1.2 qxl_driver.c: fix compiler warning 'defined but not used' qxl_kernel_mode_enabled qxl_image.c: fix compilation break Since 3d511c30206bd8c9a207c436186a03af0bb02962 Xspice building is broken due to undefined MAX_RELOCS when not building with XF86DRM_MODE. drm: restore cursor after resolution change The Spice server & qemu reset the cursor state when changing resolution. Although X does restore the cursor on framebuffer changes, it doesn't for crtc config. Restoring the cursor here is the simplest way to solve the "invisible cursor" after resolution change bug with DRM driver. https://bugzilla.redhat.com/show_bug.cgi?id=1030531 Dynamically adjust chunk size to avoid command buffer overflow. The maximum number of "commands" that can be queued at once is fixed at compile time at MAX_RELOCS. However, during the creation of an image object in qxl_image_create(), the image is split into commands of maximum size 512*512. For a large dual-head system, it is easy to create an image for which the number of chunks will result in an overflow of MAX_RELOCS number of "commands". Identify this scenario and dynamically increase the chunk size to avoid the overflow, and the resulting assert() which crashes Xorg. Add support for server managed fds Fix qxl_driver_func to adhere to the API The driverFunc callback MUST check the passed in operand and only return TRUE it if understands it and has handled it. It must NOT blindly assume the op is GET_REQUIRED_HW_INTERFACES. While at also always define driverFunc, and welcome qxl to the 21st century. Add support for XSERVER_PLATFORM_BUS This is a preparation patch for adding support for server managed fds. fix memory leak when alloc uxa Make use of the new playback rate interface, if available. qxl: fix set cursor2 support for older kernel On older kernels we were getting -EINVAL not -ENOSYS, so we'd never render the cursor, gnome continuous uses a 3.10 kernel. Xspice: add better doc strings for audio & vdagent spiceqxl_util.[hc]: add copyright & license headers Xspice: cleanup vdagent files Xspice: fix cleanup when some processes are already dead Xspice: cleanup non regular files too xspice: chown both files used by vdagent for suid Xorg case When running a suid Xorg mkfifo and bind produce files owned by root. Change the ownership so that the user launched vdagent & vdagentd can write to them. This also makes it easier to cleanup the files from the Xspice process that is not running as root (and is launching both vdagent & vdagentd, hence they are not running as root either). The patch adds two new parameters, uid and gid of the agent used files, namely the virtio unix domain socket and the uinput fifo. spiceqxl_spice_server: no need to call spice_server_set_noauth twice tests/xspice_util.py: fix hardcoded port fix make dist |
2013-12-29 05:48:24 by othyro | Files touched by this commit (2) |
Log message: Update to latest stable release. Too many changes to list. Check ChangeLog. |
2013-06-09 14:48:36 by othyro | Files touched by this commit (13) |
Log message: Fix driver man suffix for SunOS. |
2013-06-03 13:23:11 by othyro | Files touched by this commit (1) |
Log message: wip -> sysutils for spice-protocol; was imported to HEAD; |
2013-06-03 04:19:48 by othyro | Files touched by this commit (5) |
Log message: Import xf86-video-qxl-0.1.0 as wip/xf86-video-qxl. The QXL virtual GPU is found in the RedHat Enterprise Virtualisation system, and also in the spice project. |