Commit Graph

114 Commits

Author SHA1 Message Date
Gaetan Nadon
082d1689a8 .gitignore: use common defaults with custom section # 24239
Using common defaults will reduce errors and maintenance.
Only the very small or inexistent custom section need periodic maintenance
when the structure of the component changes. Do not edit defaults.
2009-10-22 12:34:18 -04:00
Philip Langdale
6c8fc7b280 Bump fo 10.16.8 Release 2009-09-08 22:21:33 -07:00
Gaetan Nadon
e3e3d8d248 xf86-video-vmware: Remove unused .cvsignore file #23776
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-08 10:47:40 +10:00
Dave Airlie
cce33db3f9 vmware: change to using ABI version check 2009-07-28 15:22:42 +10:00
Dave Airlie
0fddce5511 vmware: fix resource removal properly 2009-07-28 14:11:59 +10:00
Dave Airlie
4605e8d3a9 vmware: update for resources/RAC API removal 2009-07-28 13:32:41 +10:00
Philip Langdale
382c25f538 Bump for 10.16.7 Release. 2009-07-20 18:03:47 -07:00
Micah Dowty
c2d9678431 An imperfect fix for Xinerama state changes without a mode change
This patch improves behaviour for Xinerama state changes (via the
    VMWARE_CTRL) extension that don't have an accompanying mode change.
    This will be the case if a new Xinerama monitor layout has a bounding
    box with an identical size to that of the previous layout.

    Prior to this patch, the behaviour was pretty bad. If you sent two
    Xinerama states with the same bounding box, the second state would
    be set as pending but no actual mode change would occur, because
    the X server would already be in the right video mode. This means
    that the pending mode stays pending.

    If another Xinerama state comes in after this, we would hit our
    "Aborting due to existing pending state" error, and the new state
    would be discarded. This means we'd drop the mode switch on the
    floor, plus we'd lie to the client and say it worked.

    One example of the user-visible symptoms from this: The user has
    four monitors of the same size. We'll call them A through D.
    The VM goes into full-screen mode, and they set it to use screens
    ABC. Now they switch to BCD. These have the same bounding box size,
    so no mode change occurs and a topology is still pending. Now they
    switch to monitors BC. This mode switch is dropped, so the guest
    is still in the ABC topology and the mode is too wide for BC.

    This patch is an incomplete fix. If we're setting a new topology
    with the same bounding box, we'll flush the Xinerama state
    immediately since we know the mode switch will never occur. This
    means we don't get stuck with xineramaNextState set when it
    shouldn't be, and we don't have the problem with dropping
    subsequent mode changes. We also do set the new Xinerama state,
    so apps that query it will see the updated state immediately.

    But the fix isn't perfect- as far as I can tell, there's no way
    to notify applications that the monitor layout changed without
    a mode switch. So even though we've set the new topology, most
    apps won't notice. There are ways we could hack around this,
    but none of them are pretty.
2009-06-01 10:47:51 -07:00
Bob Long
d10841493c Fix black screen after resume from hibernate.
The root cause for the black screen and system lock up is
caused by not recovering the SVGA ID register after hibernation.
Incorrect ID register value will invalidate the FIFO memory start
register, and driver will not retrieve correct FIFO memory start
address and the busy read of svga FIFO sync register will lock up
the whole system.

Currently SVGA Xorg driver does not have a kernel module to handle
the power management event, but Xorg will call driver provided
LeaveVT before shutting down system and call EnterVT after resuming
system from hibernation, so these two callback functions are good
entry points to save and restore the ID register value. This patch
saves the ID register value in LeaveVT and restores the value to
SVGA ID register in EnterVT.
2009-05-22 15:48:55 -07:00
Philip Langdale
b4ea3052f8 Bump for 10.16.6 release 2009-05-12 16:48:43 -07:00
Micah Dowty
8e15f6669f Better cursor size limit and explanation
Increase the cursor size limit to 64x64, and give a
better explanation of the host's cursor size limits.
2009-05-12 16:46:39 -07:00
Micah Dowty
bfa3dfc27b Allow cursor updates while unhidden
This change just adds a flag to our hardware cursor,
telling Xorg that it doesn't need to hide the cursor
when updating its shape. This fixes the cursor flicker
in X11.
2009-05-12 16:46:00 -07:00
Micah Dowty
dccc9376a4 Unbreak vmwarectrl setres
The vmwarectrl tool's "setres" command was unusable,
because it looks like someone added the settopology
test without updating the argument indices for setres.
This patch makes setres usable again.
2009-05-12 16:45:29 -07:00
Micah Dowty
b7dbdd2876 Fix dynamic mode edge cases
The VMware Xorg driver supports dynamic modelines that can be set from
userspace via an X extension. These are used to implement VM features
which need to automatically change the resolution of the guest OS.

This driver implements the feature using two modelines.  The driver
would alternately update one mode then the other, so that in typical
usage one mode is current and the other is available for the next mode
switch.

