Misplaced Pages

DirectInput

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In computing, DirectInput is a legacy Microsoft API for collecting input from a computer user, via input devices such as the mouse , keyboard , or a gamepad . It also provides a system for action mapping, which allows the user to assign specific actions within a game to the buttons and axes of the input devices. Additionally it handles haptic feedback (input/output) devices. Microsoft introduced a new input library called XInput specifically for the Xbox 360 controller .

#513486

104-741: DirectInput and XInput provide benefits over normal Win32 input events: While DirectInput forms a part of the DirectX library, it has not been significantly revised since DirectX 8 (2001–2002). Microsoft recommends that new applications make use of the Windows message loop for keyboard and mouse input instead of DirectInput (as indicated in the Meltdown 2005 slideshow), and to use GameInput instead of DirectInput and other legacy APIs, such as XInput, for controllers. DirectX included DirectInput from version 1.0 (1995). It initially offered true support only for joysticks, as

208-414: A device driver . Hardware manufacturers have to write these drivers for a particular DirectX version's device driver interface (or DDI), and test each individual piece of hardware to make them DirectX compatible. Some hardware devices have only DirectX compatible drivers (in other words, one must install DirectX in order to use that hardware). Early versions of DirectX included an up-to-date library of all of

312-488: A " retained mode " 3D API. Both types of API were already offered with the second release of Reality Lab before Direct3D was released. Like other DirectX APIs, such as DirectDraw , both were based on COM . The retained mode API was a scene graph API that attained little adoption. Game developers clamored for more direct control of the hardware's activities than the Direct3D retained mode could provide. Only two games that sold

416-584: A "battle" began between supporters of the cross-platform OpenGL and the Windows-only Direct3D. Incidentally, OpenGL was supported at Microsoft by the DirectX team. If a developer chose to use the OpenGL 3D graphics API in computer games , the other APIs of DirectX besides Direct3D were often combined with OpenGL because OpenGL does not include all of DirectX's functionality (such as sound or joystick support). In

520-502: A base standard. Major scheduled features including GPGPU support ( DirectCompute ), and Direct3D 11 with tessellation support and improved multi-threading support to assist video game developers in developing games that better utilize multi-core processors. Parts of the new API such as multi-threaded resource handling can be supported on Direct3D 9/10/10.1-class hardware. Hardware tessellation and Shader Model 5.0 require Direct3D 11 supporting hardware. Microsoft has since released

624-563: A concept of " feature levels ", but new features are supported exclusively by new hardware which expose feature level 10_1. The only available Direct3D 10.1 hardware as of June 2008 were the Radeon HD 3000 series and Radeon HD 4000 series from ATI ; in 2009, they were joined by Chrome 430/440GT GPUs from S3 Graphics and select lower-end models in GeForce 200 series from Nvidia . In 2011, Intel chipsets started supporting Direct3D 10.1 with

728-403: A console-specific version, DirectX was used as a basis for Microsoft's Xbox , Xbox 360 and Xbox One console API. The API was developed jointly between Microsoft and Nvidia , which developed the custom graphics hardware used by the original Xbox. The Xbox API was similar to DirectX version 8.1, but is non-updateable like other console technologies. The Xbox was code named DirectXbox, but this

832-639: A cross-platform, window system independent software interface to graphics hardware by Silicon Graphics, Inc. to bring 3D graphics programming into the mainstream of application programming. Besides it could also be used for 2D graphics and imaging and was controlled by the Architectural Review Board (ARB) which included Microsoft. Direct3D was intended to be a Microsoft controlled alternative to OpenGL, focused initially on game use. As 3D gaming grew game developers were discovering that OpenGL could be used effectively for game development. At that point

936-455: A description of how to implement the immediate start of the installation procedure of a software title after inserting its CD-ROM, a feature called AutoPlay, was also part of the SDK. The "Direct" part of the library was so named as these routines bypassed existing core Windows 95 routines and accessed the computer hardware only via a hardware abstraction layer (HAL). Though the team had named it

1040-442: A display system to be "Direct3D 10 compatible". This is a significant departure, with the goal of streamlining application code by removing capability-checking code and special cases based on the presence or absence of specific capabilities. Because Direct3D 10 hardware was comparatively rare after the initial release of Windows Vista and because of the massive install base of non-Direct3D 10 compatible graphics cards,

1144-417: A few more image quality standards for graphics vendors, and gives developers more control over image quality. Features include finer control over anti-aliasing (both multisampling and supersampling with per sample shading and application control over sample position) and more flexibilities to some of the existing features (cubemap arrays and independent blending modes). Direct3D 10.1 level hardware must support

SECTION 10

#1733084498514

1248-473: A gaming platform in Windows. Alex St. John, the evangelist for DirectX, staged an elaborate event at the 1996 Computer Game Developers Conference which game developer Jay Barnson described as a Roman theme, including real lions , togas, and something resembling an indoor carnival. It was at this event that Microsoft first introduced Direct3D , and demonstrated multiplayer MechWarrior 2 being played over

1352-419: A gaming platform, but the three committed towards this project's development. Their rebellious nature led Brad Silverberg , the senior vice president of Microsoft's office products, to name the trio the "Beastie Boys". Most of the work by the three was done among other assigned projects starting near the end of 1994. Within four months and with input from several hardware manufacturers, the team had developed

