Commit Graph

4216 Commits (758376e6eb2155605ad502d0dc5147c74f3c47a6)

Author SHA1 Message Date
Dave Airlie 6435958673 radeon: just evict to TT not cached 2008-08-06 15:58:09 +10:00
Dave Airlie a6c075fca6 drm: don't teardown things in modeset paths 2008-08-06 15:57:38 +10:00
Dave Airlie 04b5584c62 pcigart: fixup memset + remove wbinvd 2008-08-06 15:56:08 +10:00
Dave Airlie 513d4c3ff1 radeon: fix setting new memmap in right place 2008-08-06 10:21:20 +10:00
Keith Packard dc0546c87f [gem-intel] Retiring flush requests should clear flushed write_domains
When i915_gem_retire_request has a flush which matches an object write
domain, clear the write domain. This will move the object to the inactive
list rather than the flushing list, avoiding trouble with objects left stuck
on the flushing list.
2008-08-05 16:06:40 -07:00
Keith Packard ceb3d5e383 [gem-intel] Don't clear write_domain until flush completes
In i915_gem_object_wait_rendering, if the object write domain is being
written by the GPU, the appropriate flushing commands are written to the
device and an additional request queued to mark that flush. Finally, the
function blocks on that new request.

The bug was that the write_domain in the object was cleared before the
function blocked.

If the wait is interrupted by a signal, the flushing commands may still be
pending. With the current write_domain information lost, the restarted
syscall will drop right through the write_domain test as that value was
lost, and so the function will not block at all. Oops.

Fixed by simply moving the write_domain clear until after the wait_request
succeeds. Note that the restarted system call will generate an additional
flush sequence and request, but that should be 'harmless', aside from a
slight performance impact.

Someday we'll track flushing more accurately and clear write_domains more
efficiently, but for now, this should suffice.

This bug was discovered in the 2d gem development by running x11perf
-copypixwin500 and noticing that the window got cleared accidentally.
2008-08-05 14:44:53 -07:00
Keith Packard 8e41ce17b4 Expose pin/unpin/set_tiling/flink APIs 2008-08-04 23:34:16 -07:00
Dave Airlie 4748fbcbd7 radeon: fix blit due to registers wrong 2008-08-05 11:36:37 +10:00
Dave Airlie fd75c02ddd drm: finish bo after lastclose 2008-08-04 14:59:49 +10:00
Dave Airlie aa8e15f8b5 radeon: add userspace mm enable switch 2008-08-04 14:59:17 +10:00
Dave Airlie 29649ddede radeon: don't use ring if cp not going 2008-08-04 14:56:08 +10:00
Dave Airlie dff8485151 drm: remove unused types 2008-08-04 14:55:12 +10:00
Dave Airlie 717dd804d0 drm: fixup master code to use krefs 2008-08-04 14:54:32 +10:00
Dave Airlie af6efc3d77 i915/radeon: use rmmap locked 2008-08-04 14:54:02 +10:00
Dave Airlie 129c8a1181 modesetting: pick_crtcs can't be static 2008-08-04 14:53:14 +10:00
Dave Airlie 922f74f3c9 drm: remove unneeded debugging 2008-08-04 14:52:58 +10:00
Kristian Høgsberg 086716c8e2 Merge commit 'origin/drm-gem' into modesetting-gem
Conflicts:
	linux-core/Makefile.kernel
	linux-core/drmP.h
	linux-core/drm_mm.c
	linux-core/drm_stub.c
	linux-core/i915_gem.c
	linux-core/i915_opregion.c
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
2008-08-01 13:35:56 -04:00
Dave Airlie 4585787bd1 Revert "i915: Move all of the irq install/uninstall to load time."
This reverts commit 965a72202b.

Please re-do over properly
2008-08-01 07:43:58 +10:00
Kristian Høgsberg 5052e966ec Merge commit 'origin/master' into modesetting-gem
Conflicts:
	linux-core/Makefile.kernel
	linux-core/ati_pcigart.c
	linux-core/drm_compat.h
	linux-core/drm_irq.c
	linux-core/drm_lock.c
	linux-core/i915_drv.c
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
	shared-core/nouveau_mem.c
	shared-core/radeon_cp.c
	shared-core/radeon_drv.h
2008-07-31 15:18:32 -04:00
Dave Airlie 296073dc5f drm: remove object hash 2008-07-31 14:39:25 +10:00
Dave Airlie d2d7f3069d drm: userspace rip out TTM API 2008-07-31 13:31:30 +10:00
Dave Airlie 10d5b037b8 drm: add fault handler support so as to be more like possible upstream 2008-07-31 13:12:36 +10:00
Dave Airlie 55761b2fe7 drm: add fault handler support so as to be more like possible upstream
(cherry picked from commit 10d5b037b8)
2008-07-31 13:11:28 +10:00
Dave Airlie 9b8d71b5eb TTM: remove API and userspace objects.
This removes all the TTM userspace API and all userspace objects.

