Preemption - Validate driver preemption level (single)
This automated test measures the time that it takes to preempt a specific workload on the test machine. The three supported levels of preemption are: no preemption, DMA boundary preemption, and middle of the DMA packet preemption. This test validates that the driver preempts according to its claim. The test also measures the times that preemptions take, relative to the associated DMA packets. DWM must be on to generate the preemption requests.
Test details
Associated requirements |
Device.Graphics.WDDM12.Render.PreemptionGranularity |
Platforms |
Windows RT (ARM-based) Windows 8 (x64) Windows 8 (x86) Windows Server 2012 (x64) Windows RT 8.1 Windows 8.1 x64 Windows 8.1 x86 Windows Server 2012 R2 |
Expected run time |
~2 minutes |
Categories |
Certification Functional |
Type |
Automated |
Running the test
Before you run the test, complete the test setup as described in the test requirements: Graphic Adapter or Chipset Testing Prerequisites.
Troubleshooting
For troubleshooting information, see Troubleshooting Device.Graphics Testing.
This preemption test generates workloads of ever-increasing sizes that show up as DMA packets on the hardware. The test generates a new size for each iteration through the main test loop. During each loop, the test also monitors the time that the DMA packets take to be serviced. This includes both the standard render packets and the preemption request packets. The test expects a preemption request to be generated by the system each time DMA needs to compose the screen for the user. For standard DMA boundary preemption, the test expects the preemption request packets run times to converge towards the DMA render packet run times, as the run times increase.
If an error is reported by the test, most details can be found in the associated xml file. Search for the error condition and review the information that is logged just before the error. The log file should describe what needs to be investigated.
If an error is reported by the test, if should be manually investigated by inspecting a trace file. We recommend that you create a trace file by using log.cmd that ships with GPUView.exe in the NT performance Toolkit. Make sure that preemption request packets are being generated and that no packets are getting preempted when DMA boundary preemption level is reported.
More information
Command syntax
Parameter | Description |
---|---|
GrowPrimitiveCount |
Instructs test to grow its primitive count on each iteration through the loop (See iteration parameter). Default value: Required |
Time |
Defines the time of each loop (See iteration parameter). Default value: 5 |
ppFrame |
Count of Primitives Per Frame to use as a starting value. Default value: 1 |
Triangles |
The number of triangles for the triangle list. Default value: 1000 |
ppPrimitive |
Pixels Per Primitive – defines the triangle size. Default value: 500 |
ShaderInstructions |
Number of times to loop in the shader. Default value: 2 |
Windowed |
Instruct the test to run windowed rather than full screen. Default value: True |
Iterations |
Number of times to loop and grow the primitives. Default value: 40 |
File list
File | Location |
---|---|
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\ |
TdrDelayTimeLong.reg |
<testbinroot>\nttest\windowstest\Graphics\wddm\bin\ |
TdrDelayTimeNormal.reg |
<testbinroot>\nttest\windowstest\Graphics\wddm\bin\ |
TdrLimitTimeLong.reg |
<testbinroot>\nttest\windowstest\Graphics\wddm\bin\ |
TdrLimitTimeNormal.reg |
<testbinroot>\nttest\windowstest\Graphics\wddm\bin\ |
WGFPayloadTDR.exe |
<testbinroot>\nttest\windowstest\Graphics\wddm\bin\ |
Related topics
Graphic Adapter or Chipset Tests