This Intel® Media SDK tutorial sample operates in the same way as the "sample_3_encode" workload except that it is using D3D memory surfaces instead of system memory surfaces.
Like the "simple_2_decode" tutorial sample this sample supports both Microsoft DirectX* 9 and DirectX* 11. For more details on this topic, please refer to "simple_2_decode" sample description.
Analyzing the workload using the Intel® GPA “Media Performance” dialog shows improved overall GPU utilization, ~80%, resulting in better performance. For tutorial snapshot benchmarks comparing all workloads analyzed with Intel GPA, navigate to this page.
Let’s explore what is going on by studying the Intel GPA workload trace
- From the trace we can see that the system to D3D memory copy is eliminated, thus improving GPU load, performance, and CPU utilization slightly. Other than that not much has changed if compared to the former system memory based workload trace.
To improve performance and achieve greater GPU utilization we must move away from the synchronous encoding approach towards asynchronous workload behavior. The next tutorial section will explore an asynchronous encode pipeline.
This tutorial sample is found in the tutorial samples package under the name "simple_3_encode_d3d". The code is extensively documented with inline comments detailing each step required to setup and execute the use case.