1456-489: A geometry shader, increased generalization of resource access using a view, removed legacy hardware capability bits (caps). Direct3D 10.1 was announced by Microsoft shortly after the release of Direct3D 10 as a minor update. The specification was finalized with the release of November 2007 DirectX SDK and the runtime was shipped with the Windows Vista SP1 , which is available since mid-March 2008. Direct3D 10.1 sets

1560-566: A greatly increased instruction count, and more C-like language constructs. In addition to the previously available vertex and pixel shader stages, the API includes a geometry shader stage that breaks the old model of one vertex in/one vertex out, to allow geometry to be generated from within a shader, thus allowing for complex geometry to be generated entirely by the graphics hardware. Windows XP and earlier are not supported by DirectX 10.0 and above. Furthermore, Direct3D 10 dropped support for

1664-409: A lower level of hardware abstraction than earlier versions, enabling future applications to significantly improve multithreaded scaling and decrease CPU utilization. This is achieved by better matching the Direct3D abstraction layer with the underlying hardware, through new features such as Indirect Drawing, descriptor tables, concise pipeline state objects, and draw call bundles. Reducing driver overhead

1768-600: A major update to the Direct3D API. Originally called WGF 2.0 (Windows Graphics Foundation 2.0), then DirectX 10 and DirectX Next, Direct3D 10 features an updated shader model 4.0 and optional interruptibility for shader programs. In this model shaders still consist of fixed stages as in previous versions, but all stages support a nearly unified interface, as well as a unified access paradigm for resources such as textures and shader constants. The language itself has been extended to be more expressive, including integer operations,

1872-409: A more accessible way for developers to produce shaders. DirectX 9.0c was an update to the original, and has been continuously changed over the years affecting its compatibility with older operating systems. As of January 2007, Windows 2000 and Windows XP became the minimum required operating systems. This means support was officially dropped for Windows 98 and Windows Me. As of August 2024, DirectX 9.0c

1976-634: A more granular way; for example D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT exposes partial support for instancing on feature level 9_1 and 9_2 hardware, otherwise fully supported from feature level 9_3 onward. Direct3D 11.X Direct3D 11.X is a superset of DirectX 11.2 running on the Xbox One . It includes some features, such as draw bundles, that were later announced as part of DirectX 12. Direct3D 11.3 shipped in July 2015 with Windows 10; it includes minor rendering features from Direct3D 12, while keeping

2080-533: A new version of the High Level Shader Language support for floating-point texture formats, Multiple Render Targets (MRT), Multiple-Element Textures, texture lookups in the vertex shader and stencil buffer techniques. Direct3D 9Ex (previously versioned 9.0L ("L" standing for Longhorn, the codename for Windows Vista)), an extension only available in Windows Vista, 7, 8, 8.1, 10, and 11, allows

2184-479: A previous version's DDI. The application programmer had to query the available hardware capabilities using a complex system of "cap bits" each tied to a particular hardware feature. Direct3D 7 and earlier would work on any version of the DDI, Direct3D 8 requires a minimum DDI level of 6 and Direct3D 9 requires a minimum DDI level of 7. However, the Direct3D 10 runtime in Windows Vista cannot run on older hardware drivers due to

SECTION 20

#1733084498514

2288-871: A render target, option to bind a subrange of a constant buffer to a shader and retrieve it, option to create larger constant buffers than a shader can access, option to discard resources and resource views, option to change subresources with new copy options, option to force the sample count to create a rasterizer state, option to clear all or part of a resource view, option to use Direct3D in Session 0 processes, option to specify user clip planes in HLSL on feature level 9 and higher, support for shadow buffer on feature level 9, support for video playback, extended support for shared Texture2D resources, and on-the-fly swapping between Direct3D 10 and 11 contexts and feature levels. Direct3D 11.1 includes new feature level 11_1, which brings minor updates to

2392-549: A separate API. Direct3D subsumed all remaining DirectDraw API calls still needed for application development, such as Present(), the function used to display rendering results. Direct3D was not considered to be user friendly, but as of DirectX version 8.1, many usability problems were resolved. Direct3D 8 contained many powerful 3D graphics features, such as vertex shaders , pixel shaders , fog , bump mapping and texture mapping . Direct3D 9.0 (released in December, 2002) added

2496-543: A separate feature level; each upper level is a strict superset of a lower level. Tessellation was earlier considered for Direct3D 10, but was later abandoned. GPUs such as Radeon R600 feature a tessellation engine that can be used with Direct3D 9/10/10.1 and OpenGL, but it's not compatible with Direct3D 11 (according to Microsoft). Older graphics hardware such as Radeon 8xxx, GeForce 3/4 had support for another form of tesselation (RT patches, N patches) but those technologies never saw substantial use. As such, their support

2600-414: A significant volume, Lego Island and Lego Rock Raiders , were based on the Direct3D retained mode, so Microsoft did not update the retained mode API after DirectX 3.0. For DirectX 2.0 and 3.0, the Direct3D immediate mode used an "execute buffer" programming model that Microsoft hoped hardware vendors would support directly. Execute buffers were intended to be allocated in hardware memory and parsed by

2704-624: A single assembly, thus simplifying dependencies on it for software developers, development on this version has subsequently been discontinued, and it is no longer supported. The Managed DirectX 2.0 library expired on October 5, 2006. During the GDC 2006, Microsoft presented the XNA Framework , a new managed version of DirectX (similar but not identical to Managed DirectX) that is intended to assist development of games by making it easier to integrate DirectX, HLSL and other tools in one package. It also supports

