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
Hi Lorenzo,
This warning relates to the "Descriptor sets and layouts" section in this document:
https://static.docs.arm.com/100971/0101/arm_mali_application_developer_best_practices_developer_guide_100971_0101_00_en_00.pdf
Does this give you enough information?
Cheers, Pete
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 ;)
Thanks Pete, BTW I didn't get any notification of the replies in this forum (neither by email or the notification popups in the top right.
Hey Lorenzo, how are you?
I'm looking into this.
We performed an upgrade yesterday and there's some odd behaviour with notifications so the vendors are inspecting the logs.
Carl
I'm very well, Carl, and I hope you are too. Thanks for looking into this, I got the notification for this one message!
Hi Lorenzo, I believe the issue is resolved now.