[Mesa-dev] [PATCH 00/18] anv: Rework the allocation data structures

Jason Ekstrand jason at jlekstrand.net
Fri May 5 19:25:25 UTC 2017


Sorry about that.  It only fails if you *don't* build against valgrind
headers.  Since my dev machine and our CI are both set up with valgrind
support, I didn't catch it.  I've sent a patch to the list to fix this.

--Jason

On Fri, May 5, 2017 at 5:36 AM, Mike Lothian <mike at fireburn.co.uk> wrote:

> I'm seeing the following failure with GCC 7.1:
>
> /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/intel/vulkan/anv_allocator.c:
> In function ‘anv_state_stream_alloc’:
> /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/
> intel/vulkan/anv_allocator.c:930:28: error: ‘struct
> anv_state_stream_block’ has no member named ‘_vg_ptr’
>        VG_NOACCESS_WRITE(&sb->_vg_ptr, NULL);
>                             ^
> /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/
> intel/vulkan/anv_allocator.c:53:44: note: in definition of macro
> ‘VG_NOACCESS_WRITE’
>  #define VG_NOACCESS_WRITE(__ptr, __val) (*(__ptr) = (__val))
>                                             ^~~~~
> At top level:
> /var/tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/
> intel/vulkan/anv_allocator.c:1214:1: warning: ‘anv_bo_cache_lookup’
> defined but not used [-Wunused-function]
>  anv_bo_cache_lookup(struct anv_bo_cache *cache, uint32_t gem_handle)
>  ^~~~~~~~~~~~~~~~~~~
>
>
> On Thu, 4 May 2017 at 09:09 Juan A. Suarez Romero <jasuarez at igalia.com>
> wrote:
>
>> On Tue, 2017-05-02 at 06:44 -0700, Jason Ekstrand wrote:
>> > Juan,
>> >
>> > Were you planning to review the rest of the series?  Just wondering.
>> >
>>
>> Sorry, it took a bit more to review the remaining patches.
>>
>> Now it is done.
>>
>>
>>         J.A.
>>
>> > --Jason
>> >
>> >
>> > On April 26, 2017 7:35:29 AM Jason Ekstrand <jason at jlekstrand.net>
>> wrote:
>> >
>> > > This absurdly long series does something fairly simple:  It pulls the
>> > > block_pool into the state_pool and makes the state pool capable of
>> > > allocating states larger than the block size.  Unfortunately, there
>> was no
>> > > good way to do it in less than 18 patches. :-(
>> > >
>> > > Cc: Juan A. Suarez Romero <jasuarez at igalia.com>
>> > >
>> > > Jason Ekstrand (18):
>> > >   anv/allocator: Add no-valgrind versions of state_pool_alloc/free
>> > >   anv/allocator: Return a null state for zero-size allocations
>> > >   anv/allocator: Convert the state stream to pull from a state pool
>> > >   anv: Get rid of a bunch of uses of size_t
>> > >   anv/allocator: Remove the state_size field from
>> fixed_size_state_pool
>> > >   anv/allocator: Roll fixed_size_state_pool into state_pool
>> > >   anv/allocator: Pull the userptr part of block_pool_grow into a
>> helper
>> > >   anv/allocator: Drop the block_size field from block_pool
>> > >   anv/allocator: Add support for "back" allocations to state_pool
>> > >   anv: Allocate binding table blocks through the state pool
>> > >   anv/allocator: Get rid of the ability to free blocks
>> > >   anv/allocator: Embed the block_pool in the state_pool
>> > >   anv/allocator: Rework a comment
>> > >   anv/allocator: Add the capability to allocate blocks of different
>> > >     sizes
>> > >   anv/allocator: Add helpers for dealing with bucket sizes
>> > >   anv/allocator: Support pushing multiple blocks onto a free list at
>> > >     once
>> > >   anv/allocator: Allow state pools to allocate large states
>> > >   anv: Drop the instruction pool block size
>> > >
>> > >  src/intel/vulkan/anv_allocator.c                   | 589
>> ++++++++++++---------
>> > >  src/intel/vulkan/anv_batch_chain.c                 |  84 ++-
>> > >  src/intel/vulkan/anv_blorp.c                       |   4 +-
>> > >  src/intel/vulkan/anv_cmd_buffer.c                  |   8 +-
>> > >  src/intel/vulkan/anv_descriptor_set.c              |   4 +-
>> > >  src/intel/vulkan/anv_device.c                      |  26 +-
>> > >  src/intel/vulkan/anv_gem.c                         |   2 +-
>> > >  src/intel/vulkan/anv_gem_stubs.c                   |   2 +-
>> > >  src/intel/vulkan/anv_private.h                     |  74 +--
>> > >  src/intel/vulkan/gen8_cmd_buffer.c                 |   6 +-
>> > >  src/intel/vulkan/genX_blorp_exec.c                 |   2 +-
>> > >  src/intel/vulkan/genX_cmd_buffer.c                 |  15 +-
>> > >  src/intel/vulkan/tests/block_pool_no_free.c        |   8 +-
>> > >  src/intel/vulkan/tests/state_pool.c                |   5 +-
>> > >  src/intel/vulkan/tests/state_pool_free_list_only.c |   5 +-
>> > >  src/intel/vulkan/tests/state_pool_no_free.c        |   5 +-
>> > >  16 files changed, 461 insertions(+), 378 deletions(-)
>> > >
>> > > --
>> > > 2.5.0.400.gff86faf
>> > >
>> >
>> >
>> >
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170505/eb5240e4/attachment.html>


More information about the mesa-dev mailing list