Talk:Direct3D/Archive 1

Latest comment: 8 years ago by DmitryKo in topic Feature level table is a mess
Archive 1

Direct3D pipeline image needs updating

The pipeline image still depicts the D3D10 pipeline, while the text next to it describes the D3D11 pipeline, so the hull and domain shader stages can't be found in the image 213.10.103.38 (talk) 00:32, 5 August 2012 (UTC)

Cleanup

Added cleanup tag after doing a little bit of it myself. Text needs edited for clarity and sourcing, de-engrished (for lack of a better term), and has pov-ish statements woven throughout. —Preceding unsigned comment added by 24.61.195.236 (talk) 21:44, 26 October 2010 (UTC)

Some contributions

Hi, I am a spanish wikipedist and after being working on the spanish version I have some contributions to this one. Please, be understanding with my poor English and help me to do it correctly. Thank you. Bedwyr 15:09, 18 February 2007 (UTC)

More version history

Can the version history be expanded? I'm quite sure it didn't start at version 8.


My two cent is that it's better to not go down to the origins. I think it really began to be useful from 8 (maybe 7) but previous versions never cought my attention. I would rather see this page integrated nicely, I personally don't care if it covers the old techs. 83.176.94.254 16:02, 7 February 2006 (UTC)


Direct3D's origins matter, they should be mentioned. e.g. in this article Criticism_of_Microsoft#Acquisitions they mention Direct3D as originally not a Microsoft thing. That would be one quite important thing to write about.. 62.78.150.81 15:56, 18 April 2006 (UTC)

Even if it was not initially created by MS, it has been given a new shape by MS (inclusion of programmable shaders, for instance) whch radically affected the gaming scenario. The present versions of dx have changed so much that it hardly retains it legacy. --soUmyaSch 05:47, 19 April 2006 (UTC)
Even if the information is not particularly interesting to some, it IS very closely related to the topic at hand and may in fact actually be useful to someone. At the very least, an overview of what major features are in each revision of Direct3D would be useful. --Random pseudo-anonymous user

It would be nice to at least have release dates for the versions of DirectX listed in the article. Direct3D started out as RenderMorphics, a software polygon rasterization library purchased by Microsoft. However, this proved to be unpopular with game develoepers, and DX rapidly evolved and by DX 5 or 6, there was no trace of the code or API design from Rendermorphics. The evolution of DirectX by that time was governed by joint activity of nVidia, ATI and Microsoft. DonPMitchell (talk) 16:37, 31 July 2009 (UTC)

Direct 3D 10

The D3D 10 sections requires some cleanup. It badly lacks a good flow, and lines like it's most definitely not DX10 should be avoided. The line states What's currently referred to as DX10 is really WGF 2.0 atop Advanced VDDM drivers running on post-Vista hardware. WGF 1.0 (atop either flavor of VDDM), as shipping with Vista, is referred to by MS as DX9.L -- it's most definitely not DX10. If DX10 IS WGF 2.0 and WGF 1.0 is DX 9L, where is the confusion that the shipping version of WGF will be DX10? It should either be confirmed with a reference to MS document or reworded to be fully speculative, removing the contradicting claims. --soUmyaSch 16:55, 12 April 2006 (UTC)

To do

  1. Discussion of the D3D 10 graphics pipeline.

--soUmyaSch 08:12, 15 May 2006 (UTC)

DirectX 10 w/ XP?

For the holiday's i'm planning to upgrade my computer. Rather than buy the last great DirectX 9 card. I'm going to buy a DirectX 10 card. But since Vista wont ship until January, will I be able to use the card on a Windows XP system? (I wont be using Windows XP for long considering i'm planning to get Vista the day it ships or close to it)

You will be able to use it, it just won't provide the DirectX 10 render path. It will work fine with D3D9. --soumসৌমোyasch 10:31, 15 November 2006 (UTC)

Direct3D 10 and shaders

