Mesa (master): 21 new commits
Jason Ekstrand
jekstrand at kemper.freedesktop.org
Fri May 5 02:08:18 UTC 2017
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=98cd5120896c3c1229d1ed63ab7d189a1486597f
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed May 3 09:43:58 2017 -0700
anv/allocator: Improve block pool growing asserts
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=24827fdf505e68234f6099785c659fa84bb33e04
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 07:21:58 2017 -0700
anv: Drop the instruction pool block size
Now that we can allocate states larger than the block size, we no longer
need a block size of 1MB which can be rather wasteful.
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=955127db9376b49a41a428f5f89137cafec89b1c
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 09:54:41 2017 -0700
anv/allocator: Add support for large stream allocations
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f82d3d38b62048246c4df999a1789b5cb60184c6
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Mon Apr 24 01:51:51 2017 -0700
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 at igalia.com>.
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c079b566e59df2f6d0e0deb951078aba862991d
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Sun Apr 23 18:57:29 2017 -0700
anv/allocator: Support pushing multiple blocks onto a free list at once
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8769fb48fb97731a8dc8fd6758834a9a1df22b75
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Sun Apr 23 19:15:42 2017 -0700
anv/allocator: Add helpers for dealing with bucket sizes
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=12043ca6968f53970669586eca2f97baf8ea264a
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 00:49:40 2017 -0700
anv/allocator: Add the capability to allocate blocks of different sizes
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=01170df262d63c7a67150f21a646d5d34d84782d
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 02:28:24 2017 -0700
anv/allocator: Rework a comment
This commit just fixes up the English a bit and re-flows the comment.
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bcc5d0defb992232155969314618714c63d6ccad
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 09:53:45 2017 -0700
anv/allocator: Tweak the block pool growing algorithm
The old algorithm worked fine assuming a constant block size. We're
about to break that assumption so we need an algorithm that's a bit more
robust against suddenly growing by a huge amount compared to the
currently allocated quantity of memory.
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3ed72e2c2164d0ba5f0d2e6d652d8710030aa2b
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Mon Apr 24 08:50:23 2017 -0700
anv/allocator: Embed the block_pool in the state_pool
Now that the state stream is allocating off of the state pool, there's
no reason why we need the block pool to be separate.
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb2a3f0df8e9f92e7694c3e643c38807bfa79902
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Mon Apr 24 03:11:02 2017 -0700
anv/allocator: Get rid of the ability to free blocks
Now that everything is going through the state pools, the block pool no
longer needs to be able to handle re-use.
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=08413a81b93dc537fb0c34327ad162f07e8c3427
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Mon Apr 24 02:40:20 2017 -0700
anv: Allocate binding table blocks through the state pool
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=55f49e6b7ea945df9ffe85d184b86bcdbfb98e8d
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Mon Apr 24 02:17:43 2017 -0700
anv/allocator: Add support for "back" allocations to state_pool
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=49ecaf88d1405ea17fc05c9b4ca066d6ebf51f62
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 01:27:33 2017 -0700
anv/allocator: Drop the block_size field from block_pool
Since the state_stream is now pulling from a state_pool, the only thing
pulling directly off the block pool is the state pool so we can just
move the block_size there. The one exception is when we allocate
binding tables but we can just reference the state pool there as well.
The only functional change here is that we no longer grow the block pool
immediately upon creation so no BO gets allocated until our first state
allocation.
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=30d63ffe2689efe111933ca60c6c6163764afd43
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 06:01:01 2017 -0700
anv/allocator: Pull the userptr part of block_pool_grow into a helper
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c73ce41a48e1106f75f3b794e15635618850e01c
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Sun Apr 23 18:48:21 2017 -0700
anv/allocator: Roll fixed_size_state_pool into state_pool
The helper functions aren't really gaining us as much as they claim and
are actually about to be in the way.
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d02ef011e0692e3aa86ea2ee5bb3fc3b4112015
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Sun Apr 23 18:36:33 2017 -0700
anv/allocator: Remove the state_size field from fixed_size_state_pool
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=367031a5c82b62ec3359dab862387e679093c9b7
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Sun Apr 23 18:25:17 2017 -0700
anv: Get rid of a bunch of uses of size_t
We should only use size_t when referring to sizes of bits of CPU memory.
Anything on the GPU or just a regular array length should be a type that
has the same size on both 32 and 64-bit architectures. For state
objects, we use a uint32_t because we'll never allocate a piece of
driver-internal GPU state larger than 2GB (more like 16KB).
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e86aeecb6aa3cf5992bb87792c2219f49c905e05
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Sun Apr 23 17:22:26 2017 -0700
anv/allocator: Convert the state stream to pull from a state pool
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e049dea5b280bebd6480823a4cddd70baf46fea7
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 03:32:06 2017 -0700
anv/allocator: Return a null state for zero-size allocations
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=45e1829274f9d23d58c9b73188d9413f9e36a751
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed Apr 26 03:28:52 2017 -0700
anv/allocator: Add no-valgrind versions of state_pool_alloc/free
Reviewed-by: Juan A. Suarez Romero <jasuarez at igalia.com>
More information about the mesa-commit
mailing list