I'm developing real time 3D graphics and video software to run on tablets and low power ultra book type devices.
When decoding h.264 video and also running pixel shaders that perform a fair amount of work (for the platform), I see the video codec struggles to keep up.
My question is, how does the video decoding on a device like the Microsoft Surface 3 (64bit Atom + Intel HD Graphics) share CPU and GPU resources?
I'm trying to understand performance expectations and implications.
Your issue could be the result of power, with low power devices the CPU and GPU have less power to work with, thus lower performance in demanding situations. If your pixel shaders are doing a lot of work then the GPU is using a lot of the available power, leaving little for the video codec to do its work. Resource sharing is dynamic, it depends on the workload.
You should download Intel INDE: https://software.intel.com/intel-inde
It is a comprehensive set of tools that would allow you to analyze the workload and see where the bottleneck is. Using GPA you can get a system trace the shows the work being done on the CPU and GPU, a frame capture will allow you to dig into the shaders and the work they are doing.
Thanks for responding Michael.
I'll try out GPA and see what it can tell me. The systems I've developing for are Windows based, however some have Core-M and Atom CPUs, so INDE as a whole is probably less useful.
I was hoping to find out how much video decoding is done using fixed function hardware and how much CPU and GPU resources are leveraged to perform this process on different Intel architectures.
Hard to say, media is not my area. This forum is for game developers working with Intel graphics (which is my area). It will depend on the workload, the video codec in use, etc. So a lot of factors here to consider. You can check our developer guides:
Media SDK developer guide: https://software.intel.com/sites/default/files/Intel_Media_Developers_Guide_0.pdf
Intel graphics developer guides: https://software.intel.com/en-us/articles/intel-graphics-developers-guides
I will also talk to a couple engineers who work on media and see if their is any guidance.
Thanks for the information Mike. I will read those guides. I also appreciate you asking your colleagues.
While this project is not a game, it is a real-time interactive 3D graphical application using video game technology. It also happens to encode and decode video from disk and network sources. It is quite impressive what Intel graphics, core-m and atom processors can achieve on these low power devices. I hope I'm not pushing them too far.