Direct3D
In 1992, three engineers named Servan Keondjian, Doug Rabson, and Kate Seekings founded a company called RenderMorphics in the United Kingdom. Their team built an application programming interface known as Reality Lab to handle complex three-dimensional graphics for medical imaging and computer-aided design software. Microsoft purchased RenderMorphics in February 1995 to bring their staff onboard for developing a new 3D engine specifically for Windows 95. The first version of Direct3D shipped with DirectX 2.0 on the 2nd of June 1996, followed by DirectX 3.0 on the 26th of September 1996. Early versions relied on an immediate mode API layered over a retained mode system that developers found difficult to use. Only two games sold significant volumes using the retained mode approach: Lego Island and Lego Rock Raiders. Game developers demanded more direct control over hardware activities than the existing retained mode could provide. Microsoft abandoned updates to the retained mode API after DirectX 3.0 due to its lack of adoption. Instead, they focused on improving the immediate mode to compete with proprietary APIs like 3dfx's Glide and industry standard OpenGL.
DirectX 8.0 released in November 2000 introduced programmability through vertex and pixel shaders for the first time. Developers could now write code without worrying about superfluous hardware state because display drivers compiled these shaders into instructions understood by the hardware. This marked the first major departure from the fixed-function architecture used in earlier versions of the API. DirectDraw ceased to exist as a separate API when Direct3D subsumed all remaining calls needed for application development. The complexity of shader programs varied depending on the task at hand, allowing for flexible rendering solutions. By December 2002, Direct3D 9.0 added support for floating-point texture formats and multiple render targets. Shader Model 2.0 arrived with this release, enabling both pixel and vertex shaders to handle advanced effects. Later updates included Shader Model 3.0 with Direct3D 9.0c, which supported Windows 2000 and XP systems. These changes allowed developers to create more sophisticated visual effects while maintaining compatibility across different generations of graphics cards.
Windows Vista introduced Direct3D 10.0 with an updated shader model 4.0 that standardized hardware requirements across the industry. All supporting graphics cards had to adhere to a minimum set of mandatory features rather than relying on optional capability bits. This approach removed legacy hardware capability checks from application code, streamlining development processes. Geometry shaders became available for the first time, breaking the old model where one vertex entered and one vertex exited each stage. Developers could now generate complex geometry entirely within the graphics hardware using these new stages. The unified pipeline architecture replaced fixed pipelines with fully programmable ones capable of emulating previous behaviors. Microsoft dropped support for the retained mode API in Direct3D 10, making older games incompatible unless they used Direct3D 9 render paths. Hardware vendors like ATI and Nvidia began releasing compatible GPUs starting in late 2007 and early 2008. Intel chipsets added support for Direct3D 10.1 through their HD Graphics 2000 series by 2011. Feature levels allowed newer APIs to run on older hardware while exposing advanced capabilities only when supported by specific devices.
DirectX 12 released as part of Windows 10 enabled lower-level hardware abstraction to improve multithreaded scaling and reduce CPU utilization. Lead developer Max McMullen stated the main goal was achieving console-level efficiency alongside improved parallelism. Command lists replaced sequential command sending, allowing the GPU to compute entire packages without waiting for additional information from the processor. Descriptor heaps and tables let developers allocate frequently used resources efficiently instead of redrawing data repeatedly. Pipeline state objects became immutable once created, simplifying the process significantly compared to earlier versions. Root signatures defined resource layouts that shaders would use without mapping actual memory or data directly. Explicit multi-adapter support allowed control over multiple graphics processing units configured together regardless of vendor origin. AMD's Mantle project influenced this design philosophy by reducing driver overhead substantially. Some industry observers noted that while game engine developers embraced direct management of GPU resources, many other groups might struggle with the increased workload required. The API introduced Shader Model 6.0 with the Creators Update in April 2017, requiring WDDM 2.1 drivers for full functionality.
Direct3D 10 simplified mandatory hardware requirements based on popular Direct3D 9 capabilities to ensure cross-vendor compatibility. Feature levels grouped new mandatory capabilities into upper sets as newer APIs like Direct3D 11 added support for advanced features. Each level formed a strict superset of lower ones, exposing only previously optional features at higher tiers. Developers could unify rendering pipelines under a single API version across both newer and older hardware generations. Nine feature levels existed within Direct3D 11.4 for Windows 10, ranging from basic shader model 2.0 support up to DirectX 12 Ultimate standards. Tiered resource binding defined maximum numbers of descriptors usable simultaneously depending on hardware capability. Hardware vendors implemented different tiers allowing fully bindless resources restricted only by descriptor heap size or imposing limits on simultaneous views. This system allowed games to run on entry-level cards while still accessing advanced features when available. Optional features moved to core functionality on upper levels without breaking existing applications running on lower-tier devices.
WineD3D provided working implementations of Direct3D APIs through translation to OpenGL for non-Windows platforms. The Wine open source project enabled these translations to function even on Windows under certain conditions. vkd3d built an open source library atop Vulkan to allow Direct3D 12 applications to run over Vulkan infrastructure. Valve's Proton project included DXVK as part of Steam on Linux systems enabling modern Windows games to operate natively. Gallium Nine made it possible to run Direct3D 9 applications directly on Linux without any call translation for near-native speed performance. D9VK merged into DXVK on the 16th of December 2019 after previously serving as a fork adding Direct3D 9 support. D8VK joined the main codebase in version 2.4 released the 10th of July 2024 following its obsolescence. These alternative implementations proved useful for hardware lacking specific DirectX versions or operating outside Microsoft environments. They facilitated broader adoption of graphics technologies across diverse computing ecosystems beyond traditional Windows boundaries.
Continue Browsing
Common questions
Who founded RenderMorphics and when was the company established?
Three engineers named Servan Keondjian, Doug Rabson, and Kate Seekings founded a company called RenderMorphics in 1992. The team built an application programming interface known as Reality Lab to handle complex three-dimensional graphics for medical imaging and computer-aided design software.
When did Microsoft release the first version of Direct3D with DirectX 2.0?
The first version of Direct3D shipped with DirectX 2.0 on the 2nd of June 1996. This release followed by DirectX 3.0 on the 26th of September 1996 marked the initial availability of the API for Windows 95 development.
What major architectural change occurred with the release of DirectX 8.0 in November 2000?
DirectX 8.0 released in November 2000 introduced programmability through vertex and pixel shaders for the first time. Developers could now write code without worrying about superfluous hardware state because display drivers compiled these shaders into instructions understood by the hardware.
How does Direct3D 12 improve multithreaded scaling compared to earlier versions?
DirectX 12 released as part of Windows 10 enabled lower-level hardware abstraction to improve multithreaded scaling and reduce CPU utilization. Command lists replaced sequential command sending, allowing the GPU to compute entire packages without waiting for additional information from the processor.
Which open source projects allow Direct3D applications to run on Linux systems?
WineD3D provided working implementations of Direct3D APIs through translation to OpenGL for non-Windows platforms while vkd3d built an open source library atop Vulkan to allow Direct3D 12 applications to run over Vulkan infrastructure. Valve's Proton project included DXVK as part of Steam on Linux systems enabling modern Windows games to operate natively.