diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2017-04-24 01:51:51 -0700 |
---|---|---|
committer | Jason Ekstrand <jason.ekstrand@intel.com> | 2017-05-04 19:07:54 -0700 |
commit | f82d3d38b62048246c4df999a1789b5cb60184c6 (patch) | |
tree | a2ebc05fe825f8149e87edcbca1ef10f9f927d7f /src/intel/genxml/README | |
parent | 8c079b566e59df2f6d0e0deb951078aba862991d (diff) |
anv/allocator: Allow state pools to allocate large states
Previously, the maximum size of a state that could be allocated from a
state pool was a block. However, this has caused us various issues
particularly with shaders which are potentially very large. We've also
hit issues with render passes with a large number of attachments when we
go to allocate the block of surface state. This effectively removes the
restriction on the maximum size of a single state. (There's still a
limit of 1MB imposed by a fixed-length bucket array.)
For states larger than the block size, we just grab a large block off of
the block pool rather than sub-allocating. When we go to allocate some
chunk of state and the current bucket does not have state, we try to
pull a chunk from some larger bucket and split it up. This should
improve memory usage if a client occasionally allocates a large block of
state.
This commit is inspired by some similar work done by Juan A. Suarez
Romero <jasuarez@igalia.com>.
Reviewed-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Diffstat (limited to 'src/intel/genxml/README')
0 files changed, 0 insertions, 0 deletions