On Fri, Aug 4, 2017 at 1:59 AM, Chris Wilson <ch...@chris-wilson.co.uk> wrote:
> Quoting Jason Ekstrand (2017-08-04 02:25:26) > > This is mostly a copy+paste of the BO cache but it's a bit simpler > > because syncobjs don't have actual backing storage so we don't need to > > check sizes or anything like that. Also, we put the refcount directly > > in anv_syncobj because they will always be heap pointers. > > Ok, but why do we need one at all? Some part of the Vk spec, some bad > behaviour you noticed? Or just that it is more elegant to be minimalist? > Gah! I thought I saw a real-world problem and decided the kernel must be de-duplicating for me. But now I remember that it doesn't and just looked at the kernel code and confirmed that it gives you a new idr entry on every fd_to_handle. I'll delete all this garbage and go back to doing it the way I was before. Thanks for pointing that out! > > --- > > src/intel/vulkan/anv_allocator.c | 194 ++++++++++++++++++++++++++++++ > +++++++++ > > src/intel/vulkan/anv_device.c | 9 +- > > src/intel/vulkan/anv_private.h | 40 ++++++++ > > 3 files changed, 242 insertions(+), 1 deletion(-) > > > > diff --git a/src/intel/vulkan/anv_allocator.c b/src/intel/vulkan/anv_ > allocator.c > > index efaaebc..204c466 100644 > > --- a/src/intel/vulkan/anv_allocator.c > > +++ b/src/intel/vulkan/anv_allocator.c > > @@ -1422,3 +1422,197 @@ anv_bo_cache_release(struct anv_device *device, > > > > vk_free(&device->alloc, bo); > > } > > + > > +VkResult > > +anv_syncobj_cache_init(struct anv_syncobj_cache *cache) > > +{ > > + cache->map = _mesa_hash_table_create(NULL, _mesa_hash_pointer, > > + _mesa_key_pointer_equal); > > Not hash_uint for u32? Bah, for the number of ht mesa creates for > looking up u32 names, you would think it would have an ultra-specialised > data struct for it. :( > -Chris >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev