POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 3332|回复: 6
打印 上一主题 下一主题

A glance at DirectX 10.1

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-20 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Introduction

Before we begin outright, we should remind ourselves briefly as to exactly why the API will be seeing point releases as of DirectX 10.  The main reason for this move is the removal of cap (or capability) bits in the API.  In the past, cap bits allowed for graphics vendors to basically pick and choose what features their hardware would support (albeit within some fairly strict guidelines to ensure compliancy to particular DirectX and Shader Model revisions).  Although this left the likes of NVIDIA and ATI with plenty of room to develop and tout features that the other didn't have, it also had the side effect of creating development Hell for any game developers working on titles, leaving them to sort through a myriad of cap bits for different GPUs and configurations to ensure that they were supporting the right features for the right boards - More often than not, this simply meant that advanced features that only one graphics vendor supported were left out of the vast majority of titles altogether (Truform anyone?).  The removal of this labyrinth was one of the main things developers were screaming out for when it came to discussing what was required of DirectX 10, and so it came to pass.

Of course, this removal of cap bits had to be offset against the ever changing and progressing world of GPU development, so the graphics vendors still needed a way to push the technology forward and allow new technologies to find their way into games.  Thus, DirectX 10 will be seeing point releases, one of the main facets of which will be to facilitate the inclusion of new funtionality for compliant graphics hardware to make use of.  This makes life easier both for developers (who can target DirectX 10, 10.1 etc rather than individual features) and consumers - How do you explain to the man on the street that yes, a Radeon X800 and GeForce 6800 are both DirectX 9 parts, but both support different Shader Models in their respective architectures.  It isn't much fun, trust me.  As DirectX 10 and its point releases will also have very little in the way of features that are only optional in the API, buying a graphics board compliant with a particular DirectX 10 version will ensure that it does everything it needs to do to satisfy game titles that use that level of technology.  No more Vertex Texture Fetch-esque confusions this time around then.

The other question to answer (or not answer, such is the way these things work) before we start is - When will DirectX 10.1 be released?  From what we've heard thus far, it appears that it may well become available not all that long after DirectX 10 itself.  What isn't so likely however, is that we'll be seeing DirectX 10.1 capable hardware before or at the time of the launch of this new iteration of the API.  The main reason for this will be the additional requirements necessary to support DirectX 10.1's WDDM 2.1 driver model, but we'll go into that a little more thoroughly in due course.  In other words then, although we may see DirectX 10.1 pretty soon in the grand scheme of things, don't expect to be racing out to buy a DirectX 10.1 capable graphics board for the forseeable future.
2#
 楼主| 发表于 2006-8-20 16:40 | 只看该作者
Improvements over DirectX 10

As I'm sure you've already fathomed by now, DirectX 10.1 will be a superset of DirectX 10 - That is, it will support everything that DirectX 10 does (and thus all DirectX 10 compliant parts), but then add more in the way of features and performance to that offered by the base level of DirectX 10.  So, before we start looking at additions to the DirectX 10.1 feature set, let's talk about where we'll be seeing improvements in the API.

One of the main improvements touted by Microsoft in DirectX 10.1 is improved access to shader resources - In particular, this involves better control when reading back samples from multi-sample anti-aliasing.  In conjunction with this, the ability to create customised downsampling filters will be available in DirectX 10.1.

Floating point blending also gets some new functionality in DirectX 10.1, more specifically when used with render targets - New formats for render targets which support blending will be available in this iteration of the API, and render targets can now be blended independently of one another.

Shadows never fail to be an important part of any game title's graphics engine, and Direct3D 10.1 will see improvements to the shadow filtering capabilities within the API, which will hopefully lead to improvements in image quality in this regard.

On the performance side of things, DirectX 10.1 will allow for higher performance in multi-core systems, which is certainly good news for the ever growing numbers of dual-core users out there.  The number of calls to the API when drawing and rendering reflections and refractions (two commonly used features in modern game titles) has been reduced in Direct3D 10.1, which should also make for some rather nice performance boosts.  Finally, another oft-used feature, cube mapping, gets its own changes which should help with performance, in the form of the ability to use an indexable array for handling cube maps.


Additions over DirectX 10

One of the major additions which will impact image quality in DirectX 10.1 regards precision, in a couple of different disciplines.  Firstly, this revision of the API will see the introduction of 32-bit floating-point filtering over the 16-bit filtering currently on show in DirectX 9 and 10 - This should see improvements to the quality of High Dynamic Range rendering which use this functionality over what is currently available.  On top of this, overall precision throughout the rendering pipeline will also be increased, although to what level doesn't seem to have been publically specified at present.  These increases in precision could make for an interesting challenge for the graphics IHVs, as it seems likely they'll be needing to spend a large number of transistors in future parts just to match these new requirements, let alone ekeing decent performance out of their GPUs when dealing with higher precisions than those we have seen thus far.

Again looking towards improvements on the image quality front, DirectX 10.1 will also see the introduction of full application control over anti-aliasing.  This will allow applications to control the usage of both multi-sample and super-sample anti-aliasing, as well as giving them the ability to choose sample patterns to best suit the rendering scenario in a particular scene or title.  Finally, these changes in DirectX 10.1 give the application control over the pixel coverage mask, a mask which is used to help to quickly approximate sampling for an area of pixels.  This in particular should prove to be a boon when anti-aliasing particles, vegetation, scenes with motion blur and the like.  All of this additional control handed to the application could allow for anti-aliasing to be used much more wisely and effectively, and controlled by game developers themselves, rather than the current 'all or nothing' implementation available, which basically amounts to a simple on-off switch.

