|This is the talk page for discussing improvements to the Direct3D article.|
|This article is of interest to the following WikiProjects:|
DirectX (1.0) and WinG
Unclear origins notes "1992" and D3D 2.0 in the same sentence. WinG was a Microsoft GLide competitor in 1994, but DirectX (first version is never 1.0) came out in Sept 1995. From WinG: Alex St. John, one of the creators of DirectX, said in a 2000 interview that, “WinG was a technology being built by Chris Hecker in the research group, and at the time it was one of the small "Microsoft Skunkworks" projects, very low profile and off-the-wall. Basically it was fixing broken Windows drivers to make them run faster and more acceptably. Using it, we were actually able to create a video API that could run DOOM almost as fast under Windows as it did in DOS." (refers to Windows 3.1 (WFW). http://www.jumbo.com/file/128.htm http://www.cs.hmc.edu/~tsemple/games/win311.html
embedded devices version
- (For the record: I just added it: Direct3D Mobile.) --DanielPharos (talk) 19:22, 28 October 2011 (UTC)
Feature level table is a mess
Feature level table is a mess, mostly due optional features entries. First of all, optional features support is not guaranteed for all GPU of a single series (e.g.: GCN 1.0 architecture can support Tiled Resources tier-1, however some mobile cards like 7700M Series do not support tiled resources at all). Moreover, supporting a single optional feature, of a single feature level on a single WDDM, does not guaranteed the support of all optional feature of the same feature level on the same driver model (e.g.: NVIDIA Geforce and AMD Radeon do not support tile-based deferred render, which is a - missing - optional feature of D3D11 WDDM 1.1 and later). This is, optional feature are organized into caps-bits: to ensure the support of a single optional feature, you must query the GPU driver with proper D3D calls (DirectX Caps Viewer in the Windows SDK can also used to obtain a summary of optional feature support with the WDDM associated with the version of the SDK). Optional features entries in the article's table are wrongly associated with hardware (GPUs) and a lot of optional features are missing. (e.g.: tiled deferred render, optional multi-threading features) In brief: optional features entry in the feature level table should be removed. --126.96.36.199 (talk) 21:43, 27 February 2015 (UTC)
- The optional features part is actually aligned to GPU hardware column, just like the mandatory features part. It indicates which WDDM version is required for most important optional features which are explicitly mentioned in the Feature Levels article in the MSDN documentation on Direct3D feature levels, and which minimum hardware is expected to support these important optional features, with a full reference to architecture required (GNC 1.0/1.1, Fermi/Kepler/Maxwell/Maxwell-2, and Haswell/Skylake).
- If you need detailed documentation on all optional features, including feature query functions and data structures, you have to look up references to MSDN documentation on the Direct3D 11 API. We don't have the resources to compile a feature support matrix for all existing GPUs and WDDM/Windows versions. --188.8.131.52 (talk) 21:05, 28 February 2015 (UTC)
Please do not try to make a matrix for optional features out of this table. The examples of supporting hardware are aligned to the mandatory features of each feature level. If you try to re-align optional features to the supporting hardware, you simply break the mandatory features. --Dmitry (talk•contibs) 08:03, 5 June 2015 (UTC)
- This edit . --184.108.40.206 (talk) 12:42, 5 June 2015 (UTC) broke the table and caused an amateur tech news site to assert that Nvidia 400/500/600/700 series support feature level 11_1 when they don't
Maxwell v2 does not appear to have feature level 11_1 as well but I am unable to confirm however it is listed on the chart, supporting 12_1 doesn't mean you support 11_1. Prefix-NA (talk) 21:41, 11 June 2015 (UTC)
- You are not clear enough. Feature levels form strict supersets - supporting a higher level implies supporting all mandatory features of all the lower levels. Also some optional capabilities are promoted to mandatory on higher levels - this mostly applies to levels 10_x, 11_x and 12_x, but not 9_x. --Dmitry (talk•contibs) 08:49, 12 June 2015 (UTC)
I reverted the feature table to a much simpler version, similar to what it looked like on first original creation  - detailed feature tables are forked to a separate article, Feature levels in Direct3D. --Dmitry (talk•contibs) 09:24, 13 June 2015 (UTC)
Edit war on "Async shaders"
Please stop adding marketing information to the technical section on feature levels. We only list features that can be queried by the API and which are part of the defined levels, as documented on MSDN. Internal features of the graphics driver which are not exposed by the API have no relation to the topic. --Dmitry (talk•contibs) 20:13, 11 June 2015 (UTC)
Asyncronous shaders are not based on the API and have a huge relation to the topic you are abusing your authority trying to mislead people, Kepler for example is not even capable of asynchronous compute which is the first step towards syncronous shaders. I am not sure why you are limited features defined by feature levels as feature levels do not list things such as Cross-node sharing which are included in the table. Can you give any evidence of Kepler or Maxwell supporting Asynchronous shaders because it appears there were no changes to Maxwell in this Fermi/Kepler/Maxwell V1 can only use a single graphics queue or their complement of compute queues, but not both at once so they are not even close to hardware requirements for asynchronous shaders. Can you show anywhere where it states Async shaders are a part of the API itself? Everything that was cited to you stated otherwise however you seemed to remove it. Prefix-NA (talk) 21:38, 11 June 2015 (UTC)
- "Asynchronous shaders" is a marketing term used by AMD that describes additional discrete logic in their GCN chips to accelerate execution of compute shaders. It has no relation to the optional features exposed by the graphics driver, it's purely internal matter of the graphics driver and the GPU. I removed it from the optional capabilities matrix because it's mostly based on D3D12_FEATURE_DATA_D3D12_OPTIONS structure reported by ID3D12Device::CheckFeatureSupport method, as well as preliminary definition of Direct3D 12 feature levels in MSDN docs and in recent Microsoft presentations.
- Direct3D 12 API does have improved capabilities for parallel execution of computing workloads, because it can schedule parallel execution of these three tasks: copy, compute, execute. This is called "Synchronization and Multi-Engine" in the MSDN documentation. However this is a baseline API feature and there are no additional capabilities or tiers that are exposed to the programmer - if parallel execution is possible, it happens transparently to the application and no further programming action is required.
- So this doesn't really belong to Direct3D feature levels, but rather to the Direct3D 12 section, List of AMD graphics processing units, List of Nvidia graphics processing units, List of Intel graphics processing units and relevant articles on individual GPU series. --Dmitry (talk•contibs) 08:31, 12 June 2015 (UTC)
Nicholas wilt, is there an advantage to calling the sections DirectX x.x rather than Direct3D x.x? This article is about Direct3D, which is admittedly part of DirectX, but I think it is better to be specific. Do the Direct3D version numbers differ from the DirectX version numbers? Sizeofint (talk) 23:06, 5 November 2015 (UTC)