The article states: "Fixed pipelines[2] are being done away with in favor of fully programmable pipelines (often referred to as unified pipeline architecture), which can be programmed to emulate the same. "

I'd like to note here that programmable pipelines are not the same as a unified architecture. While fully programmable pipelines are a prerequisite for Direct3D10, I don't believe that a unified architecture is a part of Direct3D 10. If I remember correctly, unified architexture just means that there is no longer a distinction between vertex/pixel shaders anymore on the hardware. However, I'm not entirely sure of this so someone with a better knowledge of this might want to comment. —The preceding unsigned comment was added by 203.214.97.106 (talk) 10:55, 20 December 2006 (UTC).

There is a difference on the software side as well. Namely, in the early days, vertex and pixel shaders were physically different units, each with their own instructionset. This meant that the assembly language and HLSL also had slightly different syntax and capabilities for the two types of shaders. In D3D10, since the hardware is unified, so is HLSL (assembly language shaders were dropped altogether). There is an exception to that rule in D3D11 compute shaders. While they also use HLSL, compute shaders can perform operations that regular shaders can't. 213.10.103.38 (talk) 11:31, 6 August 2012 (UTC)

DX10 Instancing 2.0

This is the feature about DX10 that I found most exciting (being able to render an entire army for the processing costs of one unit is far more obvious a benefit than 4.0 Shaders to me), however it's not mentioned in the features list. I found out about it (and other DX10) features from here: http://www.tomshardware.com/2006/11/08/what_direct3d_10_is_all_about/ , with the specific info on Instancing on Page 6 http://www.tomshardware.com/2006/11/08/what_direct3d_10_is_all_about/page6.html) I'm adding a brief mention under the feature checklist. 4.239.87.164 12:17, 26 December 2006 (UTC)

Inaccuracies

1. The header states: Direct3D uses hardware acceleration if it is available on the graphic board. - this sounds as if there was a software fallback when hardware acceleration isn't available. But other than the reference rasterizer, which needs to explicitely enabled using the SDK tools, there is not software fallback.

2. The Immediate Mode / Retained Mode idea has been scrapped in DirectX 5 already. There is no "hierarchy" (scene graph) or animation framework contained in Direct3D anymore. Immediate mode has become Direct3D. Even if this ancient (and unsupported by most drivers) distinction was still relevant, the paragraph shouldn't say "Direct3D is formed by two big APIs", more like "When the earth was still young, Direct3D was divided into a lower-level immediate mode layer and a higher-level layer called retained mode built on top of the immediate mode layer". :)

Cygon 12:21, 23 April 2007 (UTC)

It was me with my little hachet

Someone claims to have hacked DX10 to run on top of Windows XP and possibly Apple Mac. He wants to make a company out of it, but will probably end up in free federal supermax care on DMCA charges instead... Article with links at the bottom: http://www.theinquirer.net/default.aspx?article=39095 —Preceding unsigned comment added by 82.131.210.162 (talkcontribs)

I think we should wait before reputed sources make an opinion of it, or more information comes out, rather than just the devs word. Coz I think theres something wrong about it. What idea I get is that it will emulate geometry shaders in software. I hate to think what a speed bottleneck execution will hit then. --soum (0_o) 15:32, 23 April 2007 (UTC)

It'd be a good idea to explain or mention how does it works with other programs like 3dS Max and to compare it with rival programs —The preceding unsigned comment was added by 189.151.75.146 (talk) 18:12, August 23, 2007 (UTC)

Crysis

"The game is also scaleable to deliver a breath-taking FPS experience for older DX9 PCs." --EA

So the statement that it exclusively supports DX10 is false. --M.A. 20:26, 19 October 2007 (UTC)

DX9 vs DX10

DX10 image quality advantages are fake? Oh yes, the marketing crew work very well and show to us a lot of beauty pictures which was build on DX10. We had heard lots of sweet stories about incredible, photorealistic graphics which accessible only with new technology (DX10). But all of highly promotion games of 2007 show no real advantage in image quality of DX10, DX9 mode on these games show identical or near identical picture… —Preceding unsigned comment added by -=Che=- (talkcontribs) 13:26, 5 November 2007 (UTC)

