I have met enough game developers in my professional life to know that these guys are among the smartest people on the planet. Those particular individuals will go to extreme lengths to extract the last bit of performance or functionality from a computer system. Graphics engineers in particular are on a quest to bend the hardware to their will. Their passion, smarts and dedication has enabled successive waves of real-time graphics technology breakthroughs in console and PC game titles. To achieve these results, developers need to gain information about the hardware, use specific tools to analyze it and write efficient code to control it. More often than not, innovative results are only possible via the exchange of knowledge that happens within the game development community. While whole conferences are dedicated to this information sharing, it is often in more modest settings that inspiration takes form. Dinner conversations, plan files, developer forums or chats are common catalysts to graphics greatness.
Yet there are hurdles getting in the way of productivity and innovation. It can be difficult for developers to leverage their R&D investment on both consoles and PC because of the disparity between the two platforms. Console games often tap into low-level GPU features that may not be exposed on PC at the same level of functionality, causing different — and usually less efficient — code paths to be implemented on PC instead. Worse, proprietary libraries or tools chains with “black box” APIs prevent developers from accessing the code for maintenance, porting or optimizations purposes. Game development on PC needs to scale to multiple quality levels, including vastly different screen resolutions. Triple monitor setups, 4K support or dual renders for VR rendering require vast amounts of GPU processing power yet brute force rendering only gets you so far. There is still a vast amount of graphics performance still untapped, and it’s time to explore smarter ways to intelligently render those increasing numbers of pixels. “Opening up” the GPU is how we solve this.
GPUOpen marks the beginning of a new philosophy at AMD. It is the continuation of the initiative we started with Mantle where we embarked upon a journey to give game developers more efficient ways to drive the GPU. A couple of years later and the game development world is now rejoicing in the advent of standard and explicit graphics APIs such as Microsoft’s DirectX® 12 and Khronos’ Vulkan™. Now is time to do even more for developers.
Today is the day we launch GPUOpen.
GPUOpen is composed of two areas: Games & CGI for game graphics and content creation (which is the area I am involved with), and Professional Compute for high-performance GPU computing in professional applications.
GPUOpen is based on three principles:
The first is to provide code and documentation allowing PC developers to exert more control on the GPU. Current and upcoming GCN architectures (such as Polaris) include many features not exposed today in PC graphics APIs, and GPUOpen aims to empower developers with ways to leverage some of those features. In addition to generating quality or performance advantages such access will also enable easier porting from current-generation consoles (XBox One™ and PlayStation 4) to the PC platform.
The second is a commitment to open source software. The game and graphics development community is an active hub of enthusiastic individuals who believe in the value of sharing knowledge. Full and flexible access to the source of tools, libraries and effects is a key pillar of the GPUOpen philosophy. Only through open source access are developers able to modify, optimize, fix, port and learn from software. The goal? Encouraging innovation and the development of amazing graphics techniques and optimizations in PC games.
The third is a collaborative engagement with the developer community. GPUOpen software is hosted on public source code repositories such as GitHub as a way to enable sharing and collaboration. Engineers from different functions will also regularly write blog posts about various GPU-related topics, game technologies or industry news.
By Developers, For Developers
A critical design goal was to have GPUOpen created by developers, for developers, keeping marketing elements to a minimum. The creation of the Radeon Technology Group led by Raja Koduri was key in turning GPUOpen into a reality and I am very excited that this project is now being launched.
Today is the birth of GPUOpen and like any newborn it has some growing to do. As we add new content over the next few months we will be listening to developers feedback and respond as needed.
It’s time to open up the GPU.