This usually worked, but there were many edge cases that could cause
this alternating pattern to get 'out of sync', so we'd end up changing
the resolution of the current video mode. This could end up putting
the X server in a state where the screen resolution has been changed,
but the hardware was never reprogrammed for the new resolution.

This patch fixes the problem by explicitly searching for a dynamic
mode that isn't currently in use. We no longer rely on the alternating
pattern.
2009-05-12 16:44:42 -07:00
Micah Dowty
cfe8793180 Update README
Updates the copyright date, and replaces the rather out-of-date
2D documentation with a link to the updated 2D and 3D docs on
Source Forge.
2009-05-12 16:43:13 -07:00
Shelley Gong
e3769142d8 Automatically add modelines for the driver's built-in set of modes.
The driver has had a built-in set of modes for a while, but there
was nothing adding modelines to back them up, causing initial modes
to be rejected at startup with certain Xorg versions.

This change adds the actual modelines for sufficiently new versions
of the server (>= 1.2), as the necessary calls were only introduced
at that time.
2009-04-16 13:28:47 -07:00
Alan Coopersmith
3c223e8f7b Remove xorgconfig & xorgcfg from See Also list in man page 2009-01-09 16:39:07 -08:00
Philip Langdale
1bbef3aa7a Bump version for 10.16.5 release. 2008-08-19 11:23:44 -07:00
Bankim Bhavsar
6ea8e50005 Add RegionEqual function for older XFree86 versions.
Fixes bug : http://bugzilla.eng.vmware.com/show_bug.cgi?id=312853

When we added AUTOPAINT_COLORKEY capability to our VMware video driver,
region functions were used to keep track of colorkey painting.

REGION_EQUAL was one of them.

Unfortunately REGION_EQUAL was not present in regionstr.h shipped with XFree86 version
4.3.0.
This version is used by TurboLinux 10; causing X server to crash while playing videos.

REGION_EQUAL was added in revision 1.8 of regionstr.h and available for xfree86 version
4.3.99
onwards.
Reference:
http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/include/regionstr.h.diff?r1=1.7&r2=1.8

When I compiled the existing code(without my change), I see a warning was generated
indicating REGION_EQUAL is not present.
Too bad we missed it.

This patch includes
1) Slightly modified version of miRegionEqual from miRegion.c
2) Some formating cleanup.
2008-08-19 11:23:02 -07:00
Philip Langdale
0576b87c27 Prepare for 10.16.4 release. 2008-07-21 15:26:01 -07:00
Philip Langdale
ad8f17dec7 Video Overlay: Handle clipping correctly with AutoPaint colorkey.
We recently added XV_AUTOPAINT_COLORKEY attribute to the X video driver
to enable applications like Real player that rely on this attribute to
display video frames in Linux guest.

When this attribute is SET, we paint the colorkey on 1st frame and from
there on only when the video is moved.

This introduced a bug 305202 with clipping.

Consider a case when the video is playing, obscure the player window
with another window, without moving the player window, move the other
window away. The part of the window that was obscured didn't display
the video.

With this patch instead of relying on the target rectangle, we use
the clipBoxes supplied in every frame.
2008-07-21 15:23:50 -07:00
Philip Langdale
71f1ca515c Prepare for 10.16.3
Bump up version numbers.
2008-07-18 14:03:09 -07:00
Philip Langdale
e7f404938b Video Overlay: Add XV_AUTOPAINT_COLORKEY capability to the Xv extension of Linux guest driver.
Applications use XV_AUTOPAINT_COLORKEY capability to let the driver handle the painting
of colorkey.

Real Player assumes this capability as ON by default and hence prior to this patch videos
didn't play with Real player.

With this patch:
a) If AUTOPAINT_COLORKEY is SET then the driver handles the painting of the colorkey.
Painting is done on the 1st frame and from there on only if the video frame moves.

b) Adds UYVY fourcc format to keep it consistent with Windows SVGA driver and the host backends.

