Directx 10 & the Future of GamingEssay Preview: Directx 10 & the Future of GamingReport this essayDirectX and Shader Models; if you have been following PC gaming in the last few years you have been exposed to a lot of hoopla over both of these. There have been promises of “cinematic” gaming consisting of graphics like those seen in CG (Computer Generated) movies such as Final Fantasy: The Spirits Within. Here we are in 2006, four years since DirectX 9 has been released and two years the introduction of Shader Model 3.0 hardware. Yet, we havent even scratched the surface of the full ability of DirectX 9 and “cinematic” gaming. Even with that being so the industry is gearing up for another major DirectX release. The release of DirectX 10 has huge potential for gamers, but carries with it a hefty price in order to achieve the total graphical experience that will be possible.
This essay is the basis of a series of articles, blogs, and video tutorials available on websites like youtube.com and to find out more, see the latest versions of “DirectX and Shader Models”
The only thing cooler than DirectX is the game console
—DirectXSource (@directe) October 7, 2012
DirectX 10 is going to be the big news in the desktop gaming space since September and I can’t wait to take a look back at it. But first, let’s dig into the specs and how we can expect to see it in the gaming space. By far the best thing to happen is that it will feature Intel’s “D” silicon (the ‘sax’ silicon in some circles) and a number of new Polaris chips are added, along with “next level” GPUs. By contrast, DirectX 11 won’t have anything resembling a major release and it won’t be for the last few years.
In October of 2011, AMD announced a brand new gaming unit, “DirectX 12” which was supposed to be just like DirectX 11 but with more Polaris/Nvidia architecture. We were told by AMD that it will support the new Polaris chips so it is very very unlikely this will be enough to hold back the launch. Well after nearly two years AMD actually started manufacturing the rest of the Polaris-based CPUs. By the summer of 2012 AMD had begun shipping their first fully dedicated graphics compute units and by mid-2013 all GPUs that come pre-order have shipped.
AMD will offer a refresh at some point which will only have the first and last GPUs on the market. For comparison AMD has offered the GTX 680 and Radeon R9 290 to customers of its Radeon HD 7950 series. The new chips will be updated after launch with better cooling and will be designed and engineered with AMD’s expertise in the world of GPU overclocking. AMD intends on moving back a few weeks to the release of the next generation of gaming products in 2012 while the rest of the PC gaming industry is also expected to move on with its upcoming gaming refresh.
As far as DirectX 11 goes, DirectX 10 is being presented on the desktop. The next generation (the
This essay is the basis of a series of articles, blogs, and video tutorials available on websites like youtube.com and to find out more, see the latest versions of “DirectX and Shader Models”
The only thing cooler than DirectX is the game console
—DirectXSource (@directe) October 7, 2012
DirectX 10 is going to be the big news in the desktop gaming space since September and I can’t wait to take a look back at it. But first, let’s dig into the specs and how we can expect to see it in the gaming space. By far the best thing to happen is that it will feature Intel’s “D” silicon (the ‘sax’ silicon in some circles) and a number of new Polaris chips are added, along with “next level” GPUs. By contrast, DirectX 11 won’t have anything resembling a major release and it won’t be for the last few years.
In October of 2011, AMD announced a brand new gaming unit, “DirectX 12” which was supposed to be just like DirectX 11 but with more Polaris/Nvidia architecture. We were told by AMD that it will support the new Polaris chips so it is very very unlikely this will be enough to hold back the launch. Well after nearly two years AMD actually started manufacturing the rest of the Polaris-based CPUs. By the summer of 2012 AMD had begun shipping their first fully dedicated graphics compute units and by mid-2013 all GPUs that come pre-order have shipped.
AMD will offer a refresh at some point which will only have the first and last GPUs on the market. For comparison AMD has offered the GTX 680 and Radeon R9 290 to customers of its Radeon HD 7950 series. The new chips will be updated after launch with better cooling and will be designed and engineered with AMD’s expertise in the world of GPU overclocking. AMD intends on moving back a few weeks to the release of the next generation of gaming products in 2012 while the rest of the PC gaming industry is also expected to move on with its upcoming gaming refresh.
As far as DirectX 11 goes, DirectX 10 is being presented on the desktop. The next generation (the
Brief DirectX HistoryWay back in the “dark ages” of computer gaming there were few choices to achieve hardware acceleration for 3D. The two most notable methods were OpenGL and 3dfx proprietary “Glide.” Glide required the use of specific 3dfx hardware while OpenGL is an open platform that is supported by the community and can also run under a Linux operating environment. With Windows, Microsoft decided to capitalize on what they saw becoming the multimedia experience. Microsoft developed a suite of APIs (Application Program Interfaces) that allowed software and driver programmers to access hardware components for specific functions. “DirectX” indicated the umbrella and underneath were the specific components, Direct Sound, Direct Input, Direct 3D and others.
DirectX has evolved; DirectX 3, DirectX 5 (there was no DirectX 4 they skipped right to 5), DirectX 6, 7, 8 and now 9. Each version offered new features and more flexibility. DirectX 8 is considered the start of programmable shaders. Before DirectX 8, all its programming functions were “fixed” functions which means the game content developer could only utilize 3D effects that the video chipset specifically supported. For example if the graphics chipset (we dont call fixed function graphics processors GPUs because they arent programmable) didnt support dot3 product bump mapping then there is no way the developer could use that effect in their game. With the programmable graphics processor everything changed. The game content developer could now make any effect they wanted. However, in younger DirectX versions there were limitations to the number of constants, registers and program lengths they could use. DirectX 8 and 8.1 introduced us to “GPUs” (Graphics Processing Units) and contained Shader Model 1.1-1.3 (DX8.1 had SM 1.4). Shader Model simply referred to the features and flexibility of the programmable nature of the API.
DirectX 9 brought the GPU into its own. At its introduction, DirectX 9 included Shader Model 2.0. Shader Model 2.0 was a very large leap ahead of Shader Model 1.4. Still, DirectX 9 had even more wiggle room. With DirectX 9.0c came the enablement of Shader Model 3.0. This newer version meant virtually unlimited program lengths and possibilities only imagined before on a GPU. However we havent exactly seen this utilized to its maximum potential in games due to graphics hardware performance limitations. The API is still more capable than the hardware it supports. While there is still a lot of capability left in DirectX 9 and Shader Model 3.0 yet to be realized in real world gaming, it is time to start talking about he next DirectX version, DirectX 10.DirectX 10 Introduction
Our new API will be officially named “DirectX 10.” Over the past years it has been called by many names creating some confusion. The API has been known as DirectX Next, Windows Graphics Foundation 1.0 and 2.0, as well as its common nickname, DX10. So now that we know what it is called, where can we get it?
DirectX 10 will be available to Windows Vista users only at its introduction. You will not find DirectX 10 being released for the Windows XP operating system. DirectX 10 is deeply embedded into Windows Vista operation and we currently know of no plans by Microsoft to allow Windows XP to officially support the new API. Also embedded into Windows Vista is DirectX 9.0L to allow for compatibility with DirectX 9 components. Think of it like two separate DirectX systems. We will have DirectX 9.0L for DirectX 9 hardware and we will have DirectX 10 for DirectX 10 capable hardware. If you want DirectX 10 you will have to go with Windows Vista as your OS. Because of this we will see an expensive upgrade path associated with the experience of DirectX 10. You will need Windows Vista, DirectX 10 hardware and of course some DirectX 10 coded games.
The obvious question for the gamer that arises is, “Will this terribly expensive and arduous upgrade path positively impact my gaming experience enough to justify the cost?” That has yet to be seen and can only be answered with the games we have yet to play. We can however discuss some of capabilities of DirectX 10 with a unified architecture and how it can potentially benefit gamers.
DirectX 9 LimitationsBefore we talk about what is new with DirectX 10 we first need to understand what DirectX 9 is doing. While DirectX 9 was a huge leap over DirectX 8 it still has its limitations. One of the biggest limitations is API object overhead. In fact game content developers are currently being bottlenecked by this overhead. Out of all the improvements that could be pushed into DirectX 10, the issue at the top of the list for most game developers was to lessen API object overhead.
What we mean by API object overhead is that the API is using CPU cycles to achieve tasks necessary for rendering before being output to the video card for drawing. When rendering a game, the application first has to call to the API and then the API calls to the driver before it ever interacts with your video cards GPU. These calls are all handled by the CPU, using valuable resources and creating a potential bottleneck.Within those procedures are limitations of how many objects you can show onscreen at one time in one frame. Objects can be anything in the game, a character or tree for example. Current limitations are around 500 objects in one frame. Anything over that and you can run into severe CPU bottlenecks. The game content developer has to carefully balance the game so they dont get bottlenecked by this software and CPU limitation. This puts a huge limit on the immersion you experience in a game. For example lets take trees. Right now trees are mostly done by taking a tree and then just