Commit Graph

3960 Commits

Author SHA1 Message Date
Zhigang Gong e8aa9cedbf uxa/glamor: Remove extraneous flush
When glamor is enabled, a pixmap will not be accessed by UXA's
accelerated functions. Only unaccelerated functions may access those
pixmaps, and before each unaccelerated rendering, it calls
uxa_prepare_access which will do a glFlush. Combined with a flush before
sending to DRI clients, we no longer need to flush after every
operation.

Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Zhigang Gong 4ca94ed91f uxa/glamor: Remove dead code.
Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson 5576afc7d1 sna: Inline checks for over-sized buffers during pixmap creation
Make the tests for acceptable GPU pixmaps explicit and upfront.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson b2dc17678f sna: Always search for an exact active match first from the bo-cache
And accept second-best only if permitted by flags.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson caf41ae23d sna: Force tiling on medium pitches if not reduced for other reasons
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson 1b688ca0cf sna: Delete the last buffer if destroyed without being used on the GPU
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson 4a68e72771 sna/gen3: Prefer to use the blitter for solid fills
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson 199e357dc6 sna/trapezoids: Pass the sna pointer to the callees
Avoid the repeated multiple indirect dereferences.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson bd7aa1754d sna: Avoid unnecessary call overhead for read-only move-to-cpu
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson 294c8791c4 sna: Use a cheaper no-reduction damage check for simply discarding further damage
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson 7ff42e9c83 sna/damage: Mark the box as packed so that the embedded_box is aligned correctly
valgrind was complaining about an overlapping memcpy on a 64-bit
platform as gcc padded the sna_damage_box to 28 bytes...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson 4652a20de5 sna/gen3: Check for a non-NULL bo before incrementing its ref in reuse_source()
For gen3, we may reduce a source into a constant operator and so
dispense with keeping a bo. When duplicated into the mask channel, we
then need to be careful not to dereference the NULL pointer.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-03 21:35:03 +00:00
Chris Wilson 777fcc9b11 sna: Prefer not to force the creation of gpu bo for pixmap uploads
As this causes a significant regression when benchmarking firefox on SNB
with firefox-planet-gnome if we already have CPU buffers.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-01 18:45:53 +00:00
Chris Wilson 1a6c16a24c sna: Keep a freelist of buffers
As reallocation of bo is the most frequent cause of malloc/free.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-01 15:24:46 +00:00
Chris Wilson f008a2a90c sna: Tune blt routine
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-01 15:24:46 +00:00
Chris Wilson b57c7248ac sna: Delete some redundant code
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-01 15:24:45 +00:00
Chris Wilson 83d16455b7 sna: Eliminate one union pass when reducing damage-add
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-01 15:24:45 +00:00
Chris Wilson 2f5b769e71 sna: Move some checks against programming errors to asserts
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-01 10:12:59 +00:00
Chris Wilson 24bf59c43f Revert "sna: Increase the minimum alignment constraint for g33"
This reverts commit 2934e778f0. The actual
cause of the bug I was seeing on my PNV box turned out to be
a1f585a3d0, so time to reinvestigate the alignment issues.
2011-12-31 18:57:57 +00:00
Chris Wilson 770a953ff0 uxa/video: Clear all state structures before uploading
A regression from eb859f6446 left some of the state uninitialised
before uploading to the GPU leading to undefined behaviour.