c) Changes the default colorkey from a pungent GREEN to a darker shade.
Real Player sets this colorkey and it looks better when the video is moved around.
2008-07-18 13:59:34 -07:00
Vinay Bondhugula
0705e7093e Trivial fix: Delete ASSERT() statement
Delete the ASSERT() statement that got introduced in the previous check-in.
2008-07-02 21:32:44 -04:00
Vinay Bondhugula
f4b5158960 Fix video overlay offscreen allocation bug
When Kaffeine player stops a video, it sets the cleanup flag to FALSE and may
start playing the next video. In its present state the driver does not check or
clean up the offscreen area. This is a bug as the newer video might need more
offscreen space for its frame. The fix is to check for the offscreen frame size
in videoPlay and restart the stream if necessary.
2008-07-02 18:17:58 -04:00
Vinay Bondhugula
b53bb2ad4c Prepare for 10.16.2
Bump up version numbers.
2008-06-12 17:34:30 -04:00
Vinay Bondhugula
1f7a8390a3 Fix VMWARE_CTRL and Xinerama Initialization
Move initialization code for the vmware control and xinerama extensions to
VMWAREScreenInit(), so that auto-resize and multi-mon work fine after a user
logs out and logs in again in a graphical display manager.
2008-04-29 18:29:11 -04:00
Vinay Bondhugula
db02720047 More xorg and xfree86 backwards compatibility
Push most of the xorg-server version checking into the configure script. With
this change, unmodified driver source compiles in the XFree86 4.3 tree.
2008-04-22 14:18:45 -04:00
Vinay Bondhugula
6849c0a5fb Change // comments to /*
This will make it easier to compile the driver against ancient versions of X.
2008-04-18 18:00:38 -04:00
Paulo Cesar Pereira de Andrade
b6c59761e2 Compile warning fixes
Major problem was prototype vmwareInitVideo not matching implementation
vmwareVideoInit. Remaining are adding an "ansification" of a function without
arguments, and removing/disabling unused variables/functions.
2008-04-17 23:04:45 -04:00
Vinay Bondhugula
7870dc715b Bump version to 10.16.1 in configure.ac
The previous change didn't bump up the version in configure.ac.
2008-04-17 20:54:23 -04:00
Vinay Bondhugula
be75c66fa7 Prepare for 10.16.1
Update the modinfo section and make a configure.ac fix.
2008-04-17 20:39:02 -04:00
Vinay Bondhugula
87e9b32618 Fix build for all modular versions of Xorg
This change makes the video driver compile with Xorg 7.0. There are a couple of
trivial changes that bring down the maximum Xserver version down to 2.0. Hacky,
but good enough for now.
2008-04-17 19:16:48 -04:00
Vinay Bondhugula
e4fa13951a Send down guest display topology
Send down the Xinerama topology from the guest down to the host, by setting
display topology registers in the SVGA device.
2008-03-26 21:32:47 -04:00
Adam Jackson
5aced9e39a vmware 10.16.0 2008-03-19 17:03:18 -04:00
Adam Jackson
cd8bb30189 Fix distcheck. 2008-03-19 17:00:41 -04:00
Bankim Bhavsar
1314a1cd22 Video Overlay: Source video parameters
This patch adds parameters to the source video frame.  Applications can request
only a subset of the source video frame to be displayed. These parameters are
srcX, srcY, srcWidth and srcHeight. width and height represent the entire
source video frame.
2008-03-14 12:42:40 -04:00
Matthieu Herrb
fdef3fd5ea Makefile.am: nuke RCS Id 2008-03-09 00:08:32 +01:00
Bankim Bhavsar
bfd8398dde Xv extension for VMware's video driver
This patch implements the Xv extension for VMware's X video driver.

The Xv specification can be found here
http://www.xfree86.org/current/DESIGN16.html

I've written a trivial offscreen memory manager that allocates memory from the
bottom part of the Video RAM and it can handle only 1 video-stream. Eventually
we intend to support upto 32 video-streams (there is already support for
multiple video streams in respective backends).
2008-01-23 22:13:07 -08:00
Vinay
a33ab73ffa Trivial libpciaccess related fix
Fix VMWAREUnmapMem to correctly unmap memory for the libpciaccess case.
2008-01-19 08:39:24 -08:00
Vinay Bondhugula
62d898669b Port to libpciaccess. 2007-10-08 10:54:04 -07:00
Philip Langdale
73db59fd82 Update for 10.15.2 release 2007-09-25 16:06:38 -07:00
Philip Langdale
ee2fe14d37 There are problems when running with old X releases with a
global symbol collision with the mouse driver.
2007-09-24 11:48:12 -07:00
Philip Langdale
cfdb0140fa Guard modinfo section against gcc. 2007-09-10 21:19:38 -07:00
Philip Langdale
e41aef1fb1 Ready 10.15.1 release.
To allow for easier detection of driver version by other VMware tools,
we are embedding the version in a .modinfo section so that the Linux
kernel 'modinfo' tool can be (ab)used to check it.
2007-09-10 21:16:04 -07:00
James Cloos
2331c7d162 Add *~ to .gitignore to skip patch/emacs droppings 2007-09-03 05:52:51 -04:00
Philip Langdale
ec4dc29434 Update copyright date. 2007-07-09 13:45:22 -07:00
Philip Langdale
0c76b95e7a Add svga_modes.h to Makefile.am 2007-02-09 15:06:17 -08:00
Philip Langdale
a283c62c1d Filter out default modes that are larger than the hardware
maxmimum size and add an explicit mode for the hardware
maximum.
2007-02-09 11:09:17 -08:00
Philip Langdale
f4540555dc Correct the incorrect 1080p resolution.
Should be 1920x1080 and not 1900x1080. Whoops.
2007-02-09 10:00:32 -08:00