TDR2 - Standard Two Device Test Graphics (Uninterrupted when another app TDRs)

This automated test measures the Timeout Detection and Recovery (TDR) capabilities of the graphics processing unit (GPU) of a video card or chipset.

This topic applies to these test jobs:

  • TDR2 - Large Payload Penalty Compute Application Test

  • TDR2 - Large Payload Penalty Graphics Application Test

  • TDR2 - Long Running Compute Packet Expect NO TDR (Interactive - win7)

  • TDR2 - Long Running Compute Packet Expect NO TDR (Interactive - win7, PoliceDdi)

  • TDR2 - Long Running Compute Packet Expect TDR (Interactive - win7)

  • TDR2 - Long Running Compute Packet Expect TDR (NonInteractive - win8)

  • TDR2 - Long Running Compute Packet Expect TDR (PoliceDdi)

  • TDR2 - Long Running Compute Packet Expect TDR (PoliceDdi, NonInteractive)

  • TDR2 - Long Running Graphics Packet Expect NO TDR (Interactive - win7)

  • TDR2 - Long Running Graphics Packet Expect NO TDR (Interactive - win7, PoliceDdi)

  • TDR2 - Long Running Graphics Packet Expect TDR (Interactive - win7)

  • TDR2 - Long Running Graphics Packet Expect TDR (NonInteractive - win8)

  • TDR2 - Long Running Graphics Packet Expect TDR (PoliceDdi)

  • TDR2 - Long Running Graphics Packet Expect TDR (PoliceDdi, NonInteractive)

  • TDR2 - Multiple TDR Compute Lockout and Recovery Test (Enumerated Adapter)

  • TDR2 - Multiple TDR Compute Lockout and Recovery Test (NULL Adapter)

  • TDR2 - Multiple TDR Graphics Lockout and Recovery Test (Enumerated Adapter)

  • TDR2 - Multiple TDR Graphics Lockout and Recovery Test (NULL Adapter)

  • TDR2 - Scheduler WLK Validate WDDM1.2 drivers say they support per engine resets

  • TDR2 - Standard Two Device Test Graphics (Uninterrupted when another app TDRs)

Test details

   
Specifications
  • Device.Graphics.WDDM12.Render.TDRResiliency
Platforms
  • Windows 10, client editions (x86)
  • Windows 10, client editions (x64)
  • Windows Server 2016 (x64)
  • Windows 10, client editions (Arm64)
Supported Releases
  • Windows 10
  • Windows 10, version 1511
  • Windows 10, version 1607
  • Windows 10, version 1703
  • Windows 10, version 1709
  • Windows 10, version 1803
  • Windows 10, version 1809
  • Windows 10, version 1903
  • Next update to Windows 10
Expected run time (in minutes) 2
Category Compatibility
Timeout (in minutes) 120
Requires reboot false
Requires special configuration false
Type automatic

 

Additional documentation

Tests in this feature area might have additional documentation, including prerequisites, setup, and troubleshooting information, that can be found in the following topic(s):

Running the test

Before you run the test, complete the test setup as described in Graphic Adapter or Chipset Testing Prerequisites.

Troubleshooting

For generic troubleshooting of HLK test failures, see Troubleshooting Windows HLK Test Failures.

For troubleshooting information, see Troubleshooting Device.Graphics Testing.

More information

The TDR2 test validates that the video driver functions correctly when GPU workloads, as direct memory access (DMA) packets, are processed for longer periods than expected or wanted.

Terms that you'll find in the titles of the jobs for this test include:

  • Interactive (standard behavior). The application doesn't schedule larger workloads. TDRs (at 2 seconds) are expected if the workload is too big.

  • NonInteractive (new functionality). The application may schedule workloads that take longer than 2 seconds to finish. A typical scenario here is a Compute application that will run a large calculation in the background. With NonInteractive workloads, the scheduler will not interrupt its processing if no other GPU work must be performed at the same time.

  • PoliceDdi. When resets occur, the test jobs track all device driver interface (DDI) calls to measure a reasonable responsiveness from the driver and hardware. Generally, DDI calls that take over a quarter second are flagged as excessive.

These test jobs also exercise engine-reset functionality where appropriate. The older TDR functionality performed an adapter-wide reset, whereas the new TDR functionality attempts an engine reset before an adapter-wide reset.

The testing process requires running multiple binaries at the same time. One or more applications generate workloads while another application monitors the effect that these workloads have on the system. The command lines that the test jobs use to start the applications allow for cross-process communication, so running the test jobs in scripts is the preferred technique.

Note

   You must run all test jobs by using administrator credentials. All the test binaries generate log files that shouldn't contain test failures.

 

Command syntax

TDR2 test jobs are divided into these areas:

  • Long Running Graphics Packet test jobs

  • Long Running Compute Packets test jobs

  • Multiple TDR Lockout and Recovery test jobs

  • Uninterrupted Application test job

  • Large Payload Penalty test jobs

  • Miscellaneous test job

