if you check any of the Microsoft D3D talks from GDC there's a lot of content about WDDM 2, which will enable a lot of this stuff. Not sure if they are posted yet but I imagine they will be soon if not.
No, the videos are not available yet, only [post=1835443]a live blog from one of the sessions[/post], which lacks any intricate details.
I'm only beginning to grasp the changes required. The current WDDM/DXGI model is built on two cornerstones. First, the kernel-mode driver (aka "display miniport driver") implements architecture-specific resource management and enumeration functions provided by DXGI. If you check the DDK documentation (with a quite bizarre
flow chart diagram, or, alternatively, a much simpler
flow chart from WinHEC 2005 sessions), this is the lowest level of the Windows graphics stack which serves as the foundation for the Desktop Windows Manager (DWM), Direct3D and GDI (
cdd.dll), and it mostly does low-level resource management tasks like memory copy, surface creation, swap chain and presentation, BitBlt for GDI acceleration, etc.
The
user-mode display driver is where the architecture-specific 3D rendering work is done. Processing pre-compiled shaders, vertex buffers, managing the workload on processor cores, etc.
Now If you remove kernel-mode miniport driver, it's much like a standard USB, SATA or Universal Audio Architecture driver stack in Windows. You have a Microsoft-supplied port-class driver or a kernel (win32k.sys) driver, which makes all the low-level interactions and device discovery/enumeration, and any architecture-specific details are handled by registry tweaks in an .INF file.
And since you do not perform any automatic memory management or resource sharing anymore, the user-mode driver is only doing preparation work to batch the workload in an architecture-specific format, and the kernel driver simply sends the workload down to the actual GPU.
I can't imagine how these two different modes of operation can be implemented in the same display driver without turning it into an incoherent mess. It's either DXGI/WDDM 1.x, where all GPU resources are explicitly managed by the driver, or it's a completely new WDDM 2.0, where DXGI does not even exist.
And that would require a complete overhaul of Windows graphics stack, which brings up compatibility issues. Will Microsoft convert Direct3D 10-11/DXGI 1.x and Direct3D 8/9/Ex to run as a compatibility layer on top of Direct3D 12 runtime? Or rewrite the Direct3D 9 and 11 runtimes and DXGI 1.3 to run on top of WDDM 2.0? What about DWM, GDI and Direct2D/DirectWrite?
Doh.
//Build 2014, April 2-4.