Move things around a bit so the driver compiles with
servers back to Xserver 1.0.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Update the Manpage with new options and a brief modesetting- and 3D
description.
Signed-off-by: Thomas Hellström <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
The traditional accelerated copy methods aren't format aware.
Make saa copy format aware,and pass formats on to the driver copy function
if available. If the driver can't handle format conversions it needs to
return FALSE.
This fixes format confusion in the copy composite fastpath.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
The damage region may be much larger than the actual area
filled, so make sure we read back any hw contents in the damage region
since we use it to mark sw dirty.
Revisit this in the future since it may increase readbacks in an
undesired way. There are workarounds.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Trying to accelerate scratch pixmaps doesn't work currently,
and I'm not sure it's a big benefit either.
This is in line with what EXA does.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrants <jakob@vmware.com>
Use U and V textures and corresponding dma buffers that match
the size of the input UV data rather than using textures and DMA buffers
that match the Y data. This simplifies data copy and reduces the amount of
image data transfered to the host by up to 50% (YV12).
It also reduces dma buffer- and surface memory usage correspondingly.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
This enables the standard XV color conversion control attributes
contrast, scaling, saturation and hue.
Currently the attribute change takes effect on the next image only.
If we ever implement a ReputImage callback, we can use it to update
the image immediately on attribute change.
The attribute ranges follow those used by the proprietary Nvidia driver.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Also make it easier to modify the color conversion matrix based on
yuv encoding properties.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Rendercheck mode is used to enable acceleration of all supported composite
operations, regardless of the current data location. The mode is off by
default, but could be turned on to test the hardware composite operation
implementation. Due to excessive data migration, rendercheck mode will be
slow.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
That is reserved for dri2 front or fake front pixmaps that need
immediate flushing of software contents to hardware.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
The DRI2 code doesn't copy the device name, but assumes the storage
is persistent.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by: Alan Hourihane <alanh@vmware.com>
Use option "StaticXinerama" or "GuiLayout" to set initial GUI topology,
similar to how these options are used with the legacy driver.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
In this case it's the parsing of the gui / statix xinerama topology.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
It's more user-friendly and in line with what it's being used for in the
vmwgfx driver.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
A bunch of fixes that makes the fallback from vmwgfx to vmwlegacy easier.
1) Allow only 16 and 24 bit depths with vmwgfx. We may revisit this later.
2) Try to reclaim some resources if pre_init fails.
3) Print error messages so the user understands what happens on fallback.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Preparing for choosing driver path in preinit instead of using
shim loader.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
This fixes two issues with the device fifo communication:
1) Idle the fifo before initializing it. If the fifo is already up and
processing data due to an uncleanly shut down server, and init could
otherwise confuse the device.
2) Mark fifo memory volatile when writing to it and make sure commands
are written before telling the device they are available.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
When compiz is enabled, we may try to DMA sw rendered contents of dri2
drawables to surfaces while VT switched. I'm not sure how this could be
happening, but queue the DMA until the next block handler.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Alan Hourihane <alanh@vmware.com>
The dirty trackers weren't correctly translated to
pending presents / updates when a pixmap was bound as a scanout.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrants <jakob@vmware.com>
A damage tracker was sometimes attached to a pixmap in the middle of an
operation. That meant that damage was never registered for that operation
which caused dirty-tracking to fail. Instead, add a damage tracker as
soon as we have storage attached to the pixmap.
Also, when a pixmap was resized, the dirty region trackers could become
stale, and cause DMA operation extending outside of the pixmap with
server crashes as a result. This commit fixes that.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
With this option enabled, we compose all contents (both sw and hw) in
the guest before presenting it. Just like the old xorg state tracker did
when 3D was enabled. It's not as bad as the old xorg state tracker was for
interactivity, but there's a small but noticeable lag when moving windows.
It's mainly intended for testing purposes, like testing the surface
dirty paths in the kernel module.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
When setting up damage tracking, previously the code would guess wether
sw or hw was currently dirty. The caller always have that information,
so pass it to the damage tracking setup function.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
With this option set to true, accelerated copies to a scanout pixmap will
be performed as hardware presents instead of copies to an intermediate
3D surface backing the scanout pixmap, followed by a present.
Depending on the application this might be a performance boost, but since
it might trigger device software readbacks in other situations, for example
dri2 copy front->fake_front, it might be a performance hog in other situations,
so disable it by default. (Before this commit it was enabled by default).
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Introduce relevant acceleration options and fix up the log printout.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by: Alan Hourihane <alanh@vmware.com>
The kernel now takes care of doing this the right way;
no need to duplicate that functionality.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
If there is a risc that we need two simultaneous cursors,
(two outputs showing the same contents, at least one of them explicit),
fall back to sw cursor.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
The fb allocated for transformed data always matches the scanout region,
so set the crtc origin to (0,0)
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Also map connector types that are not in the array to "Unknown".
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
This results in the vmware driver assuming there is only one PCI domain,
which I think is true for everywhere this is expected to run anyway.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
The LookupWindow function was deprecated in xserver commit ed75b056511ccb4
and removed during the Xorg 1.11 merge window by commit 82a8677d9175732.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
This introduces fence objects with 2.0, and present / present readback
ioctls with 2.1.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Add a hack so that we avoid enabling all connected outputs during the
initial configuration. On older X servers they would be enabled as cloned,
which didn't really cause any problem, but on later X servers they would
initially be enabled next to eachother which looks odd.
A RandR call will still show the disabled outputs as connected, and if there
is a monitor section in the config file for the output in question,
it will also have a connected status, so that it may be explicitly enabled
or disabled from a config file.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>