I have a couple of basic questions regarding the setup and performance of the Linux MSDK. I have an i7-4770R Iris Pro processor system. Clean Ubuntu system setup. No additional hardware drivers installed. I searched Intel for Ubuntu 12.04LTS display drivers and did not find any. MSDK setup based on Linux Server Release Notes (Ver. 5.0.1603329.77219). System then has Ubuntu 12.04.4LTS 64bit, Kernel 3.8.0-23, MDSK Linux Server 16.3.15249_64bit, and libva 1.3400.0.
1) During the install of MSDK I 'lspci -nn' returns the following
"00:02.0 VGA compatible controller : Intel Corporation Device [8086:0d22] (rev 08)"
This seems to be more generic than for others Intel systems where Haswell often gets listed. Is this sufficient for the install and MSDK to run properly? Should I install any additional apt-get packages?
Also "lsmod | grep i915" tells me that the module size of the i915 is 608071. Smaller size than the one listed in instructions but I am assuming this is not an issue.
2) After MSDK installation, when I run the sample_decode_drm with the "-hw" option on a 60minute 480x270 @ 30fps H264 stream the decoding takes roughy 11minutes. Same decode with the "-hw -vaapi" option runs considerably slower ~ 60 minutes. Is this an expected behavior? If so, why is that?
Want to check that I am not missing something basic in the system installation.
Since decode is working you're probably very close.
For question 1, install is now very simple. Media SDK now includes its own version of much of the graphics stack so you don't need to worry about pre-installing anything. Just get the correct kernel+headers and install. Other versions of stack libraries, especially libdrm, can conflict with the Media SDK installation in strange ways so you'll want to make sure to clean any previous versions off of your system before installing.
For question 2, transcode is a much better test of Media SDK performance. (Transcode should be processed at several hundred FPS at the resolution you've listed.) With a software implementation it is reasonable to assume that total time = decode + frame proc + encode, so measuring each stage separately will give some indication of how much it is adding to the total time. Not so with Media SDK, which is asynchronous. Transcode is also a better starting point for the simple reason that there is less input/output data. The raw frame I/O in Media SDK samples is not optimized and known to be quite slow. For decode alone vaapi output is less optimal than system memory. Video/vaapi surfaces are a great benefit when working with pipelines with multiple stages though.
I also think, it's strange results. I tested sample_decode_drm on i7-4770K & Linux Ubuntu Server 12.04 and got the following results:
System memory Video memory (-vaapi)
480p 1154 fps 4602 fps
1080p 275 fps 944 fps
I used big_buck_bunny video sequence. Are my results close to the expected behavior?
I believe your results seems to be accurate, the performance of decoder of Intel Media SDK is quite good and it can decode hundreds of fps at lower resolution specially using video memory.