Commit Graph

6164 Commits

Author SHA1 Message Date
Chris Wilson 986e13a56a sna: Try installing a fallback config on VT enter in case full desiredMode fails
This can happen naturally for 3-pipe config on Ivybridge or if the
outputs are rearranged whilst we slept. Instead of failing to change the
display on the VT, install at least a fb on the CompatOutput so that
hopefully the DE can take over, or give some control to the user.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-10 20:04:25 +00:00
Chris Wilson 8c3b82f207 sna: Avoid reusing the same 'busy' bit for two different meanings.
Oops, I thought the 'busy' bit was now used and apparently forgot it is
used to control the periodic flushing...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-10 16:20:52 +00:00
Chris Wilson d1b479a340 sna: Compromise and only flush a split batch if writing to scanout
A compromise between not flushing quick enough and flushing too often,
hopefully.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-10 11:16:04 +00:00
Chris Wilson 3e9120d73c sna: Immediately flush a split batch
If we submit a batch early (for example if the GPU is idle), then submit
whatever else the client drew immediately upon completion of its
blockhandler. This is required to prevent flashing due to visible delay
between the clear at the start of the cycle and then the overdraw later.

References: https://bugs.freedesktop.org/show_bug.cgi?id=51718
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-10 11:05:16 +00:00
Chris Wilson aa8c5d8201 sna/sprite: Add a DBG to report whether the kernel supports sprites
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-09 12:44:23 +00:00
Chris Wilson 25c0d440de sna: Move source to CPU prior to referencing for inplace trapezoids
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56825
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-09 12:41:41 +00:00
Chris Wilson 3e82fcc8d2 sna/gen4+: Refine test for preferring GPU spans
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-09 12:37:43 +00:00
Chris Wilson c8f622726a sna: Replace remaining kgem_is_idle() with kgem_ring_is_idle()
Further experimentation...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-09 10:33:32 +00:00
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