Reported-by: Alexey Shumitsky <alexey.shumitsky@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44338
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44252
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 17:22:29 +00:00
Chris Wilson f1995c684d uxa: the video destination should be in the render write domain
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 16:26:39 +00:00
Chris Wilson 511146d2e4 sna: Implement inplace trapezoidal addition (for clipmasks)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 15:36:18 +00:00
Chris Wilson a1f585a3d0 sna: Update pixmap->devKind for GTT mappings
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 15:36:18 +00:00
Chris Wilson 343de19ef9 sna: Implement tiled uploads for small stipples larger than patterns
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 15:36:18 +00:00
Chris Wilson fb15cf2294 sna: Make sure the shadow pixmap is suitable for scanout
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 15:36:18 +00:00
Chris Wilson 281425551b sna: Tweak throttling to be run before going idle
The goal is to avoid introducing extra latency in the middle of a
command sequence and to delay it until we have to wait for the clients.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 15:36:17 +00:00
Chris Wilson 2f5448f132 sna: compare tiling against minimum width for relevancy
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 15:36:17 +00:00
Chris Wilson e82b3d8069 sna: Defer the initial source upload if the GPU bo will be untiled
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-31 15:36:17 +00:00
Chris Wilson 72624b0b5b sna: Remove redundant use-gpu-bo clause
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-30 08:24:41 +00:00
Chris Wilson 6dc9bbc016 sna: Fix DBG for no intersection with damage
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-29 22:52:03 +00:00
Chris Wilson 0dc5c0651c sna: Tune disarming of the scanout flush timer
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-29 13:49:23 +00:00
Chris Wilson ccd895c61d sna: Allow uploading inplace to a freshly created GPU bo
If the operation is favoured to be performed using a WC upload, presume
that we will use the uploaded pixmap on the GPU and so prefer to create
a GPU buffer to hold the fresh data.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-29 12:23:17 +00:00
Chris Wilson f85a853455 sna: Only update the damage region as necesary for contains-box
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-29 11:59:57 +00:00
Chris Wilson f53936407b sna: Reset the source counter upon dirtying the shadow pixmap
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-29 11:59:37 +00:00
Chris Wilson c9f7f10bc5 sna: Be paranoid and check for errors from mmapping the bo
Now that the error propagation is actually in place, we may as well use
it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-29 09:03:21 +00:00
Chris Wilson 98e053503a uxa: Depend upon DRI2 not DRI
The symbols required for building intel_dri.c are checked during
configure under the DRI2 defines.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-29 08:50:53 +00:00
Chris Wilson 58cee9d0de sna/dri: Update set_bo() for change of bo ownership transfer during page-flip
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-28 23:18:31 +00:00
Chris Wilson f9ee02be26 sna: Fix debug message for read-boxes
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-28 22:52:44 +00:00
Chris Wilson 698bd43e0f sna: Do not create glyph caches if the gpu is wedged
As these will only be created in normal memory and never used.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-28 21:45:12 +00:00
Chris Wilson 78425a1559 sna: Refactor common code for testing gpu busyness of a pixmap
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-28 21:38:11 +00:00
Chris Wilson 9105b7e03a sna: Perform clip mask compositing inplace
Avoid the extra composite-in pass for simple clipmask construction.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-28 15:20:10 +00:00
Chris Wilson 337635ab97 sna: Add some more debugging to find the source of a read-boxes error
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-28 10:56:57 +00:00
Chris Wilson 3bf81241cb sna: Skip zero-sized glyphs
Similar to the empty glyphs make sure that we just advance by the
character width without drawing anything.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-27 17:09:59 +00:00
Chris Wilson 8fc21328a0 sna: Don't discard empty glyphs, just skip them
A space is encoded as a 1x1 blank glyph, but we still need to advance by
its character width and so we cannot simply discard the glyph.

References: https://bugs.freedesktop.org/show_bug.cgi?id=44091id=44091
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-27 15:33:51 +00:00
Chris Wilson 726290ea2a sna: Rearrange damage for tail-call optimisations
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-27 13:16:34 +00:00
Chris Wilson 04396b6e50 sna: Don't force the creation of a GPU bo if it will be untiled
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-27 09:58:40 +00:00
Chris Wilson 655a96cd5f sna: Mark the glyph cache as being unpageable
In order to prevent it falling foul of the inactive pixmap reaper, we
need to mark the pixmap as pinned.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-26 14:37:37 +00:00
Chris Wilson 2934e778f0 sna: Increase the minimum alignment constraint for g33
Still not getting the single-stream mode that I am aiming for!

Reported-by: Matti Hamalainen <ccr@tnsp.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44150
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-26 11:30:39 +00:00
Chris Wilson f7593a995a sna: Move the is-mappable check into the callers of region_inplace()
As they slightly differ in their requirements.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-25 11:20:40 +00:00
Chris Wilson aff32e3e08 sna: Tweak damage not to reduce if it will not affect the outcome of reducing to all
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-25 00:36:33 +00:00