summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/common/dri_bufmgr.c
AgeCommit message (Collapse)Author
2008-07-01dri: drop asserts to make build against stable libdrmDave Airlie
These asserts are of questionable use at the moment with things in flux.
2008-04-16intel/fake_bufmgr: Attempt to restrict references to objects in a ↵Dave Airlie
batchbuffer > aperture size. So with compiz on Intel hw with fake bufmgr, opening 4 firefox windows at 1680x1050 and hitting alt-tab, could cause the batchbuffer to try and reference more than the 32MB of RAM allocated. Fix 1: Fix 1 is to pre-verify the list of buffers against the current batchbuffer and if it can't possibly fit in the aperture to flush the batchbuffer to the hardware and try again. If the buffers still can't fit well then you are hosed as I'm not sure there is a nice way to tell anyone. Fix 2: Next problem was that even with a simple check for total < aperture, we ran into fragmentation issues, this meant that half way down a set of buffers, we would fail as no blocks were available. Fix this by nuking the memory manager from orbit and letting it start again and relayout the blocks in a manner that fits. Fix 3: Finally the initial problem we were seeing was a memcpy to a NULL backing store. We seem to end up with a texture at some point that never gets mapped but ends up with data in it. compiz al-tab icons have this property. So I created a card dirty bit that memcpy's any buffer that is !static and is written to back to memory. This probably is wrong but it makes compiz work for now. Caveats: 965 support is still fail.
2008-01-24Bufmgr cleanup from intel-batchbuffer branch of 2d driver.Eric Anholt
2007-12-13[intel] Enable INTEL_DEBUG=bufmgr output in TTM mode as well as classic.Eric Anholt
2007-11-30[intel] Fix the type and naming of the flags/mask args to TTM functions.Eric Anholt
The uint64_t flags (as defined by drm.h) were being used as unsigned ints in many places.
2007-11-01i915: make i915 use the cached mappings for batch/buffer objects.Dave Airlie
This should restore gears speed on 9xx hardware
2007-10-09i915: fixup up bufmgr to pass num buffers to kernelDave Airlie
remove unneeded entry points
2007-10-04i915: add superioctl support to the ttm codepaths.Dave Airlie
gears now runs for about 10-15 seconds with some artifacts before falling over.
2007-10-03i915: add superioctl initial support inside bufmgr ttmDave Airlie
2007-10-03i915/drmbuf: attempt to push relocations into buffer managerDave Airlie
This moves the relocations into the buffer manager in prepration for a superioctl move.
2007-05-31Add buffer manager destroy function.Eric Anholt
2007-05-24Replace the flags/hint arguments to bo_alloc{,_static} with a location mask.Eric Anholt
Now, allocations only take locations, rather than a variety of unused flags. The only interesting flag before was the no_move/no_evict pair for scanout and similar buffers, which the DRI drivers don't use. That will be readded when we get to using this code for display buffer allocation, by adding a pin/unpin call (dynamic pinning/unpinning may be useful for VT switching and root window resizing). This commit changes one instance of DRM_BO_FLAG_MEM_LOCAL with DRM_BO_FLAG_MEM_TT, which appeared to have been unintentional.
2007-05-18Merge branch 'master' into i915-unificationEric Anholt
Conflicts: src/mesa/drivers/dri/common/dri_bufmgr.c src/mesa/drivers/dri/common/dri_drmpool.c src/mesa/drivers/dri/i915tex/intel_batchpool.c src/mesa/drivers/dri/i915tex/intel_buffer_objects.c src/mesa/drivers/dri/i915tex/intel_regions.c src/mesa/drivers/dri/i915tex/intel_screen.c src/mesa/drivers/dri/i915tex/intel_screen.h
2007-05-18Allow unreference with a NULL argument.Eric Anholt
2007-05-17Convert i915tex to the new interface and make it compile.Eric Anholt
2007-05-16WIP: Replace TTM buffer pool manager with a simplified interface.Eric Anholt
The interface is not solid yet (some simplification to do still, and adjustment for 0-copy), and the drivers are not converted. However, the new interface allows using the same calls to support either a TTM or a classic static allocation backend, with the static backend allowing a more limited feature set.
2007-04-16Make sure we are locked when creating drm buffer objects.Thomas Hellstrom
Don't place buffer objects on unfenced list when newly created. Fix a buffer object wait-for-idle deadlock.
2007-03-20use passed target parameterAlan Hourihane
2006-11-01Merge texmem-0-3-branch.Keith Whitwell