Thanks for your quick answer, Spasi.
Here is the code for saving properties, extensions, features, memory and queue family information:
try(MemoryStack stack = MemoryStack.stackPush()) {
IntBuffer bufInt = stack.callocInt(1);
//Properties
vkPhysicalDeviceProperties = VkPhysicalDeviceProperties.calloc();
vkGetPhysicalDeviceProperties(vkPhysicalDevice, vkPhysicalDeviceProperties);
//Features
vkPhysicalDeviceFeatures = VkPhysicalDeviceFeatures.calloc();
vkGetPhysicalDeviceFeatures(vkPhysicalDevice, vkPhysicalDeviceFeatures);
//Queue Family Properties
vkGetPhysicalDeviceQueueFamilyProperties(vkPhysicalDevice,bufInt, null);
Logger.debug("On physical device creation, it supports {} queue families", bufInt.get(0));
vkQueueFamilyProperties = VkQueueFamilyProperties.calloc(bufInt.get(0));
vkGetPhysicalDeviceQueueFamilyProperties(vkPhysicalDevice, bufInt,
vkQueueFamilyProperties);
//Device extensions
VkUtils.vkCheck(vkEnumerateDeviceExtensionProperties(vkPhysicalDevice,(String) null,bufInt,null),
"Cannot retrieve one of the physical devices number of extensions");
vkDeviceExtensionProperties = VkExtensionProperties.calloc(bufInt.get(0));
VkUtils.vkCheck(vkEnumerateDeviceExtensionProperties(vkPhysicalDevice,(String) null, bufInt,
vkDeviceExtensionProperties),
"Cannot retrieve one of the physical devices extensions");
//Memory properties
vkPhysicalDeviceMemoryProperties = VkPhysicalDeviceMemoryProperties.calloc();
vkGetPhysicalDeviceMemoryProperties(vkPhysicalDevice, vkPhysicalDeviceMemoryProperties);
I think on the retrieving of queue family properties everything is fine.