To add further to the additional focus on anti-aliasing in DirectX 10.1, support for a minimum of four samples per pixel (in other words, 4x anti-aliasing) is now required (Although this doesn't necessarily mean that support for 2x anti-aliasing in hardware and drivers is a thing of the past).
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2006-8-20 16:40 | 只看该作者
WDDM 2.1

Lastly, we come to one final major change which will be seen in DirectX 10.1 - Whereas DirectX 10 will see the introduction of support for WDDM (Windows Driver Display Model) 2.0, DirectX 10.1 moves this on a step as the driver model moves up to 2.1.  Again, be sure to have read our look at WDDM 2.0 before you proceed to understand what this driver model is all about.  Needless to say, WDDM 2.1 does everything WDDM 2.0 does, but with a couple of significant additions, mainly aimed at improving performance on DirectX 10.1 capable GPUs further still.

First on the list for WDDM 2.1 is further improvements to context switching abilities - This was improved significantly with the introduction of WDDM 2.0, where context switching could be performed after processing a command or triangle (compared to what is required prior to WDDM 2.0, where whole buffers needed to be completely worked through before a context switch could be performed).  With WDDM 2.1 however, context switching can now be performed instantly.  This means that a context switch is guaranteed when requested with WDDM 2.1, which isn't necessarily the case under WDDM 2.0 when long shaders or large triangles are being processed, whilst retaining the same average switching time between 2.0 and 2.1.

Due to the amount of threads in use and work being done in parallel at any one time on a GPU, efficient context switching (which basically involves switching between the various threads the hardware is working on) is a vital part of processing work on a GPU, so the removal of as much overhead as possible when context switching is most welcome.  This is all the more important under Windows Vista, as the possibility of the GPU having to work on more than one application that requires graphics rendering in some shape or form becomes greater, and thus the need to shift seamlessly between different rendering workloads without one application taking up all of the GPU's rendering time increases further still.

The other major addition to WDDM 2.1 is a change to the way the GPU and its driver handles page faults - In WDDM 2.0, a page fault (i.e. a request for data that is not currently loaded into memory) triggers a rather long-winded process, which involves the GPU stalling, informing the Operating System of the missing page, and then restarting again once the correct page (piece of data) has been loaded into memory.  In WDDM 2.1, things are handled far more gracefully, thanks to the GPU having additional support to handle page faulting and virtual memory allocated on a per process basis.  This means that when a page fault crops up, the GPU doesnt have to stall, and instead the improved context switching capabilities we mentioned earlier are put to good use to switch to the next item on the agenda that needs to be worked on rather than sitting around idly waiting for the correct data to be made available.

As we mentioned earlier in this article, the implementation of WDDM is likely to be one of the main reasons why we don't see DirectX 10.1 compliant hardware springing up any time soon - Quite simply, solving these context switching and page faulting issues isn't a trivial task from either a hardware or driver point of view, and thus a massive amouont of work and resources will have to go into implementing the full 2.1 Windows Driver Display Model as required to gain compliancy.  Add to that the necessity to make the other changes required of this point release of the API, and the constant demand of users to see increased performance across the board, in the enthusiast space in particular, then you can see that getting everything together to create a compliant part is going to be a tall order for a little while yet.


Conclusions

Until we've seen both Windows Vista and DirectX 10 running on compliant hardware, with fully WDDM drivers, in the flesh, then there certainly isn't much we can conclude about DirectX 10.1 and how it will improve and impact upon the future of the API and hardware which relies upon it.  Certainly, although I'm sure this point release will become another important marketing tick box, it doesn't feature a great deal that will send the jaws of graphics enthusiasts around the world dropping particularly.

Of course, this focus on what the developers want and need over additional eye candy isn't a bad thing - Quite the opposite in fact.  It certainly seems that the focus of the DirectX team circa DirectX 10 is to try and solve as many of those age-old graphics rendering issues as they can, allowing developers to wring every last drop of functionality and performance out of their titles which should, in turn, give us some far better gaming experiences on the PC in future.

That isn't to say that additional image quality-related features are non-existent in DirectX 10.1.  In particular, the addition of full application control for anti-aliasing is an intriguing one, and it'll certainly be interesting to see how (and if) this is put to comprehensive use in game titles further down the line.  We'll also have to wait and see what the increased float and rendering pipeline precisions hold in store for us from an image quality point of view, and perhaps more importantly how any increases in precision will impact upon performance in future generations of hardware.

Certainly, when you look at the thoughts behind DirectX 10.1 as a whole, you can safely say that the consumer 3D graphics industry isn't looking like slowing down any time soon, which means plenty more excitement, arguments and competition for quite some time to come - Heaven for 3D graphics geeks like you and I.
回复 支持 反对

使用道具 举报

来不及思考 该用户已被删除
4#
发表于 2006-8-20 16:42 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

5#
发表于 2006-8-23 11:23 | 只看该作者
上文出處:
http://www.elitebastards.com/cms ... d=103&Itemid=29

MS的DX10.1 PPT:
http://download.microsoft.com/do ... 3cd/PRI022_WH06.ppt


G80為DX10、R600為DX10.1,這應該沒有疑問;
不過我懷疑Intel會拿出DX10.1 beyond。:rolleyes:

[ 本帖最后由 Eji 于 2006-8-23 11:32 编辑 ]
回复 支持 反对

使用道具 举报

wyhka 该用户已被删除
6#
发表于 2007-1-18 06:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

7#
发表于 2009-7-14 10:14 | 只看该作者
好多虫子啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-4-9 19:32

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表