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