How To Install Wddm 2.0

WDDM 2.1 must have an identical Feature Score as that of the WDDM 2.0 graphics driver (D1). WDDM 2.1 graphics drivers must use a different OS INF install section. WDDM 2.1 graphics driver INF changes for “Driver Store' installation. Hi, I use Intel Processor i7 4790 K,I have AMDHD 5450 GPU model, I also update it's Driver. I download Windows 10 - 64-Bit Edition 15.7.1 WHQL. After installing it's show me 15.301. Why i can not install 15.7.1 or higher version. I wan't to upgrade window Display Driver 2.0 or higher. Graphics Graphics hardware acceleration requires DirectX 9 or later, with WDDM 2.0 or higher for Windows 10 (or WDDM 1.3 or higher for Windows 10 Fall Creators Update). Professional Plus Skype for Business requires DirectX 9 or later, 128 MB graphics memory, and 32 bits per pixel capable format.

-->

This topic provides details about new features and enhancements in Windows Display Driver Model (WDDM) version 2.1, which is available starting with the Windows 10 Anniversary Edition.

WDDM 2.1 itself is optional. If implemented, it is a collection of mandatory and optional driver capabilities. Any driver which supports any of those capabilities must support all of the mandatory ones. Support can be validated by HLK tests, but Dxgkrnl will check for consistency in the capabilities and DDIs.

WDDM 2.1 Requirements Table

FeatureApplicability
Offer and reclaim improvementsMandatory
Video memory managementOptional
HW protected content reliability improvementsSelect Hardware
Application support with Windows GameDVRMandatory
Indirect displaySelect Hardware
Driver store and side-by-side installationMandatory
DirectX memory surface sharing for camera/capture scenariosMandatory

WDDM 2.1 supports the following D3D versions: D3D9, D3D10, D3D10.1, D3D11, D3D11.x, D3D12

Offer and reclaim improvements

A new DDI, PFND3DDDI_RECLAIMALLOCATIONS3CB was created to reduce memory footprint of applications running in background mode. This interface will enable applications to offer resources that are acceptable to fully de-commit, when going into the background. As a result, the Process Lifetime Manager will be able to reclaim more memory from background apps that use DirectX, which leads to less background application terminations when under memory pressure.

Other DDI changes:

For more information about offer and reclaim resources, see Offer and reclaim changes.

Application support with Windows GameDVR

Windows 10 Anniversary edition includes improved ability to use the Windows game bar and GameDVR with full screen games.

WDDM 2.1 drivers are required to support a performance feature called present batching, which adds multi-threading support for flip model swapchains. This is an essential feature that ensures that full screen games with game bar run at the same level of performance as on earlier versions of Windows.

The following lists the new DDIs created to enable this feature:

Indirect Display

In WDDM 2.1, Indirect Display enables USB connected displays to participate in all the same user experiences as any other monitor. In addition, an Indirect Display driver is a User Mode driver, which is simpler to develop than a kernel mode driver, and as a result contributes to increased overall system reliability.

In WDDM 2.1, the following USB display features/experiences are enabled:

  • When connecting a USB display to a Windows platform or upgrading operating systems, the proper drivers will be downloaded and installed from Windows update.

  • Connecting monitors to USB display hardware will detect and set the correct monitor topology, resolution and DPI.

  • Users can change monitor resolution and scaling on the monitor.

  • Users can disconnect USB displays and reconnect displays without unexpected side effects.

  • Monitor topology is retained through disconnect and reconnect to the same monitor.

  • USB displays functions properly in various power states including sleep and hibernation.

For more information about indirect display, see Indirect Display Driver Model Overview

Driver Store and Side-by-Side driver installation

WDDM 2.1 introduces installation of graphics drivers through the driver store. This mechanism of installing graphics drivers improves the resiliency of driver updates from Windows Update, eliminating driver file version mismatches resulting in system instabilities and user initiated reboots. Each subsequent driver update will be run directly from its unique location in the driver store (i.e. System32DriverStoreFileRepository[…]), thus avoiding driver file overwrites and mismatches.

Feature implementation of driver store requires changes to the graphics driver INF file in order to ensure that the driver files get copied to the unique driver repository. The INF changes are explained in more details in the INF Requirements section in this document.

DXIL

WDDM 2.1 introduces the transition of the GPU shader compiler stack from DirectX Byte Code (DXBC) to DirectX Intermediate Language (DXIL), a new format for transmitting shader instructions to the GPU. Transition to DXIL delivers the following benefits to developers:

  • Programmability - Ease-of-development is improved and complexity of the shader creation process is reduced for developers by minimizing differences between GPU programming syntax and CPU languages that developers are familiar with.

  • Higher-performance compiler:

    • Runtime Shader Performance is enabled to deliver improved performance.
    • DXIL provides a new set of intrinsic that enables sharing of data across the lanes of the SIMD processors in GPUs.
  • Workflow Flexibility - DXIL enables developers to be in control of their own custom tools and optimization passes and choose which compilation steps are applied at build time versus runtime.

  • Advanced Language Features - An evolved language provides key features that eliminate differences between GPU code and CPU code, and flatten the learning curve for GPU programmers.

