The blit routines is uses are independent of the XAA driver interface
and can be used separately.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Once again I've confused existence of the enum with the ability of the
sampler to read that format.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Just because the GPU is spitting EIO at us does not necessarily imply
that a DRI client will also suffer. Spit out a warning for later bug
reporting and let them find out for themselves!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The goal is bring the overhead down to that of using the blitter. Tricky
given the number of steps to using the 3D pipeline compared to the
BLT...
A stretch goal would be to make IVB GPU bound for -copywinpix10!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reduce the two pass CompositeTrapezoids if we can perform the operation
inplace by calling pixman_image_composite from the span. This step
enables this for xrgb32.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The evil typo caused us to misalign the clip boxes and run over a
garbage array on 64-bit builds.
Reported-by: Edward Sheldrake <ejsheldrake@gmail.com>
Reported-by: Clemens Eisserer <linuxhippy@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52163
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Now that we are keeping a small cache of snoopable buffers, experiment
with using them for uploads more frequently.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Once again, we find that frequent buffer creation and manipulation of the
GTT is a painful experience leading to noticeable and frequent application
stalls. So mitigate the need for fresh pages by keeping a small stash of
recently freed and inactive bo.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The XAAGetPatternROP() and XAAGetCopyROP() functions were removed along
with the rest of XAA so we need to implement those tables locally.
Reported-by: Knut Petersen <Knut_Petersen@t-online.de>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Some of the routines in i810_accel.c are specific to XAA whilst others
are used elsewhere, for example in i810_dri.c. Therefore we have to be
selective over which ones we compile out without xaa.
Reported-by: Knut Petersen <Knut_Petersen@t-online.de>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the SwapBuffers is called after we have resized a Window but before
the client has processed the Invalidate notification, then the
SwapBuffers will be referring to a pair of stale buffers. As the buffers
are no longer attached to the Pixmap, we can not simply exchange them.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we exclude using the CPU bo if there is overlapping GPU damage, we
can forgo the call to keep the transfer the damage.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Further inspection reveals that whilst it may not hang the GPU, the
results are not pleasant or complete.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Remember to offset the box by the drawable deltas in order to
compensate for compositing.
Reported-by: Jiri Slaby <jirislaby@gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=52142
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
They appear to work fine with the BLT and only seem to cause issues when
used with the sammpler. So enable them for accelerated uploads and
downloads.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In this fairly common case, avoid both the double pass and use a simpler
algorithm as we can simply reverse the order of the boxes.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Even if the pixmap is entirely damaged on the CPU, we still may be in
the process of transferring it and so cause an unwanted stall.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>