aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-12-02intel: Check and propagate errors from building reloc-treeChris Wilson
Instead of forcing the caller to check after every emit_reloc(), we can flag the object as being in error, propagating that error upwards through the relocation tree, and failing the eventual batch buffer execution. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02intel: Repeat execbuffer after EINTRChris Wilson
EAGAIN cannot be raised by the current code, but the system call maybe interrupted and so return EINTR. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02intel: Review use of errno.Chris Wilson
Hitting this error lead to a segfault: intel_bufmgr_gem.c:919: Error mapping buffer 48607 (pixmap): Cannot allocate memory. because the errno was reused as the function return value after being reset by the fprintf(), so caller thought the mapping had succeeded. The convention established by libdrm is that the return value is the negative errno and that uses of libdrm cannot trust the value of errno afterwards, but must use the return code. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02intel: Make bo_reference() inline for internal use.Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02intel: Remove the extra reference while validating the reloc treeChris Wilson
Buffers on the relocation tree are guarded by the reference to the batch object and so do not need an extra reference whilst constructing the list of execution buffer objects. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-01intel: Wrap a few more syscalls with EINTR protectionChris Wilson
Having been bitten by a missing EINTR check during mmap_gtt(), I thought it prudent to add some more protection around the ioctls. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30intel: Clear bo->used_as_reloc_target flag on destroyChris Wilson
This allows us to keep the assert added in the previous commit that we do not modify the tree_reloc_size after inserting the buffer into a relocation tree, which was being hit here: #0 0xb78c2424 in __kernel_vsyscall () #1 0xb74f6401 in raise () from /lib/libc.so.6 #2 0xb74f7b42 in abort () from /lib/libc.so.6 #3 0xb74ef5a8 in __assert_fail () from /lib/libc.so.6 #4 0xb737e78b in drm_intel_bo_gem_set_in_aperture_size (bufmgr_gem=<value optimized out>, bo_gem=0x6) at intel_bufmgr_gem.c:373 #5 0xb737f519 in drm_intel_gem_bo_set_tiling (bo=0xa1030a0, tiling_mode=0xbff6c85c, stride=0) at intel_bufmgr_gem.c:1386 #6 0xb737f67f in drm_intel_gem_bo_unreference_final (bo=0xa1030a0, time=<value optimized out>) at intel_bufmgr_gem.c:768 #7 0xb737f5e3 in drm_intel_gem_bo_unreference_locked_timed (bo=0xa1e50d0, time=<value optimized out>) at intel_bufmgr_gem.c:805 #8 drm_intel_gem_bo_unreference_final (bo=0xa1e50d0, time=<value optimized out>) at intel_bufmgr_gem.c:756 #9 0xb737fcbb in drm_intel_gem_bo_unreference (bo=0xa1e50d0) at intel_bufmgr_gem.c:821 #10 0xb737b4e6 in drm_intel_bo_unreference (bo=0x0) at intel_bufmgr.c:80 #11 0xb7325625 in intel_batch_flush (scrn=0x9d91f78, flush=1) at i830_batchbuffer.c:200 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30intel: Apply pessimistic alignment to in-aperture buffer sizeChris Wilson
For the older chipsets, i.e. pre-i965, which have severe alignment restrictions for tiled buffers we need to pessimistically assume that we will waste the size of buffer to meet those alignment constraints. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30intel: Only store a buffer in the cache if it is retained.Chris Wilson
If the kernel immediately frees the backing store for a buffer when marking it purgeable, then there is not point adding to the cache. Free it immediately, instead. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-25Correctly set DRM_MAX_MINOR for all platforms.Robert Noland
DRM_MAJOR is platform specific, but not used outside of xf86drm.c that I can find.
2009-11-24Add missing DRM_MAX_MINOR defineAlex Deucher
lost in 500f5b524000ed5930301f4303744cb4c0a19b75 Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2009-11-24More fixups to allow mesa to buildRobert Noland
2009-11-24Finish fixing the build on FreeBSDRobert Noland
2009-11-23Add drmGetDeviceNameFromFd functionKristian Høgsberg
Determines the /dev filename of the drm fd argument.
2009-11-23Fix build on *BSDKristian Høgsberg
This adds a minimal #ifdef clause to drm.h that we'll push upstream. Once that goes in we can share drm.h between linux, libdrm, and the bsd's.
2009-11-23Don't hardcore 'yes', use in configure.ac outputKristian Høgsberg
Oops, I assumed intel was always enable, but it just defaults to on.
2009-11-23Output summary of enabled features at the end of configure.acKristian Høgsberg
2009-11-23Drop duplicated radeon_*.h files in include/drmKristian Høgsberg
These files are userspace headers and live in radeon/
2009-11-20Put mach64_drm.h back in to avoid breaking mesa buildKristian Høgsberg
We may want to drop mach64 from mesa instead, but that's a different discussion.
2009-11-20Install kernel headers in ${includedir}/drmKristian Høgsberg
2009-11-21nouveau: fix DRM headersPekka Paalanen
The nouveau_drmif.h is not the Nouveau DRM kernel ABI file, but purely user space stuff. Remove it, it does not belong in include/drm/. Copy the right header from Nouveau kernel v2.6.31-rc9-757-gaca551c. Signed-off-by: Pekka Paalanen <pq@iki.fi>
2009-11-20Merge remote branch 'origin/master' into libdrmKristian Høgsberg
2009-11-20Update READMEKristian Høgsberg
2009-11-18libdrm_radeon: add radeon_bo_is_referenced_by_cs functionMaciej Cencora
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2009-11-17Drop stale TODO and unused ChangeLogKristian Høgsberg
2009-11-17Move libdrm/ up one levelKristian Høgsberg
2009-11-17Drop shared-core, bsd-core, linux-core and scripts subdirsKristian Høgsberg
2009-11-17Use headers copied from kernel instead of shared-coreKristian Høgsberg
2009-11-17Fix typo in i915 pipe_from_crtc_id ioctl struct nameKristian Høgsberg
2009-11-17Copy headers from kernel v2.6.32-rc6-130-g5b8f0beKristian Høgsberg
2009-11-17Add makefile rule to copy headers from kernel treeKristian Høgsberg
2009-11-15nouveau: Update some nouveau_class.h definitions from renouveau.xml.Francisco Jerez
Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Pekka Paalanen <pq@iki.fi>
2009-11-11intel: Export madviseChris Wilson
Wrap the madvise ioctl for use in APPLE_object_purgeable. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-11-05Only install libdrm_intel.pc if we build libdrm_intelJulien Cristau
2009-11-04nouveau: turn another assertion into an errorBen Skeggs
Signed-off-by: Ben Skeggs <skeggsb@beleth.(none)>
2009-11-04nouveau: modify api slightly to allow caller to handle reloc failuresBen Skeggs
Signed-off-by: Ben Skeggs <skeggsb@beleth.(none)>
2009-11-04nouveau: add reloc refcnt to pending bo listBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2009-11-04nouveau: drop rendering on the floor rather than asserting if flush failsBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2009-11-04nouveau: update view of available aperture space after each flushBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2009-11-03radeon: fix allocationMathias Fröhlich
The old code increments the command stream size by another kbyte, but does not make sure that the requested packet size fits into the stream. The patch ensures that the whole next packet fits there and rounds the allocated size to a power of two. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2009-10-29Add support for vblank eventsKristian Høgsberg
The kernel will now write data to the DRM fd for various event types if requested. Currently, the only supported event is a vblank event: it contains the vblank count for the event as well as a timestamp from when the event ocurred. Since the DRM fd is now pollable, it's easy to integrate into existing event loops.
2009-10-20intel: Only call clock_gettime once per unreference_final.Eric Anholt
Notably when freeing a batchbuffer, we often end up freeing many of the buffers it points at as well. Avoiding repeated calls brings us a 9% CPU win for cairo-gl. [ # ] backend test min(s) median(s) stddev. count before: [ 0] gl firefox-talos-gfx 58.941 58.966 0.75% 3/3 after: [ 0] gl firefox-talos-gfx 54.186 54.195 0.49% 3/3
2009-10-20intel: Improve bo_references performance by skipping the tree walk.Eric Anholt
If the target we're asking about hasn't ever been used as a relocation target, then it obviously hasn't been used as a target by the batch's reloc tree. This is the common case for good GL programming where you only map fresh buffers, and gives us a 5% win in cairo-gl. [ # ] backend test min(s) median(s) stddev. count before: [ 0] gl firefox-talos-gfx 64.680 64.756 0.06% 3/3 after: [ 0] gl firefox-talos-gfx 60.816 60.970 0.29% 3/3
2009-10-20nouveau: retry if pushbuf ioctl interrupted by signalBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2009-10-19nouveau: function to return status of bo being referenced in pushbufBen Skeggs
Will be used to implement gallium's is_{texture,buffer}_referenced() callbacks properly. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2009-10-13nouveau: nv30: add render target logbase2 width,heightPatrice Mandin
2009-10-13intel: Add the defines for the kernel overlay support landing in 2.6.33.Eric Anholt
2009-10-13intel: Fallback to atomic-ops.h [libatomic-ops-dev]Chris Wilson
Use the external implementation for atomic operations across a wide range of architectures. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-10-13configure: Typo in error message.Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-10-12configure: Conditionally build libdrm_intelChris Wilson
Only build libdrm_intel automatically if we have support for atomic operations. To force configure to build drm pass --enable-intel, which will cause the configure to error if no support is found. Or pass --disable-intel to explicitly prevent libdrm_intel from being built. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>