2808-687: A source or destination, MultisampleEnable only affects line rasterization (points and triangles are unaffected), and is used to choose a line drawing algorithm. This means that some multisample rasterization from Direct3D 10 are no longer supported, Texture Sampling – sample_c and sample_c_lz instructions are defined to work with both Texture2DArrays and TextureCubeArrays use the Location member (the alpha component) to specify an array index, support for TextureCubeArrays. Unlike Direct3D 10 which strictly required Direct3D 10-class hardware and driver interfaces, Direct3D 10.1 runtime can run on Direct3D 10.0 hardware using

2912-405: A system simultaneously; multi-GPU support was previously dependent on vendor implementations such as AMD CrossFireX or NVIDIA SLI . DirectX 12 is supported on all Fermi and later Nvidia GPUs, on AMD's GCN -based chips and on Intel's Haswell and later processors' graphics units. At SIGGRAPH 2014, Intel released a demo showing a computer generated asteroid field , in which DirectX 12

3016-418: Is a graphics application programming interface (API) for Microsoft Windows . Part of DirectX , Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware acceleration if available on the graphics card , allowing for hardware acceleration of the entire 3D rendering pipeline or even only partial acceleration. Direct3D exposes

3120-649: Is able to run on Direct3D 9 and 10.x-class hardware and drivers using the concept of "feature levels" , expanding on the functionality first introduced in Direct3D 10.1 runtime. Feature levels allow developers to unify the rendering pipeline under Direct3D 11 API and make use of API improvements such as better resource management and multithreading even on entry-level cards, though advanced features such as new shader models and rendering stages will only be exposed on up-level hardware. There are three "10 Level 9" profiles which encapsulate various capabilities of popular DirectX 9.0a cards, and Direct3D 10, 10.1, and 11 each have

3224-547: Is an incremental update of Direct3D 10.0 which shipped with, and required, Windows Vista Service Pack 1 , which was released in February 2008. This release mainly sets a few more image quality standards for graphics vendors, while giving developers more control over image quality. It also adds support for cube map arrays, separate blend modes per-MRT, coverage mask export from a pixel shader, ability to run pixel shader per sample, access to multi-sampled depth buffers and requires that

DirectInput - Misplaced Pages Continue

3328-669: Is an update to the API that ships with Windows 8 . The Direct3D runtime in Windows 8 features DXGI 1.2 and requires new WDDM 1.2 device drivers. Preliminary version of the Windows SDK for Windows 8 Developer Preview was released on September 13, 2011. The new API features shader tracing and HLSL compiler enhancements, support for minimum precision HLSL scalar data types, UAVs (Unordered Access Views) at every pipeline stage, target-independent rasterization (TIR), option to map SRVs of dynamic buffers with NO_OVERWRITE, shader processing of video resources, option to use logical operations in

3432-432: Is available for Windows 95 and above, and is the base for the vector graphics API on the different versions of Xbox console systems. The Wine compatibility layer, a free software reimplementation of several Windows APIs, includes an implementation of Direct3D. Direct3D's main competitor is Khronos' OpenGL and its follow-on Vulkan . Fahrenheit was an attempt by Microsoft and SGI to unify OpenGL and Direct3D in

3536-522: Is described by Microsoft as being easier to program for and requiring less setup than DirectInput. XInput is compatible with DirectX version 9 and later. An Xbox 360 Controller , with the default Microsoft driver, has the following limitations with DirectInput, compared to XInput: According to MSDN , "the combination of the left and right triggers in DirectInput is by design. Games have always assumed that DirectInput device axes are centered when there

3640-466: Is no user interaction with the device. However, the Xbox 360 controller was designed to register minimum value, not center, when the triggers are not being held." MSDN proffered the "solution" of combining the triggers, setting one trigger to a positive direction and the other to a negative direction, so no user interaction is indicative to DirectInput of the "control" being at center. The above, however, ignores

3744-442: Is only available with Windows Vista (launched in late 2006) and later. Previous versions of Windows such as Windows XP are not able to run DirectX 10-exclusive applications. Rather, programs that are run on a Windows XP system with DirectX 10 hardware simply resort to the DirectX 9.0c code path, the latest available for Windows XP computers. Changes for DirectX 10 were extensive. Many former parts of DirectX API were deprecated in

3848-568: Is still regularly updated. Windows XP SP2 and newer include DirectX 9.0c, but may require a newer DirectX runtime redistributable installation for DirectX 9.0c applications compiled with the February 2005 DirectX 9.0 SDK or newer. DirectX 9 had a significant impact on game development. Many games from the mid-2000s to early 2010s were developed using DirectX 9 and it became a standard target for developers. Even today, some games still use DirectX 9 as an option for older or less powerful hardware. A major update to DirectX API, DirectX 10 ships with and

3952-1158: Is the main attraction of Direct3D 12, similarly to AMD's Mantle . In the words of its lead developer Max McMullen, the main goal of Direct3D 12 is to achieve "console-level efficiency" and improved CPU parallelism. Although Nvidia has announced broad support for Direct3D 12, they were also somewhat reserved about the universal appeal of the new API, noting that while game engine developers may be enthusiastic about directly managing GPU resources from their application code, "a lot of [other] folks wouldn't" be happy to have to do that. Some new hardware features are also in Direct3D 12, including Shader Model 5.1, Volume Tiled Resources(Tier 2), Shader Specified Stencil Reference Value, Typed UAV Load, Conservative Rasterization(Tier 1), better collision and culling with Conservative Rasterization, Rasterizer Ordered Views (ROVs), Standard Swizzles, Default Texture Mapping, Swap Chains, swizzled resources and compressed resources , additional blend modes , programmable blend and efficient order-independent transparency (OIT) with pixel ordered UAV. Pipeline state objects (PSOs) have evolved from Direct3D 11, and

