Age | Commit message (Collapse) | Author | Files | Lines |
|
It appears the hardware trashes the BLT registers after a 3D context
switch, so we need to reload.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This was meant to be a part of the previous commit.
These are the scratch pixmaps for which we truly do want to allocate
GPU-only.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Contrary to earlier belief, the only usage of
CREATE_PIXMAP_USAGE_SCRATCH in the dix/mi are either along paths unused
by us or more importantly for operations which are detrimental to create
GPU-only buffers. So create CPU pixmaps instead.
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>
|
|
Just emit the remaining boxes!
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 X will crash!
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>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
|
|
We want to return early to avoid handing the empty box as the lower code
makes the assumption that it has work to do.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Whilst re-reading, I found the old naming scheme slightly muddled and
not nearly as descriptive as it should be. Hopefully this slight tweak
reads better in 6 months time.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Most of this branchy function is spent in manipulating the stack for the
function call, so inline 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>
|
|
|
|
This is slower than falling back to swrast for x11perf (up to 4x slower
on SNB), it is still faster than doing that rasterisation through a
WC-mapping and much faster in ordinary usage due to avoiding the
readback hit.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
So long as we have 64-bit instructions of course!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
By constructing the batch buffer directly for PolyRectangle, rather than
via miPolyRectangle->(PolyFillRectangle/PolyLine), we dramatically
reduce the CPU overhead and can saturate the GPU.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
We are hitting this path upon retiring the old scanout buffer following
a page-flip. We want to treat this as being hot and available for reuse,
so mark it as such until the next retirement pass.
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>
|
|
The backends are all expected to initialise the state required.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
For many of the core drawing routines, passing a BoxRec for the fill is
more convenient since they already have one generated by the clip
intersection.
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>
|
|
As damage accumulation is handled modally, we do not need to track the
mode per elt and so attempt to simplify the code.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
I translated the region to copy by the composite pixmap offset, only
failed to use the translated region for the actual copy command (using
instead the original boxes). Fix that mistake by avoiding the temporary
region entirely and applying the translation inplace.
We also have to be careful in the case of copying between two composited
windows that have different offsets into the same screen pixmap.
This fixes the regression introduced with a3466c8b69af (sna/accel:
Implement a simpler path for CopyArea between the same pixmaps).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
As the bo is outside of our control whilst it is under the influence of
an external renderer, we try to maintain it on the gpu so as to avoid
unnecessary ping-pong. But once it is wholly back under our control, we
want to stop paying the penalty for sharing it.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Take advantage of any available temporary buffer that we reuse for
readback knowing that it is the last operation in the batch.
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>
|