Advanced Micro Devices made a big press splash when they won all three major game console platforms. Their presence inside the Microsoft Xbox One, Sony PS4 and Nintendo Wii U has benefited the company financially at the operating income level and has governed how they design their future GPUs. As Advanced Micro Devices has remained with the GCN architecture, present inside of all three consoles, it would seem that Advanced Micro Devices would have had a built-in an advantage into their GPUs for the PC gaming space. You see, the X86 CPU instruction is the same and platforms also share APIs and tools more than ever. This advantage has been touted by the company for quite some time now, but they have been challenged to transfer the benefits of these design wins to the PC gaming space. With AMD’s new feature called “Shader Intrinsic Functions”, a new feature pulled directly from the console space, this could change.
Image credit: AMD
Mantle was the first step
Advanced Micro Devices’s first attempt to harness this console advantage was the creation of Mantle which gave PC developers low-level access to Advanced Micro Devices hardware and enabled console-like direct hardware metal. While Mantle wasn’t perfect, it did get implanted in a few games before it was eventually integrated into an industry standard now known as Vulkan. I believe Mantle was also the timing driver for Microsoft DirectX 12. Vulkan takes many, but not all of Mantle’s features and ideas and implements them cross-platform allowing mobile GPUs and desktop GPUs to share the same APIs and improved, low-level access.
Shader Intrinsic Functions
As a result, Advanced Micro Devices is introducing many new features within their GPUOpen program to enable more low-level access to hardware in a console-like development environment. If you are unfamiliar with GPUOpen, I wrote on that here. AMD is introducing the support for what is called “Shader Intrinsic Functions” or built-in functions which allow the developer to directly access graphics hardware instructions. This access is granted to developers in situations where they would normally be abstracted by a higher level API, or not available at all. Advanced Micro Devices likens this to embedding optimized machine language code into higher-level code.
Intrinsic functions are only useful if game developers know they can rely on them to exist in future hardware and that they will be able to gain direct access through hardware-specific code paths throughout the generations. Because Advanced Micro Devices has stuck with GCN, they make it possible for developers to invest in the use of built-in functions and improve performance. By enabling developers to utilize these new capabilities, Advanced Micro Devices is once again finding ways to enable their hardware to experience performance gains without any changes to their hardware whatsoever.
In addition to improving performance on Advanced Micro Devices GPUs, the addition of intrinsic functions into GPUOpen also improves the compatibility of this feature. Because the addition of intrinsic functions is expected to run as a part of GPUOpen and exist on the PC platform, it will be supported in all the major PC APIs including Microsoft DirectX 11, DirectX 12 and even Vulkan.
By having intrinsic functions work inside of all these graphics APIs, AMD is really making it an attractive play for developers that want to squeeze out that extra performance but maybe don’t want to be limited to a single set of APIs if they want to recycle or repurpose code. As far as we can tell, NVIDIA also has support for intrinsic functions inside of their GPUs as well, but they seem to be more focused on CUDA code and not for game development.
Advanced Micro Devices’s introduction of intrinsic functions into GPUOpen is the start of the company really delivering on their promise of benefiting from all of the console design wins. It is also the concretization of the GPUOpen philosophy to enable console-like access to the PC platform. Sure, Advanced Micro Devices has made a lot of operating income from building the consoles, but when you consider how many console ports end up on the PC, there is no doubt that there should be some level of translation of that to AMD‘s benefit.
There’s unfortunately no way for us to test these features since they have to be implemented by game developers first, so we will have to wait and see. We may finally start to see AMD’s benefits from the console design wins come to fruition with these new intrinsic functions and I expect that this isn’t the end of such features coming to GPUOpen and that we can expect more to come relatively soon. AMD has a video on the new feature if you want to check it out.
I like this play from AMD and hope to see more like it in the future.