Commit Graph

5599 Commits

Author SHA1 Message Date
Chris Wilson 554fce8a65 uxa: Pass the correct parameters to intel_detect_chipset()
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-23 22:59:16 +01:00
Chris Wilson 40d90dfd86 intel: Refactor the common chipset detection/override
Reduce the duplicate messages for which type of chip we by
amalgamating the common code.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-23 21:55:46 +01:00
Chris Wilson e3f6c48d18 sna: Refactor PutImage to avoid calling drawable_gc_flags() too early
drawable_gc_flags() asserts that the gc has been moved to the CPU prior
to its calls so that it can read the reduced raster operation.

Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-23 15:16:47 +01:00
Chris Wilson 1af26ea422 sna: Flesh out tiled operations using the BLT
Before enabling the RENDER pipeline for this operation, let's just see
what is required to fully use the BLT pipeline as well.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-23 15:16:47 +01:00
Chris Wilson ac182a0067 sna: Hold a reference to the full stipple pattern for repeated tiles
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-23 11:15:02 +01:00
Chris Wilson 83f683b470 2.20.1 release
A good brown paper bag bug release for SNA.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-22 23:20:23 +01:00
Chris Wilson 9402bdcc13 sna/glyphs: Also discard the glyph mask for bitmaps with an opaque source
Though I expect all such glyphs to be caught by the non-overlapping
checks...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-22 22:41:58 +01:00
Chris Wilson b315e0ebb7 sna: Tweak the fallback hints for XYPixmap PutImage
As the fallback uses a multiple-pass algorithm updating one plane at a
time, we wish to prepare the fallback surface for reads.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-22 22:41:49 +01:00
Chris Wilson 8acaf2693e sna: Promote tiled operations to the GPU if the tile is already on the GPU
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-22 16:28:07 +01:00
Chris Wilson 7d4a3e371b sna: Use an upload buffer for large stipples
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-22 16:28:07 +01:00
Chris Wilson 40e0cf32a2 sna/dri: We fail at predicting the flip frame
Simply report the values from the kernel, and transfer the blame...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 19:43:23 +01:00
Chris Wilson c6e316eeba sna: Adjust hints to prefer rendering convex polygon with the GPU
Keep the general polygons as only using the GPU if necessary, until the
cost of the routines is analysed.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 18:18:32 +01:00
Chris Wilson f1e7248cb3 sna: Expand the heuristic for predicting when to use CPU bo for readback
For tiny transfers, the cost of setting up the GPU operation outweighs
the actual savings through increased throughput. So we try to guess when
it will be preferrable to simply read from the GPU bo directly.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 16:30:50 +01:00
Chris Wilson 06db69c2c7 sna: Update assertion for cached io buffers
As kgem_buffers may be reused and repurposed through the snoop cache it
is no longer true that only proxies will have the io flag set.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 15:30:27 +01:00
Chris Wilson d715e1e014 sna: Also discard the last-was-cpu flag when overwriting cpu damage
We interpret a FillRect that erradicates the existing damage as a
clear-event and an opportunity to see if it is worth migrating the
render commands to the GPU. This is undermined if we leave the
'prefer-cpu' flag intact.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 15:06:46 +01:00
Chris Wilson e95825d17c sna: Enable snooping on the reused linear buffer
This explains why suddenly I was seeing clflush again on a couple of
machines...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 14:48:19 +01:00
Chris Wilson c5e6b5874f sna: Fix the reversed not SHM assertion
Should be double checking that we are not about to free a CPU bo pinned
to a SHM pixmap.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 14:28:47 +01:00
Chris Wilson f36b656ab2 sna: Avoid marking io/snoop buffers as unreusable unnecessarily
As they are kept in special caches, we can reserve the unreusable flags
for exceptional buffers.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 13:33:03 +01:00
Chris Wilson 37dfdb0e9e sna: Correct assertion for __kgem_bo_size()
Only proxies are measured in bytes not pages.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 13:01:09 +01:00
Chris Wilson 83ad661bc7 sna: Change the vmap interface name to userptr
This is in common with the other drivers and avoids the conflict with
'vmalloc/vmap' used by the kernel for allocation of contiguous virtual
mappings.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 12:53:34 +01:00
Chris Wilson 8dcccd3082 sna: s/vmap/snoop/ since we use the flag more generically
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 12:51:37 +01:00
Chris Wilson 6acc9e6a6e sna: Fix role reversal of __kgem_bo_size() and kgem_bo_size()!
Reported-by: Jiri Slaby <jirislaby@gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=47597
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 12:07:46 +01:00
Chris Wilson 286b0e1a48 sna: Refresh experimental userptr vmap support
Bring the code uptodate with both kernel interface changes and internal
adjustments following the creation of CPU buffers with set-cacheing.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 11:45:37 +01:00
Chris Wilson 93c794eb3f sna: Micro-optimise copying boxes with the blitter
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 00:01:59 +01:00
Chris Wilson a0d95a9c2d sna: Only update a buffer when it becomes dirty
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 00:01:59 +01:00
Chris Wilson c52d265b83 sna: Tweak CPU bo promotion rules for CopyArea
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 22:00:54 +01:00
Chris Wilson f92a64dd91 sna: Only set the vmap flag after we make the bo snoopable
Otherwise if we fail then we incorrectly add the handle to the vmap
cache.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 15:54:35 +01:00
Chris Wilson 8b4cf24f14 sna: Also check whether the first upload box can use the BLT
No point checking boxes 1..n if box 0 is the troublemaker!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 14:46:32 +01:00
Chris Wilson df14b285be sna/gen6: Prefer the more flexible render ring for large surfaces
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 14:35:28 +01:00
Chris Wilson 578ff11c37 sna: Just use composite.box() when we only have one box
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 14:24:06 +01:00
Chris Wilson fb7987fc0b sna/dri: Cleanup ring selection for SNB+ CopyRegion
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 13:12:27 +01:00
Chris Wilson 3b56588fba sna: Update WIP userptr example usage
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 10:19:25 +01:00
Chris Wilson 473a1dfb68 sna: Rename kgem_partial_bo to kgem_buffer
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 10:09:14 +01:00
Chris Wilson 8e6e8a2fa8 sna: Allow the snoopable upload buffer to take pages from the CPU vma cache
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 09:51:46 +01:00
Chris Wilson 979035bb9c sna: Remove topmost unused 'flush' attribute
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 07:28:54 +01:00
Chris Wilson b83011909a sna: Replace 'sync' flag with equivalent 'flush'
The only difference is in semantics. Currently 'sync' was only used on
CPU buffers for shared memory segments with 2D clients, and 'flush' on GPU
buffers shared with DRI clients.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 07:28:43 +01:00
Chris Wilson 88bee3caea sna: Remove unused scanout-is-dirty? flag
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-20 07:28:42 +01:00
Chris Wilson 6f60f89588 sna/gen6: Bump the WM thread count to 80
Note that we should only do this when "WiZ Hashing" is disabled. So we
should be checking the GT_MODE register (bring on i915_read!) to be sure
that is safe to do so. However, it gives a big boost to performance of
render copies...  It also causes perf benchmarks to hit thermal limits
much quicker.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19 17:55:00 +01:00
Chris Wilson fc39d4b5cb sna/gen6: Add a simple DBG option to limit usage of either BLT/RENDER
We can force the code to either select only BLT or RENDER operations -
for those that we have a choice for at least!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19 16:51:54 +01:00
Chris Wilson 15d3eea700 sna: Handle mixed bo/buffers in assertions
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19 16:51:50 +01:00
Chris Wilson e4fce3b780 sna/gen4: Hookup composite spans
Due to the unresolved flushing bug it is no faster (so only enable when
we definitely can't do the operation inplace), however it does eliminate
a chunk of CPU overhead.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19 11:01:52 +01:00
Chris Wilson 5f138176bf sna: Tweak order of screen re-initialisation
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19 10:32:33 +01:00
Chris Wilson 9bd0f8f3e7 i810: Correct the double negative and enable XAA when available
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19 09:40:07 +01:00
Chris Wilson d145d0e145 i810: Handle initialisation without the XAA module present at runtime
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19 09:25:47 +01:00
Chris Wilson 7a3b98e05b sna: Re-register the SHM funcs every server generation
As the SHM layer hooks into the CloseScreen chain to free its privates,
we then need to call the registration function again on the next
generation to ensure that the private is reallocated before use.

Reported-by: Pawel Sikora <pluto@agmk.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52255
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-19 08:57:02 +01:00
Chris Wilson 4bcab83bbd i810: DRI is not dependent upon XAA
The blit routines is uses are independent of the XAA driver interface
and can be used separately.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-18 22:21:22 +01:00
Chris Wilson 558c825129 sna/gen4+: Drop unsupported source formats
Once again I've confused existence of the enum with the ability of the
sampler to read that format.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-18 22:00:30 +01:00
Chris Wilson 9f3b3098c9 sna/dri: Allow DRI2 to be loaded even if we are wedged
Just because the GPU is spitting EIO at us does not necessarily imply
that a DRI client will also suffer. Spit out a warning for later bug
reporting and let them find out for themselves!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-18 21:42:51 +01:00
Chris Wilson 15b7191fd3 sna/gen6: Micro-optimise render copy emission
Backport of the changes made for IVB.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-18 21:36:26 +01:00
Chris Wilson 4eea9ac003 sna/gen7: Micro-optimise render copy emission
The goal is bring the overhead down to that of using the blitter. Tricky
given the number of steps to using the 3D pipeline compared to the
BLT...

A stretch goal would be to make IVB GPU bound for -copywinpix10!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-18 21:36:26 +01:00