"Mandatory"?

Mandatory AA 4x? Hum? Means that jagged edges are forever be gone? —Preceding unsigned comment added by Thisaccountisreal (talkcontribs) 21:07, 7 January 2008 (UTC)

No that just means that the graphics card must support 4xAA at least (all dx9 graphics cards currently do). Then the video game is free to use that capability and can rely on its presence on all graphics cards that also support d3d10.1. Before the support was true but was not enforced, with direct3d10.1 the support will be enforced and therefore true.70.112.43.130 (talk) —Preceding comment was added at 05:40, 7 June 2008 (UTC)

Rendering techniques

What sort of rendering techniques does Direct3D use? For example, is ray tracing supported? --Abdull (talk) 15:57, 8 June 2008 (UTC)

The best places for this type of information is Microsoft's Direct3D pages. This page is for discussing the article. But, no, Direct3D doesn't do ray-tracing. — Frecklefσσt | Talk 18:09, 9 June 2008 (UTC)

Old code unnecessary complicated ?

Can't this

D3DLVERTEX v[3];
// Vertex established
v[0]=D3DLVERTEX( D3DVECTOR(0.f, 5.f, 10.f), 0x00FF0000, 0, 0, 0 );
// Vertex established
v[1]=D3DLVERTEX( D3DVECTOR(0.f, 5.f, 10.f), 0x0000FF00, 0, 0, 0 );
// Vertex established
v[2]=D3DLVERTEX( D3DVECTOR(0.f, 5.f, 10.f), 0x000000FF, 0, 0, 0 );
// Function call to draw the triangle
pDevice->DrawPrimitive( D3DPT_TRIANGLELIST, D3DFVF_LVERTEX, v, 3, 0 );

be rewritten as :

D3DLVERTEX v[] = {D3DLVERTEX( D3DVECTOR(0.f, 5.f, 10.f), 0x00FF0000, 0, 0, 0 ),
                 D3DLVERTEX( D3DVECTOR(0.f, 5.f, 10.f), 0x0000FF00, 0, 0, 0 ),
                 D3DLVERTEX( D3DVECTOR(0.f, 5.f, 10.f), 0x000000FF, 0, 0, 0 ) };
// Function call to draw the triangle
pDevice->DrawPrimitive( D3DPT_TRIANGLELIST, D3DFVF_LVERTEX, v, sizeof(v)/sizeof(v[0]), 0 );

? This would make it pretty much similar to the new version. 84.16.123.194 (talk) 01:46, 3 February 2009 (UTC)

Example inaccuracy

In these 'examples' all 3 points are the same position, so it won't render anything - it is a degenerate triangle! —Preceding unsigned comment added by 97.101.48.7 (talk) 23:02, 27 November 2009 (UTC)

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

Shjacks45 (talk) 09:30, 13 April 2010 (UTC)

embedded devices version

Is there a limited version for embedded devices? E.g. for mobile phones? Something like OpenGL ES? Andries (talk) 11:45, 1 August 2010 (UTC)

(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. --93.39.101.231 (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. --37.144.148.145 (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 (talkcontibs) 08:03, 5 June 2015 (UTC)

This edit [1] 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[2]. --92.242.59.6 (talk) 12:42, 5 June 2015 (UTC)
I have added a separate table for optional hardware features in Direct3D 12 (and 11.3), otherwise there is too much confusion regarding feature levels, "tiers" and "full DX12 support" whatever. --Dmitry (talkcontibs) 09:45, 6 June 2015 (UTC)

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 (talkcontibs) 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 [3] - detailed feature tables are forked to a separate article, Feature levels in Direct3D. --Dmitry (talkcontibs) 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 (talkcontibs) 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 (talkcontibs) 08:31, 12 June 2015 (UTC)