Commit Graph

3564 Commits

Author SHA1 Message Date
Chris Wilson 855ced5a4e uxa: Remove the attempt to use the 3D pipeline for core rendering
The attempt was still ridden with bugs, such as

http://bugs.freedesktop.org/show_bug.cgi?id=28768
http://bugs.freedesktop.org/show_bug.cgi?id=28798
http://bugs.freedesktop.org/show_bug.cgi?id=28908
http://bugs.freedesktop.org/show_bug.cgi?id=29401

A fresh approach was taken with SNA, but in the mean time before that
can be enabled downstream, restore correct behaviour.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-16 13:36:26 +01:00
Chris Wilson dd4ad11e0d sna: compile fix.
A pox on all those who write trivial patches, attempt to compile on a
system not having dri2proto and just assume that all is good.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-16 12:53:22 +01:00
Chris Wilson 2ff36af7e1 sna/accel: Prevent initialising a region with an invalid box
pixman complains if you attempt to use a region created with an invalid
box, so don't do that.

Reported-by: Reinhard Karcher <reinhard.karcher@gmx.net>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-16 11:24:39 +01:00
Chris Wilson 3c02110052 sna/dri: Add some comments to explain the choice of flags upon the bo
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-16 10:30:58 +01:00
Chris Wilson 881f961a1c sna: Clear the gpu flag once is not busy and no flush is pending
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-15 19:11:05 +01:00
Chris Wilson a1ee4b9308 sna/dri: And fix the blit swap paths
Following on the recent successes with the pageflip paths.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-14 23:46:15 +01:00
Chris Wilson 2f675cf402 sna: Split zaphod across the crtcs
Since we have no global resource allocator for zaphod mode, that's what
RandR-1.4 solves, we have to further constrain zaphod mode to only use
one crtc per screen. This also means that you must match the output
restrictions within the Screen definitions, noting that the crtc pipe id
corresponds with the screen number.

Reportede-by: Phillp Haddad <phillip.haddad@gmail.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-14 08:22:20 +01:00
Chris Wilson 49f265915a sna: Compile fix for debugging enabled
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-14 08:22:20 +01:00
Chris Wilson 12b8a62652 test: Exclude the long running stress tests from make distcheck
tinderbox complains when it is left running for days on end...

Reported-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-13 22:36:04 +01:00
Chris Wilson 4173ca344b sna: Invalidate the mode if the front pixmap was swapped whilst blanked
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-13 22:34:15 +01:00
Chris Wilson 2158534421 sna/dri: Accurately track front and pending front for async flips
By not tracking the front buffer correctly, i.e. performing the exchange
on every swap, GL_FRONT was no longer pointing at the updated buffer and
neither was the root pixmap. So both X and GL would read the wrong
buffer was the flip was pending.

