Device

Unlike Direct3D 11, there is no longer a device context. The device context has been separated into multiple separate constructs.

The ID3D12Device, like Direct3D 11's equivalent ID3D11Device, is responsible for resource management. Unlike Direct3D 11 however, the device is now responsible for creating command queues and command lists, which form the equivalent of the ID3D11DeviceContext.

One notable new feature of Direct3D 12 device objects when compared to Direct3D 11 device objects is the inclusion of the possibility to have multiple devices work together. Devices can create shared objects for objects created by the device, and other devices can open these shared objects for shared processing. This allows for explicit cooperation between multiple GPUs to receive results, allowing for more raw performance to be gathered from systems with multiple GPUs.