With these features focusing on providing benefits for developers, end users will see the benefits in improved performance of new or updated games even when run on existing hardware.

DirectX Memory Surface Sharing for Camera/Capture Scenarios

In WDDM 2.1, A frame server component was introduced to share a camera or capture device across multiple processes concurrently. This enables saving of captured frames to one memory location where multiple applications can read from, as opposed to copying the image data between processes and co-processes multiple times. This feature provides more efficient management of captured pictures across multiple processes, power savings, bandwidth reduction and latency reduction for WDDM 2.1 compliant hardware and drivers which results in performance gains for applications and users.

The frame server allocates captured image as a cross-process shareable memory, and shares this memory out to processes requesting access. It is worthy to note that since the frame server broadcasts the texture to multiple client processes, the texture must support concurrent reading. Currently NV12 textures is supported for this purpose.

Pipeline State Object (PSO) Caching and Library

Introduced in D3D12, Pipeline State Object (PSO) is an interface which represents the graphics pipeline instructions and resources (aka state) as a unified object to reduce mismatch between D3D and driver decompositions of the state. Running graphically demanding applications and games requires creating a vast number of PSOs.

WDDM 2.1 PSO library and caching enables the gaming applications to store a PSO on physical storage after being created during the initial run. This provides D3D runtime the ability to retrieve the pre-created PSOs from the library in future instances thus reduce the PSO extraction time. For example, when running a game after the first time or after rebooting the PC, content will be loaded from the physical library as saved PSOs.

Directx 12 Update Windows 10

Start of Pipeline GPU Timestamps

In WDDM 2.1, the capability to retrieve start of graphics events’ timestamps in the GPU pipeline was introduced. This new feature, used in conjunction with the end of pipeline timestamps, provides developers with a clear and fine-grained visualization of the parallelization, pipelining, and timing of their application’s activities occurring on the GPU. Provided with the execution time of each event, developers can further optimize their code and investigate inefficiencies and other performance issues.

This feature contributes to enabling ‘real-time, low overhead’ GPU performance data gathering and at the same time, provides enough information to visualize and measure workloads on GPUs. The goal of the feature is to provide enough information to reconstruct the exact order and duration of operations executed by the GPU, so that tools can visualize parallelism and pipelining with an engine, measure GPU workloads, and identify potential synchronization issues.

Viewing GPU Microcode

WDDM 2.1 enables developers to further optimize their shaders by presenting GPU microcode viewing. Developers program the graphics pipeline through creating shaders in HLSL, which then are compiled to an intermediate language for the GPU driver. The driver runs additional compilations and optimizations to convert this code to GPU-specific instructions which remained opaque to the developers. With this feature, developers are presented readable GPU-specific code to evaluate the extent of their shader optimization and speed.

This feature enables the UMD to comment on each programmable stage of the graphics pipeline (aka. shaders) and return actionable information on the programmer’s use or misuse of those shaders. The GPU-specific microcode is disassembled and presented in readable string format along with the UMD comments. Developers can view their HLSL code mapping to readable GPU code side by side which enables them to dynamically modify their code and see the compiler optimization results on the GPU code side.

Determining WDDM Version

How To Install Wddm 2.0 Driver

WDDM 2.1 Caps

Drivers will report WDDM 2.1 support through DXGK_DRIVERCAPS::WDDMVersion with a new version constant:

DXGK_WDDMVERSION::DXGKDDI_WDDMv2_1 = 0x2100

Dxgkrnl will not use the WDDMVersion cap as a way to determine which new features are supported—that task will be left to other caps or DDI presence. However, if the driver reports WDDM 2.1 support through the WDDMVersion cap, dxgkrnl will validate that caps or DDIs required by WDDM 2.1 are present and fail to create the adapter if they are not. Inconsistent caps will result in failure to create adapter or segment.

Note

Applications, existing or newer must not have to query the driver model to take advantage of any Windows 10 Anniversary Edition features which are enabled through platform improvements such as the ones outlined here. Any capability changes must be surfaced through the respective runtime.

A new constant has been added to match KMT_DRIVERVERSION_WDDM_2_1:

DDI interface versions in the KMD are as follows:

Graphics INF Requirements

WDDM 2.1 graphics drivers have different INF requirements as compared to the WDDM 2.0 or previous drivers. These are:

  1. WDDM 2.1 must have an identical Feature Score as that of the WDDM 2.0 graphics driver (D1).

  2. WDDM 2.1 graphics drivers must use a different OS INF install section.

  3. WDDM 2.1 graphics driver INF changes for “Driver Store' installation.

For more info, see INF File Sections and Directives.

