As we now emit work whenever we wakeup and find the GPU idle, we rarely
actually have pending work in the deferred flush queue, so try to avoid
installing a timer if we are not accumulating work.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
After we enabled inplace readback, we can just apply the INPLACE hint to
all fallbacks, but instead apply it to the automatic testing for a
potential inplace operation.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Avoid displaying a buffer filled with random junk when resizing (and
thereby creating a new) framebuffer.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
However we cannot enable acceleration if we do not recognise its
hardware layout or instruction set.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
These SDV should have been returned to the manufacturer long ago and
replaced with real systems. So if they are still in use, add a gentle
reminder.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we've chosen to fix the kernel to handle CRTC offsets > 4096, drop
the automatic workaround. However, allow the user to force creation of
PerCrtcPixmaps for the purpose of debugging (and to workaround the bug
in older kernels) and to fallback to trying a shadow fb if the setcrtc
fails with the composite fb.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This has two effects. The first is that we confirm that the EIO was
indeed a GPU hang and not some other form of I/O failure (for example
swapin). And the second is that it means we also print the warning to
look for an i915_error_state when we detect a GPU hang.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we expect to only emit this set of copy_boxes() and then submit the
batch, we would prefer to use the BLT for its lower latency.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Even if page-flipping itself is disabled, we still want to allow the
client to schedule wakeups for some future vblank which requires
listening to the kernel vblank notifications.
Reported-by: Eric Anholt <eric@anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51699
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As an alternative to vmap, we can use the kernel for all memory
management through bo, which is much preferred for its simplicity (i.e.
avoiding introducing even more vm complexity).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we now treat CPU all-damaged as a special case for deciding when and
where to migrate, look out for that condition after adding damage.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Be consistent and avoid the confusion when mixing operations on the
region boxes and the original boxes.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Just to avoid the warnings after fallback to comparing the d_name to
the list of known interfaces.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Again, to avoid the forced ping-pong as we upload the damage after
nearly every operation, simply prefer to use the GPU in such cases.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
A nasty habit of applications is to fill an area, only to read it back
with GetImage, render locally and replace with PutImage. This causes a
readback of an active bo everytime, so let's try to mitigate that by
preferring not to use the GPU after a forced readback.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>