Hello, memory concept is very important in Vulkan
But Vulkan Spec document explains this concept somewhat confusingly
It is said
Device Memory is
Memory accessible to the device. Represented by a VkDeviceMemory object.
Memory Heap is
A region of memory from which device memory allocations can be made
This means
Device Memory is the same as Memory Heap
Or Memory Heap is a subset of Device Memory
Is this correct?? (But I guess, this may be wrong)
But in Memory Type (VkMemoryHeapFlagBits)
there is a memory type which is neither device-local nor host-visible
So then, this memory is host-local memory but not host-visible, so host cannot access this type
However, application can call VkAllocateMemory there, whose memory type will be host-local but not host-visible
so this memory belongs to outside of host-visible area inside host-local memory(RAM)
Hence, memory heap contains area outside of host-visible area in RAM
Conclusively, inside RAM, there is area which application cannot access but GPU can access,
which is so strange (GPU should access here, because this area belongs to Heap or Device Memory)
Is this correct?
Could you please explain to me about this?
Thank you