How "early" is this, exactly?
Graphics units as early as Radeon R300 (2002) or Voodoo 1 (1995) support CPU memory-mapped access to on-board video RAM.
I speculate all PCI graphics units have such a feature, including graphics units that predate the Voodoo 1 that don't include "3D" features. Maybe there are some ancient 1980s ISA bus units that only support video RAM accesses via special x86 IO ports. Is such trivia relevant to an article about Vulkan? 🙂
Suggestion: do one of these things:
- Delete the text starting from "Early on, CPU accessible VRAM" and ending at "make it accessible via the CPU." (the information is misleading and/or not relevant to Vulkan)
- Give a specific example of the graphics unit you're referring to that does not support CPU memory-mapped video RAM, with additional clarification on how this is relevant for VMA/vkAllocateMemory/vkMapMemory
I do see the note about "so-called "staging" buffer on the host". Perhaps this could be a few sentences longer to explain more precisely when this is necessary? I suspect the current "dedicated GPUs can now map most of their VRAM into host address space" may be an incorrect or insufficiently nuanced explanation.
How "early" is this, exactly?
Graphics units as early as Radeon R300 (2002) or Voodoo 1 (1995) support CPU memory-mapped access to on-board video RAM.
I speculate all PCI graphics units have such a feature, including graphics units that predate the Voodoo 1 that don't include "3D" features. Maybe there are some ancient 1980s ISA bus units that only support video RAM accesses via special x86 IO ports. Is such trivia relevant to an article about Vulkan? 🙂
Suggestion: do one of these things:
I do see the note about "so-called "staging" buffer on the host". Perhaps this could be a few sentences longer to explain more precisely when this is necessary? I suspect the current "dedicated GPUs can now map most of their VRAM into host address space" may be an incorrect or insufficiently nuanced explanation.