In my application I need sometimes to allocate a new descriptor set and retire the old one to be deleted after all the frames that are using it are finished.
Because Vulkan has a descriptor set pool, I assumed that recycling descriptor sets was the intended use case for this.
Why am I getting the following performance warning? Is it serious enough to have to add our own pool, on the top of the Vulkan pool?
PERFORMANCE WARNING: [MaliPerfDoc] Code 17 : It appears that some redundant descriptor set allocations happened. Consider recycling descriptor sets.
Thanks,
Lorenzo
Yes, we do not currently implement Descriptor Pools as you'd expect ...
From the document:
JUST43 - Current drivers do not optimally implement descriptor pools Allocating descriptor sets from a pool is like a regular allocation, and should be avoided in the critical paths.
So it's advised to reuse descriptor sets rather than allocating and freeing them all the time.
Thank you very much, we will have to do our own pool in the engine then, let me know if the driver engineers are interested in the implementation ;)