Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
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>
|
|
Reduce the logging verbosity of DBG so that it only appears in the
logfile by default - makes debugging much more pleasant.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Zdenek Kabelac <zkabelac@redhat.com>
|
|
Remember to set it initially to false so that we randomly do not start
using fallbacks.
Fixes regression from
commit 0cd2c43fa8f3a66d612589ad1163a90e427668ac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sun Oct 13 14:46:45 2013 +0100
sna/trapezoids: Use the aligned fast path for fallbacks
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Route the fallback methods through the force_fallback aligned fast
paths.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
We can replace the division by a multiplication.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
We need to be careful not to execute threads past the end of the alloted
buffer by making sure the clip extents correctly align.
Reported-by: Joseph Yasi <joe.yasi@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70204
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
If the trapezoids are rectilinear, they should hit a fast path through
the span compositors and so threading them seems pointless. Expect
possibily for inplace pixman operations.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1197921
Link: http://lists.x.org/archives/xorg-devel/2013-October/037996.html
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Edges that extend past the left hand side of the clip box cannot simply
be ignored (since they contribute to the scanline to their right, our
region of interest) but they need to calculated separately rather than
merged into the first cell.
Reported-by: Pavel Ondračka <pavel.ondracka@email.cz>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69469
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
We know that when we access either a CPU or GTT mmap we are vulernable
to receiving a SIGBUS. In fact, we can catch these and abort the
operation preventing X and all of its clients from randomly dieing.
This helps for instance if you try and use a 1GiB frontbuffer on a 2GiB
machine...
For complete protection, we also need to catch signals for all GTT maps,
such as VBO and staging buffers. (TBD)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Mark how dangerous this function is by giving it a __ prefix.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Otherwise we end up cloning the scanout only to leave it dangling if the
client copies the from the front-buffer and then writes to it.
Reported-by: Nick Bowler <nbowler@draconx.ca>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64675
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
"src-x and src-y register the pattern to
the floor of the top x and y coordinate of the left edge of the
first trapezoid,"
Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1178020
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The realisation dawns that it wasn't the ordering of points within the
triangle, but simply that I was replacing the wrong one.
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Overflowing the buffer is unlikely, so pass the hint on to the compiler.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Avoid an allocation in the common case where the set of trapezoids is
fairly narrow.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
As we know the maximum extents of the trapezoids, we know the maximum
number of cells we will need and so can preallocate them.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The principle change is to switch to the old Privates API and undo the
Region renames.
The downside is that this ignores the critical bugfixes made to the
xserver since xorg-1.6 - but I assume that whoever wants to run the
latest hardware on the old xservers is also backporting those stability
fixes...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The idea is to implement more fine-grained checks as we may want
different heuristics for desktops with GT1s than for mobile GT2s, etc.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The single-threaded code used the pre-computed width/height and only
required the origin from the bounds. However, the threads need to
allocate memory for themselves based on the computed bounds, and so it
helps if those bounds are then correct (rather than only the top-left
being in local space with the bottom-right in global coordinates).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Remember that for an inplace operation we are not dealing with an a8
mask, but rather a x8r8g8b8 surface and so need to step accordingly.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This was to track a pixmap that had been used for migration (i.e had in
the past been used for mixed rendering). It is no longer used so remove
it.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|