Direct3d 11
Author: s | 2025-04-23
This section describes features added in Direct3D 11, Direct3D 11.1, and Direct3D 11.2. Microsoft Direct3D 11 is an extension of the Microsoft Direct3D 10/Microsoft Direct3D 10.1 rendering API. For more introductory material about using Direct3D 11, see the Programming Guide for Direct3D 10 . What's new in Direct3D 11: This section describes features added in Direct3D 11, Direct3D 11.1, and Direct3D 11.2. Programming Guide for Direct3D 11: The programming guide contains information about how to use the Direct3D 11 programmable pipeline to create realtime 3D graphics for games as well as scientific and desktop applications.
Working with Direct3D 11, Direct3D 10 and Direct2D
Faster cores so that people on lower specced hardware can use runahead with more frames in advance.CRT Switch Res – GroovyMAME-like features for 15KHz capable CRT monitors!Thanks to forum-user Alphanu, RetroArch now has the ability to query cores for their exact video timing data, which can be used to switch to native-resolution, 15 kHz modelines for use with standard-definition CRT TVs.This is a big step for retro purists, as RetroArch can now output “pixel-perfect” video with accurate timing to compatible displays, even quickly switching between interlaced and non-interlaced modes on the fly.This capability is currently Windows-only and requires modelines to be created in advance by CRT_EmuDriver or Custom Resolution Utility with a compatible GPU. Linux support is coming soon.In case you’d like to learn more, follow these links:ATI CRT EmuDriver15Khz CRT documentation WikiDirect3D improvements, additions, and a new Direct3D10 driverWith RetroArch 1.7.1, we really stepped our game up to finally start treating Windows as a first-class citizen platform. You have seen this in the form of dedicated Direct 3D 11/12 video drivers that had the ability to run the same shaders as Vulkan, our new slang shader spec that is made possible by the impressive Khronos/ARM-backed project SPIRV-Cross.Increased backwards compatibilityPreviously, the Direct3D 11 driver required that your graphics card driver supported at least Shader Model 5.0. We have since downgraded this requirement to Shader Model 4.0. As a result, I am now able to use the Direct3D 11 video driver on an old 2010 laptop GPU that only supports Shader Model 4.0 (it’s an ATI Mobility Radeon HD 4300). We also try to support more D3D11 feature levels instead of just defaulting to 11.0.New Direct3D 10 video driverOn some systems, though, you won’t be able to make use of the Direct3D 11 driver no matter what. One of those systems happened to be another old laptop I had lying around here. This one has a Geforce 9200M GS, and the specs state that it supports up to Direct X 10 and Shader Model 4.0. Direct3D 11 is a no go on this GPU even with the increased backwards compatibility.It’s for this purpose that me and aliaspider spent some time to finally make the Direct3D 10 driver feature-complete. Direct3D 10 should be available from Windows Vista and up, whereas Direct3D 11 is available from Windows 7 and up. The Direct 3D 10 driver should be feature complete and identical to the Direct3D 11 driver, with the sole exception of hardware rendering contexts not being available right now with Direct3D 10.Which brings us to the last Direct3D-related subject…Direct3D-powered libretro cores are now possible!This feature is easily worth its own article, but since we already covered this before and because 1.7.2 has so many huge features, we will relegate this to a side note. Nevertheless, it is none the less important.Up until now, if you wanted to use hardware-accelerated 3D rendering in a libretro core, your options were OpenGL and/or Vulkan. There is now a third option – Direct3D 11, and the first. This section describes features added in Direct3D 11, Direct3D 11.1, and Direct3D 11.2. Microsoft Direct3D 11 is an extension of the Microsoft Direct3D 10/Microsoft Direct3D 10.1 rendering API. For more introductory material about using Direct3D 11, see the Programming Guide for Direct3D 10 . What's new in Direct3D 11: This section describes features added in Direct3D 11, Direct3D 11.1, and Direct3D 11.2. Programming Guide for Direct3D 11: The programming guide contains information about how to use the Direct3D 11 programmable pipeline to create realtime 3D graphics for games as well as scientific and desktop applications. Microsoft Direct3D 11 is an extension of the Microsoft Direct3D 10/Microsoft Direct3D 10.1 rendering API. For more introductory material about using Direct3D 11, see the To perform decoding using Direct3D 11, the software decoder must have a pointer to a Direct3D 11 device. The Direct3D 11 device is created externally to the software decoder. In a Media Session scenario, the video renderer creates the Direct3D 11 device. In a Source Reader scenario, typically the application creates the Direct3D 11 device. Learn about the new features and enhancements in Direct3D 11, Direct3D 11.1, and Direct3D 11.2 for creating realtime 3D graphics. Find out how to use the Direct3D 11 The following sections describe the features added in Direct3D version 11 and how to support and use the Direct3D Version 11 DDI: Enabling Support for the Direct3D Version 11 The following sections describe the features added in Direct3D version 11 and how to support and use the Direct3D Version 11 DDI: Enabling Support for the Direct3D Version 11 Direct3D 11 runtime, please install the release version of Windows 7 or Windows Server 2008 R2. Windows Vista users can follow the procedure described in KB 971644 (or KB 971512 for corporate network users). For more details, see Direct3D 11 Deployment for Game Developers.Effects 11The Effects runtime for Direct3D 11 (FX11) is available as shared source in the DirectX SDK. For more information, please refer to Effects (Direct3D 11) and Effect System Interfaces (Direct3D 11) in the Windows Graphics documentation. The Effects 11 source is now located in the samples directory(Samples\C++\Effects11).DirectX 11 Runtime SymbolsThe modern DirectX Runtime is part of the operating system (OS), and symbols for the DirectX components (Direct3D, DirectInput, DirectSound, etc.) are provided as part of the OS symbol packages. DirectX 11 Runtime symbols are included in the Windows 7 and Windows Server 2008 R2 symbols packages available on the Microsoft website. However, we recommend using the Microsoft symbols server instead for the most current and correct set of symbols when debugging DirectX applications.Note that DirectX 11 Runtime symbols for the down-level KB 971644 and KB 971512 update for Windows Vista and Windows Server 2008 are not included in the OS offline symbols package. They can be obtained from the Microsoft symbol server.The Provided D3D9D.dll for Windows XP is Versioned for Service Pack 2The D3D9D.dll that is included in the February 2010 and later DirectX SDKs is versioned for Windows XP SP2. If you use this DLL on Windows XP SP3 with an application that uses the Windows Presentation Framework (WPF), the code in the DLL will assert. This issue does not occur on Windows Vista or Windows 7. If you require only debug output, that is, you do not require symbols, you could also use the checked version of D3D9.dll, which is compatible with Windows XPComments
Faster cores so that people on lower specced hardware can use runahead with more frames in advance.CRT Switch Res – GroovyMAME-like features for 15KHz capable CRT monitors!Thanks to forum-user Alphanu, RetroArch now has the ability to query cores for their exact video timing data, which can be used to switch to native-resolution, 15 kHz modelines for use with standard-definition CRT TVs.This is a big step for retro purists, as RetroArch can now output “pixel-perfect” video with accurate timing to compatible displays, even quickly switching between interlaced and non-interlaced modes on the fly.This capability is currently Windows-only and requires modelines to be created in advance by CRT_EmuDriver or Custom Resolution Utility with a compatible GPU. Linux support is coming soon.In case you’d like to learn more, follow these links:ATI CRT EmuDriver15Khz CRT documentation WikiDirect3D improvements, additions, and a new Direct3D10 driverWith RetroArch 1.7.1, we really stepped our game up to finally start treating Windows as a first-class citizen platform. You have seen this in the form of dedicated Direct 3D 11/12 video drivers that had the ability to run the same shaders as Vulkan, our new slang shader spec that is made possible by the impressive Khronos/ARM-backed project SPIRV-Cross.Increased backwards compatibilityPreviously, the Direct3D 11 driver required that your graphics card driver supported at least Shader Model 5.0. We have since downgraded this requirement to Shader Model 4.0. As a result, I am now able to use the Direct3D 11 video driver on an old 2010 laptop GPU that only supports Shader Model 4.0 (it’s an ATI Mobility Radeon HD 4300). We also try to support more D3D11 feature levels instead of just defaulting to 11.0.New Direct3D 10 video driverOn some systems, though, you won’t be able to make use of the Direct3D 11 driver no matter what. One of those systems happened to be another old laptop I had lying around here. This one has a Geforce 9200M GS, and the specs state that it supports up to Direct X 10 and Shader Model 4.0. Direct3D 11 is a no go on this GPU even with the increased backwards compatibility.It’s for this purpose that me and aliaspider spent some time to finally make the Direct3D 10 driver feature-complete. Direct3D 10 should be available from Windows Vista and up, whereas Direct3D 11 is available from Windows 7 and up. The Direct 3D 10 driver should be feature complete and identical to the Direct3D 11 driver, with the sole exception of hardware rendering contexts not being available right now with Direct3D 10.Which brings us to the last Direct3D-related subject…Direct3D-powered libretro cores are now possible!This feature is easily worth its own article, but since we already covered this before and because 1.7.2 has so many huge features, we will relegate this to a side note. Nevertheless, it is none the less important.Up until now, if you wanted to use hardware-accelerated 3D rendering in a libretro core, your options were OpenGL and/or Vulkan. There is now a third option – Direct3D 11, and the first
2025-04-11Direct3D 11 runtime, please install the release version of Windows 7 or Windows Server 2008 R2. Windows Vista users can follow the procedure described in KB 971644 (or KB 971512 for corporate network users). For more details, see Direct3D 11 Deployment for Game Developers.Effects 11The Effects runtime for Direct3D 11 (FX11) is available as shared source in the DirectX SDK. For more information, please refer to Effects (Direct3D 11) and Effect System Interfaces (Direct3D 11) in the Windows Graphics documentation. The Effects 11 source is now located in the samples directory(Samples\C++\Effects11).DirectX 11 Runtime SymbolsThe modern DirectX Runtime is part of the operating system (OS), and symbols for the DirectX components (Direct3D, DirectInput, DirectSound, etc.) are provided as part of the OS symbol packages. DirectX 11 Runtime symbols are included in the Windows 7 and Windows Server 2008 R2 symbols packages available on the Microsoft website. However, we recommend using the Microsoft symbols server instead for the most current and correct set of symbols when debugging DirectX applications.Note that DirectX 11 Runtime symbols for the down-level KB 971644 and KB 971512 update for Windows Vista and Windows Server 2008 are not included in the OS offline symbols package. They can be obtained from the Microsoft symbol server.The Provided D3D9D.dll for Windows XP is Versioned for Service Pack 2The D3D9D.dll that is included in the February 2010 and later DirectX SDKs is versioned for Windows XP SP2. If you use this DLL on Windows XP SP3 with an application that uses the Windows Presentation Framework (WPF), the code in the DLL will assert. This issue does not occur on Windows Vista or Windows 7. If you require only debug output, that is, you do not require symbols, you could also use the checked version of D3D9.dll, which is compatible with Windows XP
2025-04-14Skip to main content This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Working Samples Article12/30/2021 In this article -->Working samples are available for download, showing the usage of a number of features of Direct3D 12.Working samplesWorking samples (in the form of Visual Studio 2015 projects) can be downloaded from GitHub/Microsoft/DirectX-Graphics-Samples.NoteThe exact list of samples available at this location will vary as samples are added and updated.Sample titleDescriptionDesktopUWPWalk-throughHelloWorld HelloWindowHelloTriangleHelloBundlesHelloConstBuffersHelloTextureThe HelloWorld sample set contains the following simple projects to help you get started with Direct3D 12. Creates a window in preparation of rendering Direct3D 12 content.Renders a simple triangle using Direct3D 12.Demonstrates the usage of a bundle for rendering using Direct3D 12.Demonstrates how to use constant buffers to pass data to the GPU used for rendering in Direct3D 12.Demonstrates how to apply a texture to a triangle using Direct3D 12.YYCreating a basic Direct3D 12 componentD3D12BundlesDemonstrates frame buffering and synchronization best practices as well as rendering a simple mesh using bundles.YYD3D12MultithreadingAn example of how to build a multithreaded capable application.YND3D12nBodyGravityDemonstrates how multi-engine can be used to do asynchronous compute work alongside 3D work on the same GPU.YYMulti-engine n-body gravity simulationD3D12PredicationQueriesDemonstrates occlusion culling using query heaps and predication.YYPredication queriesD3D12DynamicIndexingDemonstrates the dynamic indexing capabilities of DirectX 12 and HLSL.YYDynamic Indexing using HLSL 5.1D3D1211on12Demonstrates basic usage of the 11on12 layer. This sample renders text using D2D using the Direct3D 11 API on a Direct3D 12 11on12 device.YYD2D using D3D11on12D3D12ExecuteIndirectDemonstrates compute engine culling in conjunction with the execute indirect feature to only render objects that pass the culling test.YYIndirect drawing and GPU cullingD3D12PipelineStateCacheDemonstrates Pipeline State Object (PSO) caching.YYD3D12FullscreenDemonstrates how to handle fullscreen to windowed transitions and window resizing in DirectX 12.YYD3D12HeterogeneousMultiadapterDemonstrates how to share workloads amongst multiple heterogenous GPUs using shared heaps.YYD3D12ReservedResourcesDemonstrates the use of reserved (tiled) resources. In this sample a quad is textured with a reserved resource containing a full mip chain.YYD3D12ResidencyThis is intended as a low-integration-cost solution to managing your Direct3D 12 heaps and committed resources, using memory management techniques from Direct3D 11.YYD3D12SmallResourcesDemonstrates the use of small placed resources, showing the potential memory savings gained using placed resources (with a 4K alignment) over committed and reserved resources (with a 64K alignment).YY Direct3D 12 Programming Guide D3D12 Code Walk-Throughs --> Feedback Additional resources In this article
2025-04-04