Game developers want to deliver the most engaging and enjoyable experiences possible, but it's not an easy task. With the rapid expansion of gaming platforms, visual computing technologies, and immense competition, developers are under enormous pressure to create games that are not only innovative, immersive, and graphically amazing, but -- perhaps more importantly -- able to perform on a wide range of systems in a quickly expanding device ecosystem.
When it comes to optimizing game performance, the Intel Graphics Performance Analyzers tool suite (Intel GPA) can help. Used for years by many of the world's leading game houses and engines, Intel® GPA helps developers uncover and solve a wide range of performance issues so they can deliver the best game possible. Fast.
This paper highlights common challenges encountered during the development of three world-class games and how developers used Intel GPA to quickly solve them, resulting in significant performance and quality gains.
Download the latest version of Intel® GPA FREE. Visit intel.com/software/gpa.
XCOM: Enemy Unknown
Understanding Your Game Engine
THE GAME: A re-imagining of the 1994 PC title, XCOM: Enemy Unknown by Firaxis Games is a strategy game set in the near future during an alien invasion. Players direct the combat missions and operations of XCOM, an elite paramilitary organization tasked with defending Earth. Built on Epic's Unreal Engine, XCOM: Enemy Unknown is an acclaimed modern remake of the original, delivering tactically rich gameplay that keeps players engaged through tricky maneuvers and tension-fueled decisions.
CHALLENGE 1: Sudden FPS drop of nearly 300%. During a short scene involving character rendering and shading executions, frame rates unexpectedly dropped from 30 to 11 FPS. Though the slowdown lasted only a few seconds, it noticeably affected game performance.
Image 1: Short scene where frame rates dropped 3x during shading executions.
SOLUTION 1: Intel GPA frame-capture analysis. A feature of Intel GPA allows developers to immediately capture a snapshot of any scene and then, using Intel GPA Frame Analyzer, visually drill down to uncover the root cause of performance issues. "In this case, the issue turned out to be a shader that was intended for offline rendering but was left in the production version by accident."
THE RESULT: Frame rate jumped to 30 FPS. Although the impact of the non-production shader wasn't extensive, by using Intel GPA the development team was able to identify and fix the issue within minutes.
CHALLENGE 2: Even after fixing the non-production shader, performance was still sub-optimal. While working with Firaxis, Intel engineers found around 30-40% of the total frame time was being spent copying render targets, the reason being Unreal wanted to resolve the targets which is required when using MSAA. Firaxis was not using MSAA so finding a way to remove the copies was ideal.
A resolve is where you take a render target that was previously written to and copy it to a texture so that you can use it as input on another operation like a post processing effect. With a post processing effect like blur you will need to do a resolve after the horizontal and vertical steps. The copy can be an expensive operation so if you have many of these it can really add up to a big chunk of your overall frame time.
SOLUTION 2: Intel GPA's "select all draw calls doing XYZ" capability. With the Intel GPA Frame Analyzer tool, a developer can right-click on any asset and see all of the draw calls that use it. By understanding where and to what extent copy jobs are being used, developers can strategically remove them to optimize performance.
Which is what Firaxis did. Using this feature in Intel GPA, they identified and removed all copy jobs from the game. It's important to note that copy-job removal in non-MSAA games should be done strategically and on a case-by-case basis because removal can sometimes cause noticeable visual artifacts. For XCOM, removing 100% of the copy jobs was optimal. But this may not be the case in other games, which is why Intel GPA Frame Analyzer is useful: it helps developers identify the most critical performance bottlenecks within a frame.
Could copy jobs have been found without Intel GPA? "Unlikely," says Jeff Laflam, Intel Senior Application Engineer, who advised Firaxis on this project. "A developer could manually uncover one or two instances where a copy job was happening, but to see copy jobs everywhere and see the extent to which the game is being affected? Without Intel GPA, it would take so long as to essentially be an impossible task."
THE RESULT: Increase of 1.5x FPS. Frame rates increased from 21 to 31 FPS, a 1.5x improvement.