summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-04-05test/present-speed: More measurement for different swap methodsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-05test/present: Also test swaps on windows (as well as full screen flips)Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-05sna/dri2: Prevent the sw cursor from copyig to a buffer as we discard itChris Wilson
During swapbuffers, the sw cursor tries to write to the old buffer. Ordinary this is not an issue as we are discarding it, but under TearFree that write causes us to instantiate the shadow buffer with a possible recursion into set_bo and mayhem. v2: commit 226a58bc592d4ed305b7ad0e460f1ee2548e0ddf Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Sat Apr 4 20:58:24 2015 +0100 sna/dri2: Prevent the sw cursor from copyig to a buffer as we discard it Tried to fix it by disabling SourceValidate. However, it a direct hook into the Damage code by miSprite that triggers the copy. Since there appears to be no way to intervene, we just mark that copy as internal and ignore it. Reported-by: Chris Bainbridge <chris.bainbridge@gmail.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=89903 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-05sna: Initialise hwcursor to trueChris Wilson
So we don't disable the hwcursor when we have a rotation set but not all pipes activated. Reported-by: Chris Bainbridge <chris.bainbridge@gmail.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=89903 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-04sna/dri2: Prevent the sw cursor from copyig to a buffer as we discard itChris Wilson
During swapbuffers, the sw cursor tries to write to the old buffer. Ordinary this is not an issue as we are discarding it, but under TearFree that write causes us to instantiate the shadow buffer with a possible recursion into set_bo and mayhem. Reported-by: Chris Bainbridge <chris.bainbridge@gmail.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=89903 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-04sna: Add DBG for why we fallback to sw cursorChris Wilson
References: https://bugs.freedesktop.org/show_bug.cgi?id=89903 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-04test/present-speed: More buffers required to hit maximal frameratesChris Wilson
5 buffers are required for swap elision, plus an extra or two for IPC scheduling jitter. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-03sna: Rewrite swizzling funcs using macrosChris Wilson
Save a little space at the expense of a little readibility. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-03sna: Implement missing 9^10^11 swizzle modeChris Wilson
As found on my gm45... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-03configure: Replace hardcoded pkg-config --exists with PKG_CHECK_EXISTSChris Wilson
Suggested by Emil Velikov: Normally hard coding pkg-config is considered a bad idea. Please try PKG_CHECK_EXISTS - it would work like a charm when cross-compiling. Cheers Emil Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-02test/dri2: Reset swap-interval after testing async swappingChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-02test/dri2: Check vblank waitsChris Wilson
Make sure that waiting 60 times for a vblank, 60 msc pass Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-02sna/dri2: Fix multimonitor swap elisionChris Wilson
We were not updating the window->crtc for the immediate swaps with the result that after switching CRTCs, we were requesting a vblank on the wrong pipe and triggering an error path (forcing the blit and negating the elision). Testcase: test/dri2-speed Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-02test/present-speed: Include a measure for fence signalling overheadChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-02sna: Do not call an extra busy ioctl for scanout flushsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01sna: Don't unroll BLT pointsChris Wilson
The compiler is smarter than I am; unrolling hurts here. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01sna: Add DBG option to disable manual detilingChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01sna: Relax a y-tiling fb assertionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01sna/dri: Avoid using the BLT for DRI2CopyRegion if no semaphoresChris Wilson
We expect mesa nowadays to preferentially use the render pipeline for doing its clears and so want to avoid handing it back an active BLT bo if we don't have semaphores (as that would cause a sync). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01configure: Make tools/PROGRAMS agnostic to tools presenceChris Wilson
In order to make tools indivdiually selectable for compiling, we don't want to override earlier tools - so use '+=' rather than a plain '=' when adding each tool to the set of PROGRAMS. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01sna: Relax unclean rules to check busyness on all foreign pixmapsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01sna/present: flush is not requiredChris Wilson
present.flush is called on the Window after a copy from a Pixmap is completed - which will be naturally flushed anyway. What the API should be passing is the Pixmap, since we do want to flush the operations from it before sending the idle event. C'est la vie. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01tools/dri3info: Query refresh rate on Primary monitorChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-04-01sna: Fixup inverted logic for new boChris Wilson
We only want to inspect the busy status of bo we have not yet added to our execbuffer. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-31sna: Consider idleness of both rings if we need a semaphoreChris Wilson
When emitting batches early for improved GPU/CPU concurrency, we only want to do so if the target ring is not busy. However, if the batch requires a semaphore, we also need to consider the other ring as well. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-31sna: Flush BLT operations to an idle GPUChris Wilson
We improve dispatch latency if after creating a command buffer we immediately submit if the GPU is idle. This improves concurrency as we continue to build the next command buffer as the GPU executes and helps prevent needlessly using one engine for too long (i.e. sometimes we may be able to execute the work much early and do the ring switch cheaply). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-31sna: Use more explicit retire-requests after syncingChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-31sna: Query the engine residency on foreign bo before useChris Wilson
Since knowing which ring the bo is currently active on is important when considering the impact of semaphores on the next operation, be sure to query it on foreign bo before we use them. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-31sna/gen6+: Prefer the BLT for small copiesChris Wilson
Even on GT3, it is preferrential to use the blitter if the copy is small (due to the latency in execution). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-31sna/gen6+: Prefer the BLT for small self-copiesChris Wilson
Even on GT3, it is preferrential to use the blitter if the copy is small (due to the latency in execution). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-31Add TILE property support (for MST tiled monitors)Chris Wilson
Based on the patch for modesetting (and lots of work) by Dave Airlie Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-29sna: Limit the last gasp execbuf try to ENOSPCChris Wilson
Disabling the outputs and trying again can only possibly help in the case of fragmentation. In all other failures modes (typically GPU hang) it just causes a slow flash of the display. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-28sna: Mask the batch lengthChris Wilson
It's white lie that only is technically required for gen2, and works around a massive performance hit on gen7. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-25sna: Refresh properties even if we skip the detection probeChris Wilson
Properties may refresh quickly, more often than the output status changes. We want to query the properties without doing a forced probe, so make sure we refresh the values if the user requests a property. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-25Use AC_FUNC_ALLOCChris Wilson
The preferred all-inclusive method for finding alloca(). Reported-by: Richard Palo <richard@netbsd.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89762 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-25Use AC_HEADER_MAJOR to find how to include major()Chris Wilson
We need to include <sys/mkdev.h> on Solaris. Reported-by: Richard Palo <richard@netbsd.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89763 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-25sna: Add include <alloca.h> for compiling on SolarisChris Wilson
Reported-by: Richard Palo <richard@netbsd.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89762 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-24sna: Detect Y-tiled scanout featureChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-24test: Test tiling across DRI3/PresentChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-20sna: Remove bogus assert(output->randr_output)Chris Wilson
During shutdown, we may get backlight uevents after removing the randr_output. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-20tests: Add basic present benchmarkChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-19sna: Protect against ABI breakage in recent versions of libdrmChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-17sna: Use struct pixman_f_vector for compatibility with older pixmanChris Wilson
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>
2015-03-14sna: Skip inplace operation to a busy clear GPU boChris Wilson
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>
2015-03-14sna/gen6+: Demote BLT ring switching priority if semaphores are disabledChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-13sna: Start demoting some assertionsChris Wilson
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>
2015-03-13sna/gen6+: Relax assertions in light of !semaphoresChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-13sna: Fix assertions for transformed cursorsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-13sna: Remove redundant RRGetInfo on hotplug discoveryChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-13sna: Explicitly compute whether the transform is affine for HW cursorsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>