It also removes the drm_bo_lock.c code
2008-07-31 12:54:48 +10:00
Eric Anholt ccbaad52f7 intel-gem: Replace version bump signalling GEM with I915_PARAM_HAS_GEM. 2008-07-30 14:10:36 -07:00
Kristian Høgsberg 6d4e147480 Make it compile again. 2008-07-30 16:34:37 -04:00
Eric Anholt 689548b527 intel-gem: Remove dead field from reverted changes. 2008-07-30 11:29:32 -07:00
Eric Anholt 33c8e03787 Revert "Rename drm_mm.c and its fuctions to drm_memrange."
This reverts commit 3ad8db2071.

We ended up not needing that namespace, and I'd rather not have the churn
for producing diffs.
2008-07-30 11:25:34 -07:00
Dave Airlie fb5542aaa8 radeon: hack gem to get an offset back for Mesa. 2008-07-30 17:06:11 +10:00
Dave Airlie d659302e09 radeon: add some handles to the sarea + kernel mm available check 2008-07-30 17:05:50 +10:00
Dave Airlie 95c02743c9 i915: more version checks 2008-07-30 16:52:13 +10:00
Dave Airlie 02b09d271c i915: add version checks for opregion on old kernels 2008-07-30 16:26:59 +10:00
Eric Anholt 8fc72aef70 intel-gem: actually add i915_gem_debug.c. 2008-07-29 20:26:38 -07:00
Eric Anholt 0f78e30e0a intel-gem: Check return value of pci_read_base. 2008-07-29 11:10:47 -07:00
Nicolai Haehnle 90b90c65dc r300: Fix cliprect emit
This makes our handling of cliprects sane. drm_clip_rect always has exclusive
bottom-right corners, but the hardware expects inclusive bottom-right corners,
so we adjust this here.

This complements Michel Daenzer's commit 57aea290e1e0a26d1e74df6cff777eb9f038f1f8
to Mesa. See also http://bugs.freedesktop.org/show_bug.cgi?id=16123 .
2008-07-29 19:59:08 +02:00
Dave Airlie 0452be8826 radeon: move code around putting emit into cs 2008-07-29 18:05:11 +10:00
Dave Airlie 4234f82acc radeon_cs: add relocate hook for mm and non-mm relocations 2008-07-29 16:51:47 +10:00
Eric Anholt 0e49e49c9f intel: Fix typo in unused register definition name. 2008-07-28 23:14:47 -07:00
Eric Anholt e68b57c17d intel-gem: checkpatch.pl on drm_proc.c new contents. 2008-07-28 23:12:41 -07:00
Eric Anholt 1d2bb68d28 Merge commit 'origin/master' into drm-gem
Conflicts:

	linux-core/Makefile.kernel
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
2008-07-28 23:12:26 -07:00
Stuart Bennett 6b903f5edf nouveau: fix nv04 fifo context save to save reg contents, not reg offset
clearly the function had never been used :)
2008-07-29 02:32:13 +01:00
Stuart Bennett 591f6bcba3 nouveau: fix bad rename from 5a072f32c8 2008-07-29 02:26:34 +01:00
Eric Anholt 487c42bd42 intel-gem: Another checkpatch.pl pass. 2008-07-28 11:45:22 -07:00
Eric Anholt 1bdf35fe19 intel-gem: Fix regression tests.
Main fix is an oops that was triggered by the gtt pwrite path when we don't
have the gtt initialized.  Also, settle on -EBADF for "bad object handle",
and -EINVAL for "reading/writing beyond object boundary".
2008-07-28 11:29:16 -07:00
Eric Anholt f85fd1b42d intel-gem: Speed up tiled readpixels by tracking which pages have been flushed.
This is around 3x or so speedup, since we would read wide rows at a time, and
clflush each tile 8 times as a result.  We'll want code related to this anyway
when we do fault-based per-page clflushing for sw fallbacks.
2008-07-28 11:25:19 -07:00
Alan Hourihane 478e019cb7 set to 2.4.0 2008-07-28 15:16:45 +01:00
Dave Airlie 42e373e903 radeon_cs: extract some offsets from packet data 2008-07-28 18:18:28 +10:00
Dave Airlie 87520347b4 r300: add some packet 3 decodes 2008-07-28 17:42:53 +10:00
Dave Airlie dc3a7c023d r300: initial command stream parser for packet 0.
this at least parses the DDX stream and lets me run gnome-terminal/metacity
2008-07-28 17:27:24 +10:00
Dave Airlie 38835f9cd2 radeon command submission start
take code from Jerome munge into a TTM IB re-use
2008-07-28 15:21:13 +10:00