why does the type of pDynamicOffsets is uint32_t but not VkDeviceSize?
The specs about vkAllocateMemory says:
Some platforms may have a limit on the maximum size of a single allocation. For example, certain systems may fail to create allocations with a size greater than or equal to 4GB. Such a limit is implementation-dependent, and if such a failure occurs then the error VK_ERROR_OUT_OF_DEVICE_MEMORY should be returned.
So in theory, I can allocate more than 4GB in one call ( don’t ask me what for ) but pDynamicOffsets in vkCmdBindDescriptorSets put the limit to 4GB.