summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2008-08-08Replace the check_aperture API with one we can make thread-safe.drm-gemEric Anholt4-30/+43
While the bufmgr isn't thread-safe at the moment, we need it to be for shared objects between contexts.
2008-08-07Make flink save the kernel-assigned name and return it instead of creating ↵Keith Packard1-7/+15
another name
2008-08-06Switch from shmem_getpage to read_mapping_pageKeith Packard1-14/+6
2008-08-05[gem-intel] Retiring flush requests should clear flushed write_domainsKeith Packard1-8/+7
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[gem-intel] Don't clear write_domain until flush completesKeith Packard1-5/+17
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-04Expose pin/unpin/set_tiling/flink APIsKeith Packard2-0/+166
2008-07-30intel-gem: Replace version bump signalling GEM with I915_PARAM_HAS_GEM.Eric Anholt3-2/+6
2008-07-30intel-gem: Remove dead field from reverted changes.Eric Anholt1-5/+0
2008-07-30Revert "Rename drm_mm.c and its fuctions to drm_memrange."Eric Anholt14-123/+116
This reverts commit 3ad8db2071d30c198403e605f2726fc5c3e46bfd. We ended up not needing that namespace, and I'd rather not have the churn for producing diffs.
2008-07-29intel-gem: actually add i915_gem_debug.c.Eric Anholt1-0/+202
2008-07-29intel-gem: Check return value of pci_read_base.Eric Anholt1-1/+5
2008-07-28intel: Fix typo in unused register definition name.Eric Anholt1-1/+1
2008-07-28intel-gem: checkpatch.pl on drm_proc.c new contents.Eric Anholt1-20/+20
2008-07-28Merge commit 'origin/master' into drm-gemEric Anholt54-1975/+3588
Conflicts: linux-core/Makefile.kernel shared-core/i915_dma.c shared-core/i915_drv.h shared-core/i915_irq.c
2008-07-28intel-gem: Another checkpatch.pl pass.Eric Anholt4-59/+72
2008-07-28intel-gem: Fix regression tests.Eric Anholt3-14/+24
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-28intel-gem: Speed up tiled readpixels by tracking which pages have been flushed.Eric Anholt2-26/+79
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-26intel-gem: Move debug-only functions to a separate file.Eric Anholt3-185/+24
2008-07-26radeon: Add suspend/resume hooks for saving/clearing/restoring interrupts.Stefan Becker1-0/+24
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16799 .
2008-07-26r300_cmdbuf: Always emit INDX_BUFFER immediately after DRAW_INDEXNicolai Haehnle1-16/+64
DRAW_INDEX writes a vertex count to VAP_VF_CNTL. Docs say that behaviour is undefined (i.e. lockups happen) when this write is not followed by the right number of vertex indices. Thus we used to do the wrong thing when drawing across many cliprects was necessary, because we emitted a sequence DRAW_INDEX, DRAW_INDEX, INDX_BUFFER, INDX_BUFFER instead of DRAW_INDEX, INDX_BUFFER, DRAW_INDEX, INDX_BUFFER The latter is what we're doing now and which ought to be correct.
2008-07-25[FreeBSD] Duh, we need to actually define the drm_modeset_ctl...Robert Noland1-0/+1
2008-07-25drm: don't set the signal blocker on the master process.Dave Airlie1-8/+13
this lets us debug the X server through xkb startup. Not sure what the correct answer is, probably X needs to drop the lock when execing stuff, with input hotplug it can get xkb stuff at any time I believe.
2008-07-24[FreeBSD] Catch up to linux on vblank-reworkRobert Noland2-64/+42
2008-07-23i915: Move all of the irq install/uninstall to load time.Robert Noland3-52/+50
This resolves a panic on FreeBSD which was caused by trying to re-initialize the swap lock. It's just much easier to initialize all of the locks at load time. It should also ensure that the vblank structures are available earlier.
2008-07-23intel-gem: Fix pread math and logic errors.Eric Anholt1-9/+5
Fixes an oops in fbotexture from walking off the end of the page list.
2008-07-23intel-gem: Add a quick hack to reduce clflushing on pread.Eric Anholt1-7/+50
This increases overhead for the large-readpixels case due to the repeated page cache accessing, but greatly reduces overhead for the small-readpixels case.
2008-07-23intel-gem: Don't do the GTT-pwrite shortcut on tiled buffers.Eric Anholt1-25/+85
These will be covered by the fence, while pread/pwrite are supposed to be CPU-perspective writes, with manual detiling done by the client.
2008-07-23intel-gem: Move /proc debugging to a separate file.Eric Anholt3-258/+291
2008-07-22radeon: fix typo with a better typoDave Airlie1-1/+1
2008-07-22radeon: fix type DST vs Z cache flushDave Airlie1-1/+1
2008-07-21[FreeBSD] Improve upper_32_bits define.Robert Noland1-1/+1
Thanks to airlied.
2008-07-21intel-gem: Remove recently added pci_read_base prototype.Eric Anholt1-3/+0
This is in pci.h in the fixed patch to the kernel.
2008-07-21intel-gem: Set up HWS when it needs a vaddr during GEM init.Eric Anholt2-1/+71
This requires an updated 2D driver to not try to set it up as well.
2008-07-21Remove accidental leftover tests.Michel Dänzer1-1/+1
Thanks to Nicolai Haehnle for pointing this out on IRC.
2008-07-21Reinstate dev->vblank_enabled[].Michel Dänzer2-3/+17
I incorrectly thought it was obsolete.
2008-07-21Drop workaround for driver vblank counter going backwards.Michel Dänzer1-9/+2
The driver code that caused this is no longer necessary and has been dropped.
2008-07-21radeon: Post-vblank-rework-rework cleanups.Michel Dänzer1-42/+15
Thanks to the reworked vblank-rework, we can just use the hardware frame counter directly, and make the RADEON_PARAM_VBLANK_CRTC getparam just return what was set by the corresponding setparam.
2008-07-21vblank-rework rework cleanups.Michel Dänzer2-30/+4
Remove some dead/obsolete code and make drm_update_vblank_count() static.
2008-07-21Remove obsolete dev->vblank_suspend[crtc] tests.Michel Dänzer2-21/+11
Caused drm_update_vblank_count() not to do its thing when called from drm_modeset_ctl() -> drm_vblank_get(). The vblank functionality no longer needs to be suspended during a modeset, so rename the field to vblank_inmodeset.
2008-07-19i915: convert to using drm_vblank_get/put around vblank counter usageJesse Barnes1-6/+12
All interrupt off vblank count updates are done in drm_vblank_get/put now, so convert users of the vblank counter over to that interface.
2008-07-19Update vblank code to new APIJesse Barnes1-32/+40
In my last push I forgot to convert users of drm_update_vblank_count over to drm_vblank_get/put, since that's where any interrupt off->on update accounting is done now. Since the modeset ioctl did something similar (an open coded update of the counter) convert it over to using get/put too, which saves us from having to deal with every combination of interrupt off & on between calls.
2008-07-18drm-gem: Fix buildIan Romanick2-0/+4
On some distros missing prototypes cause kernel builds to fail. These are hack to make the code build.
2008-07-18intel-gem: Leave 8xx tiling on until we find any issues.Eric Anholt1-0/+6
2008-07-18radeon: remove microcode versionDave Airlie3-33/+21
2008-07-18drm/radeon: fixup 0 vs NULLDave Airlie1-4/+4
2008-07-17[FreeBSD] drm_irq.c updates for vblank fixes.Robert Noland2-23/+36
2008-07-17i915: remove old broken vblank codeJesse Barnes1-65/+5
Remove the unused (and broken) "in vblank" code now that the core has been fixed to use a counter while interrupts are enabled. Also make the vblank pipe get/set ioctls into dumb stub functions, since with the new code we can no longer let userspace control whether vblank interrupts are enabled, or the core code will misbehave.
2008-07-17Avoid incorrect vblank wakeupsJesse Barnes2-27/+55
The current code uses the hw vblank counter exclusively, which can lead to wakeups during the active period rather than during the vblank period if the hw counter counts displayed frames rather than vblank periods. This change coverts the code over to using the counter while interrupts are enabled, fixing that issue. It also includes a couple of related changes: one to not enable the new enable/disable behavior until the modeset ioctl is called (to preserve old client behavior) and another to account for lost events due to mode setting with the new counter scheme. BSD will require similar changes to its drm_irq.c code, but they should be straightforward.
2008-07-16FreeBSD: Fix radeon buildRobert Noland1-0/+2
2008-07-16BSD: change drm_locked_task*() to use the same scheme as linux.Owain Gordon Ainsworth4-22/+32
The current code can sleep in an interrupt handler, that is bad. So instead if we can't grab the lock, flag it and run the tasklet on unlock. Signed-off-by: Robert Noland <rnoland@2hip.net>