4 ms·
> No, it happened much earlier, in WDDM 1.0 WDDM 1.0 supported virtualized video memory, but it did it in software by patching command buffers to reference the
by rrss 6y ago
> No, it happened much earlier, in WDDM 1.0
WDDM 1.0 supported virtualized video memory, but it did it in software by patching command buffers to reference the new physical memory addresses.
Not until WDDM 2.0 did WDDM actually support using the hardware virtual memory capabilities of GPUs.
> A new memory model is implemented that gives each GPU a per-process virtual address space. Direct addressing of video memory is still supported by WDDMv2 for graphics hardware that requires it, but that is considered a legacy case. IHVs are expected to develop new hardware that supports virtual addressing.
i.e. prior to WDDM 2.0, each process did not have a separate virtual address space on the GPU, and all hardware was assumed to use "direct" (i.e. physical) addressing of memory.
https://docs.microsoft.com/en-us/windows-hardware/drivers/display/gpu-virtual-memory-in-wddm-2-0 https://docs.microsoft.com/en-us/windows-hardware/drivers/di...
> Under Windows Display Driver Model (WDDM) v1.x, the device driver interface (DDI) is built such that graphics processing unit (GPU) engines are expected to reference memory through segment physical addresses. As segments are shared across applications and over committed, resources gets relocated through their lifetime and their assigned physical addresses change. This leads to the need to track memory references inside command buffers through allocation and patch location lists, and to patch those buffers with the correct physical memory reference before submission to a GPU engine
> it is necessary to eliminate the need for the video memory manager to inspect and patch every command buffer before submission to a GPU engine.
> To achieve this, WDDM v2 supports GPU virtual addressing