We may mark the scanout as detached when all outputs are turned off (for
example during rotation) and so in the subsequent block handler we need
to be careful in case we are handling a detached shadow.
Reported-by: chr.ohm@gmx.net
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52514
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
With a DRI compositor we have to flush the output after every request,
which leads to major inefficiencies. This can be mitigated slightly if
we know we will have to upload shortly, which we track using the pixmap
flush flag.
In particular PutImage is meant to upload inplace to an active DRI
buffer, however this was accidentally dropped in
commit a253c95ec6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sun Jul 15 13:32:35 2012 +0100
sna: Prefer uploads to be staged in snoopable bo
Performace of putimage500 on ivb i7-3720qm:
bare: 4610
gnome-shell: 3000
patched: 3390
Reported-by: Michael Larabel <Michael@phoronix.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
I think the likelihood of a new product being launched based on a 8xx
design is remote enough not to worry about.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This is in contrast to libbacklight but closer to our original code as
we prefer a known custom backlight controller over the ACPI interfaces.
As only the ACPI interfaces are marked as firmware, and the custom
backlight controllers as platform, we therefore need to prefer platform
backlight devices.
Reported-by: Austin Lund <austin.lund@gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=52423
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drawable_gc_flags() asserts that the gc has been moved to the CPU prior
to its calls so that it can read the reduced raster operation.
Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Before enabling the RENDER pipeline for this operation, let's just see
what is required to fully use the BLT pipeline as well.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As the fallback uses a multiple-pass algorithm updating one plane at a
time, we wish to prepare the fallback surface for reads.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Keep the general polygons as only using the GPU if necessary, until the
cost of the routines is analysed.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
For tiny transfers, the cost of setting up the GPU operation outweighs
the actual savings through increased throughput. So we try to guess when
it will be preferrable to simply read from the GPU bo directly.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As kgem_buffers may be reused and repurposed through the snoop cache it
is no longer true that only proxies will have the io flag set.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We interpret a FillRect that erradicates the existing damage as a
clear-event and an opportunity to see if it is worth migrating the
render commands to the GPU. This is undermined if we leave the
'prefer-cpu' flag intact.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As they are kept in special caches, we can reserve the unreusable flags
for exceptional buffers.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This is in common with the other drivers and avoids the conflict with
'vmalloc/vmap' used by the kernel for allocation of contiguous virtual
mappings.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Bring the code uptodate with both kernel interface changes and internal
adjustments following the creation of CPU buffers with set-cacheing.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>