To start off, I got a GeForce GTX 1060 Mobile (6GB), 16GB of RAM and an Intel Core i7-8750H.
I spotted something on Vulkan under Windows 10 probably being a driver bug.
When I call vkGetPhysicalDeviceMemoryProperties, the API returns two memory heaps : one of 6GB with the flag VK_MEMORY_HEAP_DEVICE_LOCAL_BIT set (that’s the GPU memory), and anonther one of 16GB with no flag set. I assume this one is meant to be the host memory, on the regular RAM.
However, this amount of bytes for the host heap seems off : when I try to allocate more than 8GB on this heap, the allocation is being made by vkAllocateMemory with return code VK_SUCCESS, but when I try to write on a buffer mapped to this memory (using a staging buffer), I got a VK_ERROR_DEVICE_LOST error code on vkQueueSubmit.
Microsoft says than only the half on the available memory can be used as shared graphics memory :
Therefore that 16GB value for this heap seems two times too large.
I submitted this issue on Vulkan’s repository and I’ve been told it’s most likely a driver issue :
I checked my drivers, they are up-to-date (version 411.63) and the problem still persists.
The same program is running totally fine on Linux though.
So what’s going on ?
Thanks by advance.