The other issue was that we would feed the old front buffer back to the
application as a future back buffer (due to buffer caching) and so the
kernel would duly insert a WAIT_EVENT for the pending flip to complete
before allowing rendering to affect it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-13 22:02:08 +01:00
Chris Wilson 2facaa9107 sna/dri: Complete the pending async flip even after DrawableGone
If the client exits before the async page-flip completes then we still
need to decrement the pending flip count in order to correctly flip the
scanout next time.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-13 11:46:04 +01:00
Chris Wilson 8688872390 sna: Just do a pointer exchange when flipping with no scanout
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-12 22:30:31 +01:00
Chris Wilson b881d1b16a sna: Check that the scanout is still attached before waiting for scanline
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-12 20:13:26 +01:00
Chris Wilson bb08e73c55 sna: Prevent tracking scratch pixmaps on older xservers
Before the xserver is patched to send notification of release of the
scratch pixmaps, we cannot associated GPU resources with them. In
practice, the only advantage for doing so is for SHM pixmaps...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-12 20:12:55 +01:00
Chris Wilson ff262aca9c sna/dri: Fix tripple-buffering for vblank_mode=0
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-12 10:44:18 +01:00
Chris Wilson b199bc2b41 sna/dri: Skip querying current msc for immediate swaps
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-11 10:01:13 +01:00
Chris Wilson 5f4dbcc8bd sna/dri: Queue page-flips immediately for next vblank
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-11 09:24:10 +01:00
Chris Wilson 00e8b4bec6 sna/dri: For offscreen, swaps just exchange the buffers
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-11 09:00:16 +01:00
Chris Wilson e9397b28ef sna: Process dri wakeups first
The goal is to minimise the latency in receiving the event from the
kernel and acting upon it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-11 08:54:04 +01:00
Chris Wilson bcad5b21fe sna: Unbreak configure after last commit
I went a step too far... I still need some define in order to switch
between uxa/sna at compile time.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 21:29:59 +01:00
Chris Wilson d0d65940b4 sna: Remove the ability to disable chipset specific code
This was a fun little, but pointless, exercise.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:51:12 +01:00
Chris Wilson 6f035e80b9 sna/dri: Keep reference on swap buffers until the end of the pageflip
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:44:24 +01:00
Chris Wilson cf6c790182 sna: Use the ScreenPixmap->serialNumber as a generation count
DRI2 presumes that the pixmap->serialNumber can be used as unique id.
If it changes revokes *all* the buffers, it presumes a new pixmap has
been attached to the window, for example after a reconfiguration event
(resizing of a window, or a mode switch). However, as we updated the
root pixmap upon a pageflip, we were triggering revocations everytime,
causing further revocations and massive aperture thrashing.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:41:16 +01:00
Chris Wilson 3f19270d67 sna/dri: Actually restrict pageflipping to properly aligned fs windows
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:12:58 +01:00
Chris Wilson 9e9c628708 sna/dri: Create pixmap suitable for the framebuffer for fullscreen buffers
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:12:58 +01:00
Chris Wilson b22de0b014 sna/blt: Suppress overwriting boxes through fill_boxes()
As the introduction of the unrolled fill_boxes() was bypassing the
effective optimisation in fill_one().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:12:58 +01:00
Chris Wilson ebeebc2044 sna: Use temporary for storing the current crtc box when computing best crtc
... as the caller may be reusing an input parameter for the result.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:12:58 +01:00
Chris Wilson b3949d0d74 sna/kgem: remove erroneous assert during submit
This was only valid for gen6+ with the multiple rings.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:12:58 +01:00
Chris Wilson 33abb68da2 sna/kgem: remove redundant clears upon initialisation
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:12:58 +01:00
Chris Wilson cfde920a2e sna: Remember to decouple the fb on closing
... so that we actually attach a new one after regen!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 11:29:06 +01:00
Chris Wilson b6192ce95a sna/gen4: Tweak calculation of required batch space for CA
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 11:05:41 +01:00
Chris Wilson c9b89fc87f sna: Drain the event queues before CloseScreen
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 10:53:29 +01:00
Chris Wilson ea560e25df sna: Workaround the random free of the ScreenPixmap in fbCloseScreen
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 10:53:23 +01:00
Chris Wilson 1f364c6d24 sna: Reset the kgem state on server regen
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 10:37:37 +01:00
Chris Wilson 95ae39a934 sna: Add some debug statements to the core DDX interface
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 09:57:22 +01:00
Chris Wilson 0594724dc4 sna/gen4: Restore normal state after CA pass and FLUSH_EVERY_VERTEX
By working around the broken shaders, we emitted the CA rectangle in the
middle of a sequence of glyphs and left the state setup for CA. So we
need to reset the pipeline state at the start of every composite blt.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 08:24:27 +01:00
Chris Wilson 2dff681efe sna/blt: Remove a couple of unused members from its op-state
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 08:24:27 +01:00
Chris Wilson fbbd1c9dde sna/glyphs: Fix glyphs to dst fallback path 2011-06-10 08:24:27 +01:00
Chris Wilson 3f46c34d53 sna/composite: Tweak setup for the minimal composite extents
Clip the operation extents before passing to the backend to setup the
operation, so that we only need to upload the minimum amount of data
necessary, or avoid tiling etc.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 08:24:27 +01:00
Chris Wilson a34caf1e3d sna/gradient: Check solid busy status not current domain
We can write into the bo if it has no outstanding requests, whereas we
were checking to see it was last on the gpu instead.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 08:17:26 +01:00
Chris Wilson 1638a0a6c0 sna/dri: Add a comment to warn about a potential race between DRI clients
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 16:00:30 +01:00
Chris Wilson 4b54c89fbd sna: Place the pixmap on the DRI dirty list after damaging the shadow copy
In order that we remember to flush the contents back to the GPU
before we wake up the DRI clients, we need to add those dirty
pixmaps to the flushing list. I caught the obvious place, the
central move-to-cpu, but I missed a couple of paths were we
optimise the copy onto the shadow.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 15:53:11 +01:00
Chris Wilson 190a678656 sna: Periodically reduce the gpu damage (after migrating any cpu damage)
This will prevent the gpu damage list from growing unbounded.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 15:13:17 +01:00
Chris Wilson 38d084ee62 sna: Move !kgem->wedged check down into kgem_can_create_2d
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 14:54:12 +01:00
Chris Wilson d1a3bb1467 sna: Prefer inactive buffers when creating a bo for a dirty pixmap
As we will immediately attempt to replace it with an inactive when
moving the data to the GPU, short-circuit that replacement.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 14:51:49 +01:00
Chris Wilson 8ee53cc744 sna: Debugging compile fix
Still not enough coffee this morning.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 13:05:19 +01:00
Chris Wilson 6f59d7d190 sna: Use --enable-debug=full to enable extremely verbose debugging
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 12:59:59 +01:00
Chris Wilson 021209d5d3 sna: Remove the stubs from sna_render.c
These only existed to work around an include order problem, when kgem
was intended to be entirely separable from sna. Moving the function
pointer into kgem simplifies matters.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 10:32:48 +01:00
Chris Wilson 6141b1aea1 sna: Warn after detecting a hung GPU
...and include the instructional error message from uxa.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 10:12:08 +01:00