Chris Wilson
4e4e10935d
sna: Flush upon change of target if GPU is idle
...
The aim is to improve GPU concurrency by keeping it busy. The possible
complication is that we incur more overhead due to small batches.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-08 22:42:11 +00:00
Chris Wilson
cef11795f6
sna: Convert the ring from BLT/3D to the internal index for kgem_ring_is_idle()
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-07 17:40:37 +00:00
Chris Wilson
52405b2aed
sna: Only inspect the target ring for busyness
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-07 17:24:42 +00:00
Chris Wilson
4b7bbb2a23
sna: Only flush before adding fresh surfaces to the batch
...
Previously, before every operation we would look to see if the GPU was
idle and we were running under a DRI compositor. If the GPU was idle, we
would flush the batch in the hope that we reduce the cost of the context
switch and copy from the compositor (by completing the work earlier).
However, we would complete the work far too earlier and as a result
would need to flush the batch before every single operation resulting in
extra overhead and reduced performance. For example, the gtkperf
circles benchmark under gnome-shell/compiz would be 2x slower on
Ivybridge.
Reported-by: Michael Larabel <michael@phoronix.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-07 16:43:32 +00:00
Chris Wilson
65a8c23ca1
sna: Only flush at the low apeture watermark if idle
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-07 14:56:18 +00:00
Chris Wilson
4bfc5e90f5
sna: Mark proxies as dirty on first relocation
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-07 11:39:14 +00:00
Chris Wilson
1d2fa5731b
Remove the default log message
...
Breaks compilation with xorg-1.13
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-06 22:15:09 +00:00
Chris Wilson
7f4d4afa62
Fix compilation of UMS probe following 13f47008ec
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-06 17:08:15 +00:00
Chris Wilson
d733f7d1f1
sna/gen4+: Add common glyph-to-dst emitters
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-06 16:55:00 +00:00
Chris Wilson
13f47008ec
Refactor the common probe methods for scrn construction
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-06 14:56:10 +00:00
Chris Wilson
0040eb84c9
sna: Don't disable CPU bo if supported on unknown hw
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-05 09:31:54 +00:00
Chris Wilson
14069f4864
sna: Assume that future hardware only gets more flexible
...
E.g. that BLT can always write to cacheable memory, inflexible fences
are a thing of the past, etc.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-05 09:24:02 +00:00
Chris Wilson
b82bfcb54a
sna/gen6+: Cache the scanout targets separately to avoid override PTE caching
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-04 17:26:47 +00:00
Chris Wilson
626dd1324d
sna/gen4: Workaround render corruption with multiple SF threads
...
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57410
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-04 13:07:51 +00:00
Chris Wilson
dbdb8fabfb
sna/gen4: Special case solids through the general vertex emitter
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-04 12:42:54 +00:00
Chris Wilson
a17354d5ce
sna/gen4: Remove unused CC viewport
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-04 12:01:26 +00:00
Chris Wilson
b9afb9cb61
sna/gen4: Avoid emitting URB_FENCE across a cache-line
...
Old erratum.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-04 11:36:18 +00:00
Chris Wilson
08c30c48bd
sna: Tidy addition of fake GTF modes for panels
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-03 13:23:33 +00:00
Chris Wilson
6f675eeaea
2.20.15 release
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-03 10:47:35 +00:00
Chris Wilson
37eb7343be
sna/gen5: Inspired by gen4, reorder the flushing
...
This may not be totally safe, but it is a nicer explanation for random
single character corruption.
References: https://bugs.freedesktop.org/show_bug.cgi?id=51422
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-01 10:24:26 +00:00
Chris Wilson
a8a99428c1
sna/dri: Unknown generations are given the max value and presume i965_dri.so
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-01 10:16:33 +00:00
Chris Wilson
382bb7bf77
sna/gen6+: Only apply the BLT w/a for self-copies
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30 16:24:30 +00:00
Chris Wilson
1aee8acacf
sna: Unify gen4 acceleration again
...
After disabling render-to-Y, 965g seems just as happy with the new code
paths as g4x.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30 12:47:49 +00:00
Chris Wilson
5d6dd9c5a7
Convert generation counter to octal
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30 12:12:49 +00:00
Chris Wilson
1316000206
sna: Prevent gen4 from rendering to I915_TILING_Y
...
It always seems to end up in a hang...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30 11:43:56 +00:00
Chris Wilson
ee4d1873ff
sna/g4x: And remove one more flush point
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30 09:52:49 +00:00
Chris Wilson
1b6c1a3072
sna: Increase tiling alignment to an even tile
...
Seems to help g4x.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30 09:27:57 +00:00
Chris Wilson
6aeb6fdf75
sna/g4x: Remove the flush before the pipelined pointer changes
...
This one appears unneeded. Hopefully.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30 09:03:53 +00:00
Chris Wilson
8be2c66955
sna/g4x: Emit the flush prior to changing pipelined state
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-30 00:27:30 +00:00
Chris Wilson
2d5d55702b
sna/gen6+: Override PTE cacheability bits for reads
...
This is primarily useful for enabling the render cache for reads from
scanouts.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-28 15:57:27 +00:00
Chris Wilson
3ed87945c9
sna/gen5+: Disable max-vbo address
...
As we do not use this feature, disable it and save the relocation.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-28 11:05:40 +00:00
Chris Wilson
b2c9e9da63
sna/blt: Avoid clobbering common state before converting to a BLT
...
In case we need to continue on with the render operation, we need to
preserve the existing state.
Reported-by: Jiri Slaby <jirislaby@gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=57601
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-27 11:34:12 +00:00
Chris Wilson
1e06d19a00
sna: Disable shadow tracking upon regen
...
References: https://bugs.freedesktop.org/show_bug.cgi?id=56608
References: https://bugs.freedesktop.org/show_bug.cgi?id=52255
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-26 15:49:24 +00:00
Chris Wilson
d21ed3a6ab
sna: Use a single execobject flag to mark read/write domains
...
Slight modification to the proposed API to only pass the simplified
domain tracking now performed by the kernel.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-26 10:34:28 +00:00
Chris Wilson
7a904ce839
2.20.14 release
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-26 08:48:31 +00:00
Chris Wilson
1367e3f9ef
sna: Exploit the alpha-fixup of the BLT for texture format conversions
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-25 12:12:57 +00:00
Chris Wilson
6d6399f97c
sna: Transform a simple repeat pattern into range of the BLT
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-25 00:05:44 +00:00
Chris Wilson
39f1e228b7
sna: Make GPU idle more consistent during wakeup
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-24 20:16:29 +00:00
Chris Wilson
40b6121746
sna/g4x: Refine the w/a for the broken sf shader
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 18:21:41 +00:00
Chris Wilson
e0b906b096
sna/g4x: Use the render pipeline more often for composite operations
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 18:01:25 +00:00
Chris Wilson
54d8968da5
sna/gen4: Revert changes to 965g[m]
...
The changes tested on g45/gm45 prove to be highly unstable on 965gm,
suggesting a radical difference in the nature of the bugs between the
two generations. In theory, g4x has additional features that could be
exploited over and above gen4 which may prove interesting in the future.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 17:47:49 +00:00
Chris Wilson
d560296561
sna/gen4: Don't force a flush for the dirty target if the we do not read back
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 16:35:06 +00:00
Chris Wilson
4023b20447
sna/gen4: Force composite(WHITE, glyph) for building the glyphstring mask
...
For reasons that are not apparent, if we don't composite with
source/mask for the glyph strings, there appears to be some cache
corruption. About as bizarre as the rest of gen4 idiosynacracies.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 15:42:18 +00:00
Chris Wilson
f74b62755c
sna/gen4: Set composite op before testing for a BLT compatible op
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 14:59:42 +00:00
Chris Wilson
4c922eb52c
sna/gen4: Pass the mask channel explicitly rather than through a dummy mask
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 14:44:16 +00:00
Chris Wilson
2e68efa8ec
sna/gen4: Reduce the flush before performing the CA pass
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 14:04:51 +00:00
Chris Wilson
43aff6708f
sna/gen4: Update render fill routines to use the dummy mask
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 13:47:00 +00:00
Chris Wilson
3529107122
sna/gen4: Move the flush from inside the spans to emit_state()
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 13:37:47 +00:00
Chris Wilson
217f3e835b
sna/gen4: Backport the more efficient composite box emitters
...
Now that we aren't flushing after every single rectangle, we can strive
for a little efficiency.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 13:37:47 +00:00
Chris Wilson
d3145e3f81
sna/gen4: Use a dummy white mask to avoid the flush w/a when compositing
...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-23 13:37:47 +00:00