summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
AgeCommit message (Collapse)Author
2010-02-23pipebuffer: slab: if size < alignment, use alignment to find bucketLuca Barbieri
If the size is lower than the alignment, we must use the alignment to select the bucket. Otherwise, the selected bucket won't be able to satisfy our request and will fail. Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-02-02gallium: Move p_thread.h and p_atomic.h out of gallium interfaces.José Fonseca
Into os/os_thread.h and util/u_atomic.h respectively.
2009-10-25gallium: Move enum pipe_error into p_defines.h.José Fonseca
It's really just another define. No need for its own header.
2009-06-18pipebuffer: Use a type consistently for sizes/offsets.José Fonseca
Avoids warnings on 64bit builds. Use regular unsigned since that's what gallium expects, but use a typedef to facilitate possible changes in the future.
2009-03-23gallium: Remove remnants of reference counting internals outside of p_refcnt.h.Michel Dänzer
2009-03-16gallium: Use struct pipe_atomic for pipe refcounts.Thomas Hellstrom
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-03-04gallium: Unify reference counting.Michel Dänzer
The core reference counting code is centralized in p_refcnt.h. This has some consequences related to struct pipe_buffer: * The screen member of struct pipe_buffer must be initialized, or pipe_buffer_reference() will crash trying to destroy a buffer with reference count 0. u_simple_screen takes care of this, but I may have missed some of the drivers not using it. * Except for rare exceptions deep in winsys code, buffers must always be allocated via pipe_buffer_create() or via screen->*buffer_create() rather than via winsys->*buffer_create().
2009-02-18util: Move p_debug.h into util module.José Fonseca
The debug functions depend on several util function for os abstractions, and these depend on debug functions, so a seperate module is not possible.
2009-01-29pipebuffer: Implement proper buffer validation.José Fonseca
2008-12-12Revert "pipebuffer: Implement proper buffer validation."Keith Whitwell
This reverts commit a6d866f72c88d48d2bcfb3e3c882fdb639b5a8ce.
2008-11-24pipebuffer: Implement proper buffer validation.José Fonseca
2008-09-18pipebuffer: New callback to flush all temporary-held buffers.José Fonseca
Used mostly to aid debugging memory issues or to clean up resources when the drivers are long lived.
2008-09-02pipebuffer: Comment the slab code. Remove the freeSlabs list.José Fonseca
The freeSlabs list is not really needed as we free empty slabs immediately. Time based cached is done separately.
2008-08-26gallium: thread wrapper clean-upBrian Paul
In p_thread.h replace _glthread_* functions with new pipe_* functions. Remove other old cruft.
2008-08-24gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul
Also, rename p_tile.[ch] to u_tile.[ch]
2008-07-02pipebuffer: Verify usage flag consistency. Minor cleanups.José Fonseca
2008-05-27pipebuffer: Allow slab allocations of buffers of inequal size.José Fonseca
2008-05-22pipebuffer: Don't retry allocating in slab suballocator.José Fonseca
In pipebuffer, fencing is done at on a level above sub-allocation, so no matter how many times slab allocator retries no buffer will be freed. The pipebuffer fencing implemention already retries allocating.
2008-04-15gallium: Several fixes to buffer caching.José Fonseca
2008-04-15gallium: Allow to use a single slab.José Fonseca
We often want to use a pool of equally sized buffers, so this makes the slab suballocator a drop-in replacement.
2008-04-13gallium: Initial port of Thomas slab suballocator to pipebuffer.José Fonseca
Not tested yet -- just compiles. This includes only the slab algorithm. Fencing is already implemented in pb_bufmgr_fence and time-based caching will be commited in a separate module shortly.