4056-461: Is too slow for most real-time 3D applications and is typically only used for debugging. A new real-time software rasterizer, WARP , designed to emulate the complete feature set of Direct3D 10.1, is included with Windows 7 and Windows Vista Service Pack 2 with the Platform Update; its performance is said to be on par with lower-end 3D cards on multi-core CPUs. As part of DirectX , Direct3D

4160-589: The Microsoft Platform SDK instead. DirectX has been confirmed to be present in Microsoft's Windows Phone 8 . Real-time raytracing was announced as DXR in 2018. Support for compiling HLSL to SPIR-V was also added in the DirectX Shader Compiler the same year. DirectX is composed of multiple APIs: Microsoft has deprecated the following components: DirectX functionality is provided in

4264-625: The Microsoft Talisman page for details). DirectX 7.0 (released in September, 1999) introduced the .dds texture format and support for transform and lighting hardware acceleration (first available on PC hardware with Nvidia's GeForce 256 ), as well as the ability to allocate vertex buffers in hardware memory. Hardware vertex buffers represent the first substantive improvement over OpenGL in DirectX history. Direct3D 7.0 also augmented DirectX support for multitexturing hardware, and represents

DirectInput - Misplaced Pages Continue

4368-399: The video card on the user's computer does not support that feature, Direct3D will not emulate it, although it will compute and render the polygons and textures of the 3D models, albeit at a usually degraded quality and performance compared to the hardware equivalent. The API does include a Reference Rasterizer (or REF device), which emulates a generic graphics card in software, although it

4472-711: The "Game SDK" ( software development kit ), the name "DirectX" came from one journalist that had mocked the naming scheme of the various libraries. The team opted to continue to use that naming scheme and call the project DirectX. The first version of DirectX was released in September 1995 as the Windows Game SDK. Its DirectDraw component was the Win32 replacement for the DCI and WinG APIs for Windows 3.1 . DirectX allowed all versions of Microsoft Windows, starting with Windows 95, to incorporate high-performance multimedia. Eisler wrote about

4576-615: The 1990s, but was eventually canceled. In 1992, Servan Keondjian, Doug Rabson and Kate Seekings started a company named RenderMorphics, which developed a 3D graphics API named Reality Lab , which was used in medical imaging and CAD software. Two versions of this API were released. Microsoft bought RenderMorphics in February 1995, bringing its staff on board to implement a 3D graphics engine for Windows 95 . The first version of Direct3D shipped in DirectX 2.0 (June 2, 1996) and DirectX 3.0 (September 26, 1996). Direct3D initially implemented an " immediate mode " 3D API and layered upon it

4680-521: The AMD outperformed the more powerful Nvidia under DirectX 12. The performance discrepancies may be due to poor Nvidia driver optimizations for DirectX 12, or even hardware limitations of the card which was optimized for DirectX 11 serial execution; however, the exact cause remains unclear. The performance improvements of DirectX 12 on the Xbox are not as substantial as on the PC. In March 2018, DirectX Raytracing (DXR)

4784-403: The API, in exchange for the time-to-market advantage to the licensing vendor. S3 texture compression support was one such feature, renamed as DXTC for purposes of inclusion in the API. Another was TriTech's proprietary bump mapping technique. Microsoft included these features in DirectX, then added them to the requirements needed for drivers to get a Windows logo to encourage broad adoption of

4888-421: The Direct3D 11 Technical Preview. Direct3D 11 is a strict superset of Direct3D 10.1 — all hardware and API features of version 10.1 are retained, and new features are added only when necessary for exposing new functionality. This helps to keep backwards compatibility with previous versions of DirectX. Four updates for DirectX 11 were released: DirectX 12 was announced by Microsoft at GDC on March 20, 2014, and

4992-512: The DirectX compatible drivers currently available. This practice was stopped however, in favor of the web-based Windows Update driver-update system, which allowed users to download only the drivers relevant to their hardware, rather than the entire library. Prior to DirectX 10, DirectX runtime was designed to be backward compatible with older drivers, meaning that newer versions of the APIs were designed to interoperate with older drivers written against

5096-662: The Internet. The DirectX team faced the challenging task of testing each DirectX release against an array of computer hardware and software . A variety of different graphics cards, audio cards, motherboards, CPUs, input devices, games, and other multimedia applications were tested with each beta and final release. The DirectX team also built and distributed tests that allowed the hardware industry to confirm that new hardware designs and driver releases would be compatible with DirectX. Prior to DirectX Microsoft had added OpenGL to their Windows NT platform. OpenGL had been designed as

5200-497: The PSO is immutable. Root signatures introduce configurations to link command lists to resources required by shaders. They define the layout of resources that shaders will use and specifies what resources will be bound to the pipeline. A graphics command list has both a graphics and compute root signature, while a compute command list will have only a compute root signature. These root signatures are completely independent of each other. While

5304-606: The Retained Mode. The Redmond team added the DrawPrimitive API that eliminated the need for applications to construct execute buffers, making Direct3D more closely resemble other immediate mode rendering APIs such as Glide and OpenGL . The first beta of DrawPrimitive shipped in February 1997, and the final version shipped with DirectX 5.0 in August 1997. Besides introducing an easier-to-use immediate mode API, DirectX 5.0 added

SECTION 50

#1733084498514

5408-486: The SDK samples. Starting with the release of Windows 8 Developer Preview, DirectX SDK has been integrated into Windows SDK. In late 1994, Microsoft was ready to release Windows 95 , its next operating system . An important factor in its value to consumers was the programs that would be able to run on it. Microsoft employee Alex St. John had been in discussions with various game developers asking how likely they would be to bring their MS-DOS games to Windows 95, and found

5512-597: The SetRenderTarget method that enabled Direct3D devices to write their graphical output to a variety of DirectDraw surfaces. DirectX 6.0 (released in August, 1998) introduced numerous features to cover contemporary hardware (such as multitexture and stencil buffers ) as well as optimized geometry pipelines for x87 , SSE and 3DNow! and optional texture management to simplify programming. Direct3D 6.0 also included support for features that had been licensed by Microsoft from specific hardware vendors for inclusion in

5616-471: The WinG interface which came bundled with the game, it crashed so frequently on many desktop systems that parents had flooded Disney 's call-in help lines. St. John recognized the resistances for game development under Windows would be a limitation, and recruited two additional engineers, Craig Eisler and Eric Engstrom , to develop a better solution to get more programmers to develop games for Windows. The project

5720-552: The addition of two new texture compression algorithms for more efficient packing of high quality and HDR/alpha textures and an increased texture cache . First seen in the Release Candidate version, Windows 7 integrates the first released Direct3D 11 support. The Platform Update for Windows Vista includes full-featured Direct3D 11 runtime and DXGI 1.1 update, as well as other related components from Windows 7 like WARP , Direct2D , DirectWrite , and WIC . Direct3D 11.1

5824-521: The advanced graphics capabilities of 3D graphics hardware, including Z-buffering , W-buffering, stencil buffering , spatial anti-aliasing , alpha blending , color blending, mipmapping , texture blending, clipping , culling , atmospheric effects, perspective-correct texture mapping , programmable HLSL shaders and effects. Integration with other DirectX technologies enables Direct3D to deliver such features as video mapping, hardware 3D rendering in 2D overlay planes, and even sprites , providing

5928-739: The beginning, the immediate mode also supported Talisman 's tiled rendering with the BeginScene/EndScene methods of the IDirect3DDevice interface. No substantive changes were planned to Direct3D for DirectX 4.0 , which was scheduled to ship in late 1996 and then canceled. In December 1996, a team in Redmond took over development of the Direct3D Immediate Mode, while the London-based RenderMorphics team continued work on

6032-402: The common-shader core, integer and bitwise shader operations, organization of pipeline state into 5 immutable state objects, organization of shader constants into constant buffers, increased number of render targets, textures, and samplers, no shader length limit, new resource types and resource formats, layered runtime/API layers, option to perform per-primitive material swapping and setup using

6136-591: The development of video games for Microsoft Windows and the Xbox line of consoles. Direct3D is also used by other software applications for visualization and graphics tasks such as CAD/CAM engineering. As Direct3D is the most widely publicized component of DirectX, it is common to see the names "DirectX" and "Direct3D" used interchangeably. The DirectX software development kit (SDK) consists of runtime libraries in redistributable binary form, along with accompanying documentation and headers for use in coding. Originally,

6240-435: The execution of managed code on the Xbox 360. The XNA Game Studio Express RTM was made available on December 11, 2006, as a free download for Windows XP. Unlike the DirectX runtime, Managed DirectX , XNA Framework or the Xbox 360 APIs (XInput, XACT etc.) have not shipped as part of Windows. Developers are expected to redistribute the runtime components along with their games or applications. Direct3D Direct3D

6344-500: The fact that many DirectInput controllers, such as gamepads with dual analog sticks and racing-wheel controller sets, already map triggers and pedals independently. In addition, many DirectInput devices also have vibration effects. At least one 3rd-party driver, XBCD, gives the Xbox 360 controllers the vibration support, dead zones and (optionally) independent analog/digital triggers through DirectInput its XInput driver possesses. This suggests that Microsoft's Xbox 360 controller driver

SECTION 60

#1733084498514

6448-406: The features in other vendors' hardware. A minor update to DirectX 6.0 came in the February, 1999 DirectX 6.1 update. Besides adding DirectMusic support for the first time, this release improved support for Intel Pentium III 3D extensions. A confidential memo sent in 1997 shows Microsoft planning to announce full support for Talisman in DirectX 6.0, but the API ended up being canceled (See

6552-516: The first Direct3D 10-compatible games still provide Direct3D 9 render paths. Examples of such titles are games originally written for Direct3D 9 and ported to Direct3D 10 after their release, such as Company of Heroes , or games originally developed for Direct3D 9 with a Direct3D 10 path retrofitted later during their development, such as Hellgate: London or Crysis . The DirectX 10 SDK became available in February 2007. Direct3D 10.0 level hardware must support

6656-449: The first published DirectX game. Microsoft promoted the game heavily with Bill Gates appearing in ads for the title. DirectX 2.0 became a built-in component of Windows with the releases of Windows 95 OSR2 and Windows NT 4.0 in mid-1996. Since Windows 95 itself was still new and few games had been released for it, Microsoft engaged in heavy promotion of DirectX to developers who were generally distrustful of Microsoft's ability to build

6760-416: The first set of application programming interfaces (APIs) which they presented at the 1995 Game Developers Conference . The SDK included libraries implementing DirectDraw for bit-mapped graphics, DirectSound for audio, and DirectPlay for communication between players over a network. Furthermore, an extended joystick API already present in Windows 95 was documented for the first time as DirectInput, while

6864-516: The following features: Multisampling has been enhanced to generalize coverage based transparency and make multisampling work more effectively with multi-pass rendering, better culling behavior – Zero-area faces are automatically culled; this affects wireframe rendering only, independent blend modes per render target, new sample-frequency pixel shader execution with primitive rasterization, increased pipeline stage bandwidth, both color and depth/stencil MSAA surfaces can now be used with CopyResource as either

6968-436: The following features: the ability to process entire primitives in the new geometry-shader stage, the ability to output pipeline-generated vertex data to memory using the stream-output stage, multisampled alpha-to-coverage support, readback of a depth/stencil surface or a multisampled resource once it is no longer bound as a render target, full HLSL integration – all Direct3D 10 shaders are written in HLSL and implemented with

7072-508: The form of COM -style objects and interfaces. Additionally, while not DirectX components themselves, managed objects have been built on top of some parts of DirectX, such as Managed Direct3D and the XNA graphics library on top of Direct3D 9. Microsoft distributes debugging tool for DirectX called "PIX". Introduced by Microsoft in 2002, DirectX 9 was a significant release in the DirectX family. It brought many important features and enhancements to

7176-413: The frenzy to build DirectX 1 through 5 in his blog. To get more developers on board DirectX, Microsoft approached id Software 's John Carmack and offered to port Doom and Doom 2 from MS-DOS to DirectX, free of charge, with id retaining all publishing rights to the game. Carmack agreed, and Microsoft's Gabe Newell led the porting project. The first game was released as Doom 95 in August 1996,

7280-626: The graphics capabilities of Windows. At the time of its release, it supported Windows 98 , Windows Me , Windows 2000 , and Windows XP . As of August 2024 it remains supported by all subsequent versions of Windows for backward compatibility. One of the key features introduced in DirectX 9 was Shader Model 2.0, which included Pixel Shader 2.0 and Vertex Shader 2.0. These allowed for more complex and realistic graphics rendering. It also brought much needed performance improvements through better hardware acceleration capabilities, and better utilization of GPU resources. It also introduced HLSL , which provided

7384-399: The hardware page tables present in many current GPUs. WARP was updated to fully support the new features. There is no feature level 11_2 however; the new features are dispersed across existing feature levels. Those that are hardware-dependent can be checked individually via CheckFeatureSupport . Some of the "new" features in Direct3D 11.2 actually expose some old hardware features in

7488-529: The hardware to perform the 3D rendering. They were considered extremely awkward to program at the time, however, hindering adoption of the new API and prompting calls for Microsoft to adopt OpenGL as the official 3D rendering API for games as well as workstation applications. (see OpenGL vs. Direct3D) Rather than adopt OpenGL as a gaming API, Microsoft chose to continue improving Direct3D, not only to be competitive with OpenGL, but to compete more effectively with other proprietary APIs such as 3dfx 's Glide . From

7592-565: The introduction of Intel HD Graphics 2000 (GMA HD). Direct3D 11 was released as part of Windows 7. It was presented at Gamefest 2008 on July 22, 2008 and demonstrated at the Nvision 08 technical conference on August 26, 2008. The Direct3D 11 Technical Preview has been included in November 2008 release of DirectX SDK. AMD previewed working DirectX11 hardware at Computex on June 3, 2009, running some DirectX 11 SDK samples. The Direct3D 11 runtime

7696-788: The latest DirectX SDK and are preserved for compatibility only: DirectInput was deprecated in favor of XInput , DirectSound was deprecated in favor of the Cross-platform Audio Creation Tool system (XACT) and additionally lost support for hardware accelerated audio, since the Vista audio stack renders sound in software on the CPU. The DirectPlay DPLAY.DLL was also removed and was replaced with dplayx.dll; games that rely on this DLL must duplicate it and rename it to dplay.dll. In order to achieve backwards compatibility, DirectX in Windows Vista contains several versions of Direct3D: Direct3D 10.1

7800-415: The main goal of Direct3D 12 is to achieve "console-level efficiency on phone, tablet and PC". The release of Direct3D 12 comes alongside other initiatives for low-overhead graphics APIs including AMD's Mantle for AMD graphics cards, Apple's Metal for iOS and macOS and Khronos Group 's cross-platform Vulkan . Multiadapter support will feature in DirectX 12 allowing developers to utilize multiple GPUs on

7904-429: The mouse and keyboard modules simply provided wrappers to the standard Win32 API . DirectX version 3.0 (1996) added support for keyboards and mice; it also improved joystick support. DirectX 5.0 (1997) included greatly improved joystick support, including adding haptic feedback, increasing the number of buttons, changing the underlying device-driver model and incorporating a COM -based API . Mouse support also increased

8008-449: The name Xbox to indicate that the console was based on DirectX technology. The X initial has been carried forward in the naming of APIs designed for the Xbox such as XInput and the Cross-platform Audio Creation Tool (XACT), while the DirectX pattern has been continued for Windows APIs such as Direct2D and DirectWrite . Direct3D (the 3D graphics API within DirectX) is widely used in

8112-400: The names of these APIs all began with "Direct", such as Direct3D , DirectDraw , DirectMusic , DirectPlay , DirectSound , and so forth. The name DirectX was coined as a shorthand term for all of these APIs (the X standing in for the particular API names) and soon became the name of the collection. When Microsoft later set out to develop a gaming console , the X was used as the basis of

8216-405: The new concise pipeline states mean that the process has been simplified. DirectX 11 offered flexibility in how its states could be altered, to the detriment of performance. Simplifying the process and unifying the pipelines (e.g. pixel shader states) lead to a more streamlined process, significantly reducing the overheads and allowing the graphics card to draw more calls for each frame. Once created,

8320-483: The new features in Ultimate includes DirectX Raytracing 1.1 , Variable Rate Shading, which gives programmers control over the level of detail of shading depending on design choices, Mesh Shaders , and Sampler Feedback. The version number as reported by Microsoft's DxDiag tool (version 4.09.0000.0900 and higher) use the x.xx.xxxx.xxxx format for version numbers. However, the DirectX and Windows XP MSDN page claims that

8424-511: The newer XInput for Xbox 360 controllers. In Windows Vista , Windows 7 and later Windows versions, the in-built action mapping UI has been removed. DirectInput is not available for Windows Store apps. XInput, a legacy API for "next generation" controllers, was introduced in December 2005 alongside the launch of the Xbox 360 . This specification provided support for Xbox 360 controllers in Windows XP SP1 and subsequent operating systems, and

8528-645: The number of buttons seen from four to eight. In DirectX 7.0 (1999- ), DirectInput added a long-promised feature of seeing individual mice much like individual joysticks, but the feature didn't work with the later released Windows XP , even though as of 2010 it works with Windows 98/Me and DirectX 9. DirectX 8.0 (2000), the last version with major changes, included action mapping and broader support for different types of devices. While Microsoft initially intended that DirectInput would handle all inputs, this didn't work out. As of 2011 Microsoft no longer recommends using DirectInput for keyboards or mice, and has started pushing

8632-444: The overall structure of the Direct3D 11.x API. Direct3D 11.3 introduces optional Shader Specified Stencil Reference Value, Typed Unordered Access View Loads, Rasterizer Ordered Views (ROVs), optional Standard Swizzle, optional Default Texture Mapping, Conservative Rasterization (out of three tiers), optional Unified Memory Access (UMA) support, and additional Tiled Resources (tier 2) (Volume tiled resources). Direct3D 12 allows

8736-476: The pinnacle of fixed-function multitexture pipeline features: although powerful, it was so complicated to program that a new programming model was needed to expose the shading capabilities of graphics hardware. Direct3D 7.0 also introduced DXVA features. DirectX 8.0 (released in November, 2000) introduced programmability in the form of vertex and pixel shaders , enabling developers to write code without worrying about superfluous hardware state. The complexity of

8840-585: The registry always has been in the x.xx.xx.xxxx format. Therefore, when the above table lists a version as '4.09.00.0904' Microsoft's DxDiag tool may have it as '4.09.0000.0904'. Various releases of Windows have included and supported various versions of DirectX, allowing newer versions of the operating system to continue running applications designed for earlier versions of DirectX until those versions can be gradually phased out in favor of newer APIs, drivers, and hardware. APIs such as Direct3D and DirectSound need to interact with hardware, and they do this through

8944-538: The responses mostly negative, since programmers had found that the Windows environment did not provide the necessary features which were available under MS-DOS using BIOS routines or direct hardware access. There were also strong fears of compatibility; a notable case of this was from Disney's Animated Storybook: The Lion King which was based on the WinG programming interface. Due to numerous incompatible graphics drivers from new Compaq computers that were not tested with

9048-444: The retained mode API which had been a part of Direct3D since the beginning, making Windows Vista incompatible with 3D games that had used the retained mode API as their rendering engine . Unlike prior versions of the API, Direct3D 10 no longer uses "capability bits" (or "caps") to indicate which features are supported on a given graphics device. Instead, it defines a minimum standard of hardware capabilities which must be supported for

9152-473: The runtime directly uses Direct3D 9 DDI provided in all WDDM drivers. Feature level 11_1 has been introduced with Direct3D 11.1 . In 2002, Microsoft released a version of DirectX compatible with the Microsoft .NET Framework , thus allowing programmers to take advantage of DirectX functionality from within .NET applications using compatible languages such as managed C++ or the use of the C# programming language. This API

9256-421: The runtimes were only installed by games or explicitly by the user. Windows 95 did not launch with DirectX, but DirectX was included with Windows 95 OEM Service Release 2. Windows 98 and Windows NT 4.0 both shipped with DirectX, as has every version of Windows released since. The SDK is available as a free download. While the runtimes are proprietary, closed-source software, source code is provided for most of

9360-586: The shader language, such as larger constant buffers and optional double-precision instructions, as well as improved blending modes and mandatory support for 16-bit color formats to improve the performance of entry-level GPUs such as Intel HD Graphics . WARP has been updated to support feature level 11_1. The Platform Update for Windows 7 includes a limited set of features from Direct3D 11.1, though components that depend on WDDM 1.2 – such as feature level 11_1 and its related APIs, or quad buffering for stereoscopic rendering – are not present. Direct3D 11.2

9464-408: The shader programs depended on the complexity of the task, and the display driver compiled those shaders to instructions that could be understood by the hardware. Direct3D 8.0 and its programmable shading capabilities were the first major departure from an OpenGL-style fixed-function architecture, where drawing is controlled by a complicated state machine. Direct3D 8.0 also eliminated DirectDraw as

9568-508: The significantly updated DDI, which requires a unified feature set and abandons the use of "cap bits". Direct3D 10.1 introduces " feature levels " 10_0 and 10_1, which allow use of only the hardware features defined in the specified version of Direct3D API. Direct3D 11 adds level 11_0 and "10 Level 9" - a subset of the Direct3D 10 API designed to run on Direct3D 9 hardware, which has three feature levels (9_1, 9_2 and 9_3) grouped by common capabilities of "low", "med" and "high-end" video cards;

9672-639: The use of 2D and 3D graphics in interactive media ties. Direct3D contains many commands for 3D computer graphics rendering; however, since version 8, Direct3D has superseded the DirectDraw framework and also taken responsibility for the rendering of 2D graphics . Microsoft strives to continually update Direct3D to support the latest technology available on 3D graphics cards. Direct3D offers full vertex software emulation but no pixel software emulation for features not available in hardware. For example, if software programmed using Direct3D requires pixel shaders and

9776-536: The use of the advantages offered by Windows Vista's Windows Display Driver Model (WDDM) and is used for Windows Aero . Direct3D 9Ex, in conjunction with DirectX 9 class WDDM drivers allows graphics memory to be virtualized and paged out to system memory, allows graphics operations to be interrupted and scheduled and allow DirectX surfaces to be shared across processes. Direct3D 9Ex was previously known as version 1.0 of Windows Graphics Foundation (WGF). Direct3D 9Ex improvements - Win32 apps Windows Vista includes

9880-563: The video card supports Shader Model 4.1 or higher and 32-bit floating-point operations. Direct3D 10.1 still fully supports Direct3D 10 hardware, but in order to utilize all of the new features, updated hardware is required. Microsoft unveiled DirectX 11 at the Gamefest 08 event in Seattle. The Final Platform Update launched for Windows Vista on October 27, 2009, which was a week after the initial release of Windows 7 , which launched with Direct3D 11 as

9984-614: Was announced, capable of real-time ray-tracing on supported hardware, and the DXR API was added in the Windows 10 October 2018 update. In 2019 Microsoft announced the arrival of DirectX 12 to Windows 7 but only as a plug-in for certain game titles. Microsoft revealed DirectX 12 Ultimate in March 2020. DirectX 12 Ultimate will unify to a common library on both Windows 10 computers and the Xbox Series X and other ninth-generation Xbox consoles. Among

10088-642: Was claimed to be 50–70% more efficient than DirectX 11 in rendering speed and CPU power consumption. Ashes of the Singularity was the first publicly available game to utilize DirectX 12. Testing by Ars Technica in August 2015 revealed slight performance regressions in DirectX 12 over DirectX 11 mode for the Nvidia GeForce 980 Ti , whereas the AMD Radeon R9 290x achieved consistent performance improvements of up to 70% under DirectX 12, and in some scenarios

10192-587: Was codenamed the Manhattan Project, like the World War II project of the same name , and the idea was to displace the Japanese-developed video game consoles with personal computers running Microsoft's operating system. It had initially used the radiation symbol as its logo but Microsoft asked the team to change the logo. Management did not agree to the project as they were already writing off Windows as

10296-1019: Was dropped from newer hardware. Microsoft has also hinted at other features such as order independent transparency , which was never exposed by the Direct3D API but supported almost transparently by early Direct3D hardware such as Videologic's PowerVR line of chips. Direct3D 11.0 features include: Support for Shader Model 5.0, Dynamic shader linking, addressable resources, additional resource types, subroutines, geometry instancing, coverage as pixel shader input, programmable interpolation of inputs, new texture compression formats (1 new LDR format and 1 new HDR format), texture clamps to limit WDDM preload, require 8-bits of subtexel and sub-mip precision on texture filtering, 16K texture limits, Gather4(support for multi-component textures, support for programmable offsets), DrawIndirect, conservative oDepth, Depth Bias, addressable stream output, per-resource mipmap clamping, floating-point viewports, shader conversion instructions, improved multithreading. Other notable features are

10400-530: Was given intentionally weaker DirectInput support, rather than due to any differences between DirectInput and XInput APIs. On the other hand, Xbox 360 controllers using XInput support only very basic control of vibration motors in contrast with greater palette of effects supported via DirectInput. DirectX Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia , especially game programming and video, on Microsoft platforms. Originally,

10504-429: Was known as " Managed DirectX " (or MDX for short), and claimed to operate at 98% of performance of the underlying native DirectX APIs. In December 2005, February 2006, April 2006, and August 2006, Microsoft released successive updates to this library, culminating in a beta version called Managed DirectX 2.0. While Managed DirectX 2.0 consolidated functionality that had previously been scattered over multiple assemblies into

10608-493: Was officially launched alongside Windows 10 on July 29, 2015. The primary feature highlight for the new release of DirectX was the introduction of advanced low-level programming APIs for Direct3D 12 which can reduce driver overhead. Developers are now able to implement their own command lists and buffers to the GPU, allowing for more efficient resource utilization through parallel computation . Lead developer Max McMullen stated that

10712-413: Was shipped with Windows 8.1 . New hardware features require DXGI 1.3 with WDDM 1.3 drivers and include runtime shader modification and linking, Function linking graph(FLG), inbox HLSL compiler, option to annotate graphics commands. Feature levels 11_0 and 11_1 introduce optional support for tiled resources with shader level of detail clamp (Tier2). The latter feature effectively provides control over

10816-403: Was shortened to Xbox for its commercial name. In 2002, Microsoft released DirectX 9 with support for the use of much longer shader programs than before with pixel and vertex shader version 2.0. Microsoft has continued to update the DirectX suite since then, introducing Shader Model 3.0 in DirectX 9.0c, released in August 2004. As of April 2005, DirectShow was removed from DirectX and moved to

#513486