Scripts control actions that occur during individual test jobs. The following tables list these scripts. If you're manually reproducing the test jobs, you must run these scripts.

Note

   For test combination command lines, see individual script files.

 

The following Long Running Graphics Packet test jobs run test situations that should and shouldn't cause a TDR, based on whether the test acts like an interactive application. These test jobs also make sure that DDI calls respond in a reasonable amount of time.

Test job Command script

TDR2 - Long Running Graphics Packet Expect NO TDR (Interactive - win7)

TDR_Long_Graphics_5.cmd

TDR2 - Long Running Graphics Packet Expect NO TDR (Interactive - win7, PoliceDdi)

TDR_Long_Graphics_6.cmd

TDR2 - Long Running Graphics Packet Expect TDR (Interactive - win7)

TDR_Long_Graphics_1.cmd

TDR2 - Long Running Graphics Packet Expect TDR (NonInteractive - win8)

TDR_Long_Graphics_2.cmd

TDR2 - Long Running Graphics Packet Expect TDR (PoliceDdi)

TDR_Long_Graphics_3.cmd

TDR2 - Long Running Graphics Packet Expect TDR (PoliceDdi, NonInteractive)

TDR_Long_Graphics_4.cmd

 

The following Long Running Compute Packet test jobs run test situations that should and shouldn't cause a TDR, based on whether the test acts like an interactive application. These test jobs also validate that DDI calls respond in a reasonable amount of time.

Test job Command script

TDR2 - Long Running Compute Packet Expect TDR (Interactive - win7)

TDR_Long_Compute_1.cmd

TDR2 - Long Running Compute Packet Expect TDR (NonInteractive - win8)

TDR_Long_Compute_2.cmd

TDR2 - Long Running Compute Packet Expect TDR (PoliceDdi)

TDR_Long_Compute_3.cmd

TDR2 - Long Running Compute Packet Expect TDR (PoliceDdi, NonInteractive)

TDR_Long_Compute_4.cmd

TDR2 - Long Running Compute Packet Expect NO TDR (Interactive - win7, PoliceDdi)

TDR_Long_Compute_5.cmd

TDR2 - Long Running Compute Packet Expect NO TDR (Interactive - win7)

TDR_Long_Compute_6.cmd

 

In the following Multiple TDR Lockout and Recovery test jobs, the application runs workloads that cause a TDR. The test jobs then validate that after 6 TDRs in a particular period, the application can no longer open the hardware device.

Test job Command script

TDR2 - Multiple TDR Compute Lockout and Recovery Test (Enumerated Adapter)

TDR_Multiple_4.cmd

TDR2 - Multiple TDR Compute Lockout and Recovery Test (NULL Adapter)

TDR_Multiple_3.cmd

TDR2 - Multiple TDR Graphics Lockout and Recovery Test (Enumerated Adapter)

TDR_Multiple_2.cmd

TDR2 - Multiple TDR Graphics Lockout and Recovery Test (NULL Adapter)

TDR_Multiple_1.cmd

 

The following Uninterrupted Application test job makes sure that when an engine reset occurs, an application that currently has the device open continues to function without a device lost.

Test job Command script

TDR2 - Standard Two Device Test Graphics (Uninterrupted when another app TDRs)

TDR_Standard_1.cmd

 

The following Large Payload Penalty test jobs run workloads that are just under the TDR threshold. The test jobs validate that the scheduler correctly delays the application.

Test job Command script

TDR2 - Large Payload Penalty Compute Application Test

TDR_Large_Payload_Compute.cmd

TDR2 - Large Payload Penalty Graphics Application Test

TDR_Large_Payload_Graphics.cmd

 

The following Miscellaneous test job validates that the driver sets appropriate flags.

Test job Command script

TDR2 - Scheduler WLK Validate WDDM1.2 drivers say they support per engine resets

TDR_Validate_WDDM12.cmd

 

File list

File Location

Configdisplay.exe

<[testbinroot]>\nttest\windowstest\tools\

DxgFault.exe

<[testbinroot]>\nttest\WINDOWSTEST\Graphics\wddm\bin\

SchBillboard.exe

<[testbinroot]>\nttest\WINDOWSTEST\Graphics\wddm\bin\

SchManager.exe

<[testbinroot]>\nttest\WINDOWSTEST\Graphics\wddm\bin\

Surfboard.exe

<[testbinroot]>\nttest\WINDOWSTEST\Graphics\wddm\bin\

TdrKMDODTests.dll

<[testbinroot]>\nttest\

WGFPayloadTDR.exe

<[testbinroot]>\nttest\WINDOWSTEST\Graphics\wddm\bin\

 

Parameters

Parameter name Parameter description
PREEMPTION_LEVEL requested preemption level. Either: none, dma_buffer, primitive, triangle, pixel, shader
SCRIPT_NAME