The Vulkan specification (1.0.12) introduces VkDeviceSize in section 2.4:
With few exceptions, Vulkan uses the standard C types for parameters (int types from stdint.h, etc). Exceptions to this are using VkResult for return values, using VkBool32 for boolean values, VkDeviceSize for sizes and offsets pertaining to device address space, and VkFlags for passing bits or sets of bits of predefined values.
However, it never tells us what the underlying type of VkDeviceSize actually is. How are we supposed to know whether it is safe to convert between a VkDeviceSize and a size_t?
From the headers provided with the SDK, I see that it is typedef'ed to uint64_t. How likely is it that this would change, at any point in the future?