Driver files, 32 and 64 bit, will remain in and be loaded from the driver store. WoW64 file system redirection does not apply to the driver store. IHVs may specify subfolders by using standard INF syntax to create, for example, a WoW64 folder under the unique driver store folder if desired.

The following is an example of how an INF supporting run from driver store differs from previous behavior.

How To Install Wddm 2.0 Windows 10

To specify a subfolder, drivers may use syntax as shown in the following example:

Driver Versioning

The driver DLL and SYS files for a graphics adapter or chipset must have a properly formatted file version.

The driver information file (.inf), kernel mode driver (.sys), and user mode driver (.dll) file version info must match. In addition, version info for any files identified in the [SignatureAttributes] section of the .inf as PETrust binaries must match the .inf. It is recommended that file version info for additional binaries in a driver package match the .inf.

To be consistent with the prevailing file versioning requirements for legacy operating systems, file version formatting must follow an AA.BB.CCCCC.DDDDD pattern where:

  • AA indicates the driver model version of the most capable device listed in the .inf
  • BB (for WDDM 1.2 drivers and higher)
    • Indicates the highest available D3D Feature Level of the most capable device listed in the .inf
  • BB (for WDDM 1.1 drivers and lower)
    • Indicates the highest available DDI version supported by the most capable device listed in the .inf
  • CCCCC is a number up to 5 digits from 0 to 65535 chosen by the vendor
  • DDDDD is a number up to 5 digits from 0 to 65535 chosen by the vendor

Values for AA field:

Driver ModelAA value
WDDM v2.121
WDDM v2.020
WDDM v1.310
WDDM v1.29
WDDM v1.18
WDDM v1.07
XDDM6

Wddm 2.0 Update

Values for BB field (WDDM 1.2 and later):

DirectX Feature LevelBB value
12_x21
12_120
12_019
11_118
11_017
10_116
10_015
9_314
9_214
9_114

Values for BB field (WDDM 1.1 and earlier):

DDI versionBB value
D3D11-DDI on Feature Level 11_017
D3D11-DDI on Feature Level 1016
D3D10-DDI15
D3D9 DDI14

Examples

Note

There is no requirement to pad numbers with leading zeros, i.e. 123 does not need to be represented as 00123 for the CCCCC or DDDDD fields. In previous versions of the Windows OS the last two fields were 4 digits, i.e. CCCC.DDDD. Therefore, the examples for driver versions prior to Windows 10 and WDDM 2.0 only have 4 digits.

  • Windows Vista WDDM 1.0:

    • D3D9 DDI drivers can use 7.14.0000.0000 to 7.14.9999.9999
    • D3D10 DDI drivers can use 7.15.0000.0000 to 7.15.9999.9999
  • Windows 7 WDDM 1.1:

    • D3D9 DDI drivers can use 8.14.0000.0000 to 8.14.9999.9999
    • D3D10 DDI drivers can use 8.15.0000.0000 to 8.15.9999.9999
    • D3D11 DDI with FL_10_0 drivers can use 8.16.0000.0000 to 8.16.9999.9999
    • D3D11 DDI with FL_11_0 drivers can use 8.17.0000.0000 to 8.17.9999.9999
  • Windows 8 WDDM 1.2:

    • FL_10_0 HW can use 9.15.0000.0000 to 9.15.9999.9999
    • FL_10_1 HW can use 9.16.0000.0000 to 9.16.9999.9999
    • FL_11_0 HW can use 9.17.0000.0000 to 9.17.9999.9999
    • FL_11_1 HW can use 9.18.0000.0000 to 9.18.9999.9999
  • Windows 8.1 WDDM 1.3:

    • FL_10_0 HW can use 10.15.0000.0000 to 10.15.9999.9999
    • FL_10_1 HW can use 10.16.0000.0000 to 10.16.9999.9999
    • FL_11_0 HW can use 10.17.0000.0000 to 10.17.9999.9999
    • FL_11_1 HW can use 10.18.0000.0000 to 10.18.9999.9999
  • Windows 10 WDDM 2.0:

    • FL_11_1 HW can use 20.18.0000.0000 to 20.18.65535.65535
    • FL_12_0 HW can use 20.19.0000.0000 to 20.19.65535.65535
    • FL_12_1 HW can use 20.20.0000.0000 to 20.20.65535.65535
  • Windows 10 WDDM 2.1:

    • FL_11_1 HW can use 20.18.0000.0000 to 21.18.65535.65535
    • FL_12_0 HW can use 20.19.0000.0000 to 21.19.65535.65535
    • FL_12_1 HW can use 20.20.0000.0000 to 21.20.65535.65535

How To Install Wddm 2.0

Enforcement

Wddm Driver Download Windows 10

A mandatory test in the HLK certification playlist for Windows 10 builds higher than 10586 will enforce the rules above. The test will be optional for older OS versions. For Windows 10 builds after 10586 the WDDM version has been updated to 2.1. Another way to view this is that the mandatory requirement only applies to drivers that are built for WDDM 2.1 or higher.