Age | Commit message (Collapse) | Author |
|
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>
|
|
Into os/os_thread.h and util/u_atomic.h respectively.
|
|
It's really just another define. No need for its own header.
|
|
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.
|
|
|
|
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
|
|
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().
|
|
The debug functions depend on several util function for os abstractions, and
these depend on debug functions, so a seperate module is not possible.
|
|
|
|
This reverts commit a6d866f72c88d48d2bcfb3e3c882fdb639b5a8ce.
|
|
|
|
Used mostly to aid debugging memory issues or to clean up resources when
the drivers are long lived.
|
|
The freeSlabs list is not really needed as we free empty slabs immediately.
Time based cached is done separately.
|
|
In p_thread.h replace _glthread_* functions with new pipe_* functions.
Remove other old cruft.
|
|
Also, rename p_tile.[ch] to u_tile.[ch]
|
|
|
|
|
|
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.
|
|
|
|
We often want to use a pool of equally sized buffers, so this makes the
slab suballocator a drop-in replacement.
|
|
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.
|