Or else face compile failures:
blt.c: In function 'affine_blt':
blt.c:1403:3: error: unknown type name 'pixman_f_vector_t'
blt.c:1407:4: error: request for member 'v' in something not a structure or union
blt.c:1408:4: error: request for member 'v' in something not a structure or union
blt.c:1409:4: error: request for member 'v' in something not a structure or union
blt.c:1411:3: warning: passing argument 2 of 'pixman_f_transform_point_3d' from incompatible pointer type [enabled by default]
In file included from /usr/include/xorg/miscstruct.h:52:0,
from /usr/include/xorg/regionstr.h:52,
from /usr/include/xorg/region.h:50,
from /usr/include/xorg/window.h:51,
from /usr/include/xorg/input.h:55,
from /usr/include/xorg/xf86str.h:38,
from sna.h:43,
from blt.c:32:
/usr/include/pixman-1/pixman.h:247:15: note: expected 'struct pixman_f_vector *' but argument is of type 'int *'
blt.c:1413:7: error: request for member 'v' in something not a structure or union
blt.c:1415:7: error: request for member 'v' in something not a structure or union
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Since clearing is a relatively trivial operation, allow us to do the
clear to a CPU bo rather than block on the GPU.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
A few assertions are there to catch less desirable behaviour rather than
outright errors. For these, just grab the backtrace and continue.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Until now we only applied pixel-exact rotations to the cursors. However,
this left the cursors ignoring scaling and so appearing incorrect on
outputs with transformations applied. An extra complications comes from
making sure that the scaling routine is signal safe.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Ideally, we would iterate over each CRTC and check that the transformed
cursor is still valid for the HW plane and then remember to transform
the cursor before displaying. Disabling the HW cursor if a non-native
transform is the first step in correcting the display of said cursor.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Sitting here with a 3200x1600 panel but no 1600x900 intermediate mode,
and I am too lazy to add it by hand.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When we are using the fallback method, we need to make sure the source
is on the CPU.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89053
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Even if we expect to flush at the end of the operation, we still want to
consider semaphores before overriding the engine selection.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In the normal command processing stream, we will have lots of
opportunity to ask whether we should be batching requests together. If
we wakeup without doing any work, then we will check inside the block
handler whether the GPU is idle and flush then.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
RR resources are freed before CloseScreen (as they are a ServerClient
resource), but on entering our CloseScreen callbacks we are left with a
set of stale pointers. Decouple those before proceeding so that we are
not tempted to dereference them.
Bugzilla: https://bugs.archlinux.org/task/43906
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Building intel driver with --disable-tools fails with following
configure: error: conditional "BUILD_TOOL_CURSOR" was never defined.
Reported-by: Tomas Pruzina <pruzinat@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89425
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Currently we only set the RR value for the output property on creation,
but we update that value every time we query the connector. To sync our
value with RR, we need to change the output property value.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Slightly more funky would be to poke around in the CRTC, but that should
require master. As it stands this should help verify that what X is
supplying to the driver matches user expectations
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we limit the swaps, then doing xrandr --output -off causes unity to
misrender. Not quite sure why, but the revert is easy.
Fixes regression from
commit 88e84320a3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Feb 24 12:44:19 2015 +0000
sna/dri2: Flush triple buffer swap on [un]redirection
but we still keep the async-swap fixes.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89371#c14
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
RRSetChanged() is much more recent than RROutputChanged(), and
RROutptChanged() allows for more finer grained updates. Switch to
RROutputChanged for compilation with xorg-server-1.14 and older.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When we enable buffer-age and Clients start taking advantage of that by
only submitting trimmed flips (SwapBuffersWithDamage) we don't want to
then lose that by randomly injecting new buffers into the mix (thereby
forcing the client to repaint the entire buffer and us to damage all
outputs). As new buffers are relatively rare, especially in a
steady-state game scenario, spend a few cycles to initialise the new
buffer with the current back buffer contents.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In the future, I anticipate moving the application of damage into the
core dri2 (so that clients can specify the damage region for flips).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Don't error out if the kernel no longer supports pinning (despite it's
usefulness it has been removed) and hope that the kernel just works now
on 830gm/845g.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If multiple Clients intermix DRI2GetBuffers and DRI2GetBuffersWithFormat
we can end up with format mismatches. Rectify this by checking the
bitsPerPixel of the buffer instead.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Unwind the trivial tail recursion from the clip box bisection and add a
couple of assertions on the inlined fast-paths.
References: https://bugs.freedesktop.org/show_bug.cgi?id=89295
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This benefits most when GT3 is coupled with eLLC and WT, but it is just
marginally a win over a BLT otherwise.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
No new ids, just fixed descriptions.
Sync upto
kernel commit 0dc6f20b9803f09726bbb682649d35cda8ef5b5d
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Jan 21 11:46:32 2015 -0800
drm/i915/bdw: PCI IDs ending in 0xb are ULT.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Once again we fall foul of a foreign bo that between consecutive calls
to the busy ioctl may be used by another client. Relax the assertion
that on the status of the bo being retired and double check afterwards.
Reported-by: Jiri Slaby <jirislaby@gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=70461#c101
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
src/uxa/intel_driver.c: In function 'I830HandleUEvents':
src/uxa/intel_driver.c:738:14: error: storage size of 's' isn't known
src/uxa/intel_driver.c:746:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration]
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When fixing up the sample projection of the trapezoids, we lost the
safety check that the trapezoid was valid.
Fixes regression from
commit bca08dc415 [2.99.917]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Mon Sep 29 19:30:03 2014 +0100
sna/trapezoids: Fix loss of precision through projection onto sample grid
Reported-by: Jiri Slaby <jirislaby@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70461#c95
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Turns out to be a false alarm as the machine I was looking at only had
4GiB. I thought I was looking at another one and started panicking about
where had all the memory gone...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In order to keep our sanity checks and buffers in order, we need to
remember to mark the new frontbuffer as the active scanout after an
asynchronous pageflip.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Internally we only use 32bits for limiting the maximum object size
(both for CPU and GPU allocations) so to prevent overflow limit the
reported aperture size.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>