An accidental drop of the if (!is_translation) broke composite copies
under a transform.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76244
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we walk the output lists in the same order as they are listed by
RandR, we are more likely to hit favourable priority sorting. E.g. the
user is likely to setup the outputs in the same order as listed, meaning
fewer CRTC transitions etc.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
For whatever reason, presumably to do with the switch between CRTCs, we
need to disable the panning before setting the mode in order for our
desired CRTC position to take effect.
Reported-by: Jeff Katz <bugzilla@kraln.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76146
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Under PictFilterNearest, we can ignore fractional translations (not all
renderers discard those.) And if we are being approximate, we can loosen
our tolerance as well.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Normally, we try to render into the CPU bo of a SHM pixmap. However, under
the right circumstances we may try to do a series of rendering into the
GPU bo and then copy it back to the CPU bo. In that case, we need to be
sure to mark the pixmap as requiring the flush.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This supports solid, copy, put_image, and get_image acceleration via the
BLT engine. RENDER acceleration (composite) and Xv would be piles of work,
which is not worth doing since SNA exists, and Glamor is coming.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
I forgot that the initial memset(&fill, 0, sizeof(fill)) was no longer
performed and we rely on explicit initialisation during the setup, so
add the missing fields.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76088
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we are not supplied the path, call the libdrm function to search for
the canonical name for our device.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The complication comes with stolen bo that we treat as purged (because
they have no backing storage we can access) and so require an extra
caveat.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
On a lone machine I had a vital fix for setting the destination tiling
bit inside the XY_PIXEL_BLT command. Sadly, I forgot about the fix before
the patch from another machine.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This is a sanity check that the pixmap is mapped for use by the CPU
prior to us actually using it.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The current snapshot is 1.15.99.901, which means that the new feature
will first be available in 1.15.99.902.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The assumption that all paths prevalidate the restrictions upon creation
the bo are false. Some important paths try to force the bo creation in
order to meet client expectations (e.g. DRI). So we are faced with
impossible requests which must fail, so make sure we do report those
failures.
Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1289049
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If for some reason we have an fd, but no device path, use the likely
default path (derived from and validated against the major/minor of the
open device fd).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In the post-modern world, the platform device nodes are handed to a
non-privileged Xserver by systemd/logind. We can then query the core for
our assigned fd rather than try to open the device for ourselves (which
would fail when trying to obtain DRM_MASTER status). A consequence is
that we then do not directly control DRM_MASTER status and must act as a
delegate of systemd.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
If we lock the glyph cache and then hit an error, we must make sure we
release our lock. An easy way would be not to lock when we may err.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
On gen2 (like gen3), 8-bit destination surfaces are read into the Green
channel (and written to from the Green channel). Therefore the expected
alpha blending must instead be converted to colour blending.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75818
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
So that the lockless reads do not see the task complete signal prior to
marking the task as successful. Otherwise, we falsely detect that the
thread trapped a signal and kill them all.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The goal here is to predict when we are uploading an entire image though
multiple PutImage requests. If the image is small enough, then the
PutImage will be contained within a single request and the damage
tracking will be accurate.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Fixes regression from
commit 1de1104064
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Feb 21 22:43:04 2014 +0000
sna: Use a hint to do whole image uploads inplace
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75549
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
One of the failure modes for execbuf is running out of memory - often
this is reported as a false ENOSPC (thanks shmemfs!). Because of this,
we should try to resubmit after we purge our caches.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
To handle sigtrapping of the threads, we allow the threads to handle
their async signals and upon hitting the trap, we kill the thread. All
the rest of the threads are reaped by the main xserver thread
afterwards.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>