I have modified the sample video conference (sample_videoconf) to work with DX11. I have added a basic calculation which records the duration taken to encode the whole file and consequently the maximum fps that the system can encode.
When I launch it with an input yuv file that has a resolution of 1280x768 with DX11 acceleration and surfaces, I obtain a score of 36 fps. I tried multiple times and it's always around this value (+/- 1 fps).
I have then downloaded the Intel GPA and installed it. When I launch my application through the performance analyzer tool of the GPA with exactly the same parameters (DX11 acceleration and surfaces, same input file), I obtain systematically 45fps. Which is 25% faster!
Any idea? Does GPA boost the GPU frequency? How can I achieve the same result without GPA?
CPU: Atom E3845
RAM: 4 GB
SSD: Intel 525 120 GB
OS: Windows 8.1 32 bits
Thanks for the question. Based on what you have explained, this is the most likely cause - the GPA tool execution is increasing the load on the system therefore entering the turbo mode (highest freq). This can directly impact the performance of the application. You can check this behavior my monitoring the CPU-GPU load and frequencies.
If your experimentation proves otherwise, please share the results and some more details of your experiment so that we can reproduce the behavior on our end.
One more thing - When computing the performance (fps), please make sure you do not account for the file I/O operations (reading YUV and writing the bit stream) component.
Also, the samples are intended to show framework for developing applications using Media SDK, and are not for performance measurements. The tutorials, on the other hand, are simpler implementations and you can add your video conferencing specific code to them.