summaryrefslogtreecommitdiff
path: root/libdrm
AgeCommit message (Collapse)Author
2009-05-26nouveau: bump for 0.0.13Ben Skeggs
2009-05-19intel: quiet a warning.Eric Anholt
2009-05-19intel: Only do BO caching up to 64MB objects.Eric Anholt
This avoids making objects significantly bigger than they would be otherwise, which would result in some failing at binding to the GTT. Found from firefox hanging on: http://upload.wikimedia.org/wikipedia/commons/b/b7/Singapore_port_panorama.jpg due to a software fallback trying to do a GTT-mapped copy between two 73MB BOs that were instead each 128MB, and failing because both couldn't fit simultaneously. The cost here is that we get no opportunity to cache these objects and avoid the mapping. But since the objects are a significant percentage of the aperture size, each mapped access is likely having to fault and rebind the object most of the time anyway. Bug #20152 (2/3)
2009-05-14libdrm/intel: Make get_pipe_from_crtc_id per-bufmgr. Return -1 on failure.Keith Packard
The convention is that all APIs are per-bufmgr, so make this one the same. Then, have it return -1 on failure so that the application can know what's going on and do something sensible. Signed-off-by: Keith Packard <keithp@keithp.com>
2009-05-14Add new drm_intel_get_pipe_from_crtc_id function.Carl Worth
This wraps the new DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID ioctl, allowing applications to discover the pipe number corresponding to a given CRTC ID. This is necessary for doing pipe-specific operations such as waiting for vblank on a given CRTC.
2009-05-12libdrm/intel: add drm_intel_bo_disable_reuse apiKeith Packard
Scanout buffers need to be freed through the kernel as it holds a reference to them; exposing this API allows applications allocating scanout buffers to flag them as not reusable. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2009-05-09Delete extra libdrm_lists.h line after libdrm_la_SOURCES in libdrm/Makefile.amAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-05-01libdrm/intel: assert that clients are using bo refcounting correctlyKeith Packard
Add assertions to drm_intel_gem_bo_reference, drm_intel_gem_bo_reference_locked and drm_intel_gem_bo_unreference_locked that the object has not been freed (refcount > 0). Mistakes in refcounting lead to attempts to insert a bo into a free list more than once which causes application failure as empty free lists are dereferenced as buffer objects. Signed-off-by: Keith Packard <keithp@keithp.com>
2009-04-27intel: NULL fake bo block when freeing in evict_allJesse Barnes
Fixes assertion failures on later use of the object.
2009-04-22libdrm/mode: align subpixel resultsDave Airlie
2009-04-17nouveau: write posting got lost somewhere, bring it backBen Skeggs
2009-04-15nouveau: store bo handle in public struct in bo_ref_handleBen Skeggs
2009-04-10Revert "libdrm: speed up connector & mode fetching"Jesse Barnes
This reverts commit cd5c66c659168cbe2e3229ebf8be79f764ed0ee1. It broke too many kernel assumptions about the double ioctl (connector status, mode fetching, etc.)
2009-03-30libdrm: speed up connector & mode fetchingJesse Barnes
This patch speeds up drmModeGetConnector by pre-allocating mode & property info space before calling into the kernel.  In many cases this pre-allocation will be sufficient to hold the returned values (it's easy enough to tweak if the common case becomes larger), which means we don't have to make the second call, which saves a lot of time. Acked-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-03-26libdrm/intel: support GTT maps correctlyJesse Barnes
libdrm has some support for GTT mapping already, but there are bugs with it (no surprise since it hasn't been used much). In fixing 20803, I found that sharing bo_gem->virtual was a bad idea, since a previously mapped object might not end up getting GTT mapped, leading to corruption. So this patch splits the fields according to use, taking care to unmap both at free time (but preserving the map caching). There's still a risk we might run out of mappings (there's a sysctl tunable for max number of mappings per process, defaulted to 64k or so it looks like) but at least GTT maps will work with these changes (and some others for fixing PAT breakage in the kernel). Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-03-25libdrm/nouveau: fix typo in nouveau_device_close()Ben Skeggs
2009-03-20libdrm/nouveau: ask the kernel for vram/gart aperture sizesBen Skeggs
2009-03-20libdrm/nouveau: remove unneccesary null ptr checksBen Skeggs
2009-03-20libdrm/nouveau: incr refcount on ref fence before decr on old fenceBen Skeggs
2009-03-20libdrm/nouveau: unref fences when deleting boMaarten Maathuis
- This was causing a significant memory leak.
2009-03-18libdrm/nouveau: implement bo_handle_get for !mm_enabledBen Skeggs
bo_handle_ref on !mm_enabled treats handle as an offset, make bo_handle_get do the same rather than failing.
2009-03-16libdrm_nouveau: The handle that is passed to mmap needs to be drm_handle_tRobert Noland
drm_handle_t is defined to be a u32 on linux and a u64 on everything else. This addresses an issue on FreeBSD amd64 where the map offsets may be greater than 32bits. When the handle is cast to 32bit, mmap cannot match the requested map and causes X to crash. This should be a NOOP on linux since drm_handle_t is always 32bit. Signed-off-by: Robert Noland <rnoland@2hip.net>
2009-02-27intel: Update reloc_tree_size of the first buffer when we count the tree size.Eric Anholt
This helps avoid the n^2 performance cost of counting tree size when we get a lot of relocations into our batch buffer. rgb10text on keithp's laptop went from 136k glyphs/sec to 234k glyphs/sec.
2009-02-24intel: Don't copy dirty data out when freeing a BO in the fake bufmgr.Eric Anholt
2009-02-24nouveau: Dist nouvea_dma.h as well.Kristian Høgsberg
Oops. Disting is hard.
2009-02-24nouveau: Also dist nouveau_private.h.Kristian Høgsberg
2009-02-23Fix DRM_CAS() on Alpha. (#16549)Ivan Kokshaysky
2009-02-21Fix distcheck for optional nouveau stuff.Eric Anholt
2009-02-21intel: Add a new bufmgr alloc function to get BOs ready for rendering to.Eric Anholt
This avoids using the oldest BO in the BO cache and waiting for it to be idle before we turn around and render to it with the GPU. Thanks to Chris Wilson for pointing out how silly we were being.
2009-02-20libdrm/nouveau: free drmVersion after we're done with itBen Skeggs
2009-02-20libdrm/nouveau: fix dma debuggingBen Skeggs
2009-02-15intel: Clear ioctl parameter outvalues and pads that confuse valgrind.Eric Anholt
The minor CPU cost here is probably outweighed by bothering us with noise in the tool.
2009-02-15libdrm: make libdrm_nouveau conditional, disabled by defaultBen Skeggs
libdrm isn't supposed to ship APIs not present in a released kernel.
2009-02-11mode: Make xfdrmMode.[c|h] not depend on drm_mode.hJakob Bornecrantz
2009-02-11nouveau: fix type warnings: void* arith, un/signedPekka Paalanen
nouveau_notifier.c had two places where void* was used in arithmetic, fixed by using char*. nouveau_dma_wait(), nouveau_notifier_wait_status() and nouveau_resource_alloc() had signed/unsigned comparison warnings, fixed by changing the function parameter into an unsigned type. Signed-off-by: Pekka Paalanen <pq@iki.fi>
2009-02-05nouveau: fix some issues where buffer objects never get freedBen Skeggs
2009-02-04nouveau: install libdrm_nouveau with libdrmBen Skeggs
2009-01-27intel: don't count fences on 965 and later, as they don't use them.Eric Anholt
2009-01-27intel: Fix under-counting of fences registers required in check_aperture.Eric Anholt
2009-01-27intel: libdrm support for fence management in execbufJesse Barnes
This patch tries to use the available fence count to figure out whether a given batch can succeed or not (just like the aperture check). Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eric Anholt <eric@anholt.net>
2009-01-14intel: Retry pin ioctl on -EINTR.Eric Anholt
2009-01-13Don't use DRM_BO_FLAG_NO_MOVE in bufmgr fake. It's a ttm flag.Owain G. Ainsworth
It's also unused, so worthless.
2009-01-12Remove drmModeReplaceFb after it was removed from the kernel.Owain G. Ainsworth
It is impossible to replace the original semantics of this call purely in userland, since the fb_id would change. after discussion with Dr_Jakob Signed-Off-By: Owain Ainsworth <oga@openbsd.org> Acked-By: Jakob Bornecrantz <jakob@vmware.com>
2009-01-07libdrm: add autoconf check for clock_gettimeJesse Barnes
Should be more portable this way.
2009-01-07libdrm: only check for vblank timeout if we caught EINTRJesse Barnes
Michel caught a case where we might overwrite a success or other return value with EBUSY, so check the return value before checking for the timeout condition.
2009-01-07libdrm: add timeout handling to drmWaitVBlankJesse Barnes
In some cases, vblank interrupts may be disabled or otherwise broken. The kernel has a 3s timeout builtin to handle these cases, but the X server's SIGALM for cursor handling may interrupt vblank wait ioctls, causing libdrm to restart the ioctl, making the kernel's timeout useless. This change tracks time across ioctl restarts and returns EBUSY to the caller if the expected vblank sequence doesn't occur within 1s of the first call. Fixes fdo bz #18041, which is caused by a drmWaitVBlank hanging due to the corresponding pipe getting disabled (thus preventing further events from coming in).
2008-12-17intel: Cache tiling/swizzle state in user mode. Reset tiling on reuse.Keith Packard
Remember tiling mode values provided by appplications, and record tiling mode when creating a buffer from another application. This eliminates any need to ask the kernel for tiling values and also makes reused buffers get the right tiling. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-17intel: Debug output %u vs uint64_t warning fixKeith Packard
Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-17intel: return error status from drm_intel_gem_bo_mapKeith Packard
Applications may actually care if the mapping operation failed, so when it happens, return an error indication. errno is probably trashed by fprintf though. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-17intel: Dump out memory usage information when the kernel fails to pinKeith Packard
The execbuffer ioctl returns ENOMEM when it fails to pin all of the buffers in the GTT. This is usually caused by the DRM client attempting to use too much memory in a single request. Dumping out the requested and available memory values should help point out failures in the DRM code to catch over commitments of this form. Signed-off-by: Keith Packard <keithp@keithp.com>