POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 3380|回复: 10
打印 上一主题 下一主题

AMD:要达成离线渲染品质,GPU架构的开发至少还要努力10年

[复制链接]
跳转到指定楼层
1#
发表于 2007-3-15 11:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
In The Hot Seat: ATI's Phil Rogers
March 14, 2007

By  Jason Cross

Phil Rogers joined ATI Technologies in 1994 as manager of the 3D drivers group, and led the development of the D3D, OpenGL, and Mac Rave drivers for the Rage series of graphics chips.


In 1999, Rogers moved to an architectural role and has been responsible for 3D driver architecture and 3D performance optimization for the Radeon series of GPUs. An important part of that role has been to work closely with Microsoft on the evolution of the Direct3D API/DDI and on the development of the Windows Display Driver Model for Windows Vista. Rogers plays an active role helping Microsoft make software architecture decisions that work well with all AMD graphics hardware and drivers.


In 2006 Rogers was promoted to ATI Fellow with broad architectural responsibility for all graphics software at ATI, and now AMD. In this role Rogers has guided development of AMD's Vista drivers, HD-DVD, and Blu-Ray playback drivers, a new driver architecture for Dx10, and the Crossfire architecture for MultiGPU. In his spare time Rogers directed development of the new 3D preview for Catalyst Control Center, which just released on Vista.

Rogers is currently the lead software architect for the R600 drivers and is ramping up on his next challenge, which will be the software architecture for Fusion (AMD's combination CPU/GPU, scheduled for release in 2008). Continued...


ExtremeTech: Let's start with the issue most pressing on our readers' minds—Vista drivers. Right now, it seems like both Nvidia and AMD are struggling with Vista drivers. There are odd compatibility issues, missing features, and certainly some big performance penalties. Some games run just a few FPS slower under Vista, but many others are dramatically slower. In some cases, games will show a big performance drop in Vista with certain settings, but are nearly as fast with other settings. What our readers want to know is: How did it end up this way? With the extremely long development and multiple delays of Vista, graphics vendors have seemingly had all the time in the world to make awesome drivers.

Phil Rogers: Yes there is a lot interest in this issue and a lot of confusion out there. First of all, let me correct one misconception: AMD is not struggling with Vista drivers. We have high performance, stable, WHQL certified drivers for Vista across our whole product line, including support for CrossFire. We are very happy with Windows Vista and the new driver model. We believe the Vista driver model for graphics is superior to the XP driver model and we worked for years with Microsoft to make sure it came out that way. The new driver model was essential in order to reduce system crashes, move the Vista desktop to D3D, and make the user experience snappy and interactive. I believe we succeeded across the board.

Having said that, a multiyear development cycle does not mean there is plenty of time to get everything done. During the development of Vista, an awful lot changed in the PC platform: new generations of GPUs were released, multicore CPUs became mainstream, and CrossFire configurations appeared in the market. With each of these changes, both we and Microsoft chose to react and change the drivers and the driver model to accommodate and optimize for these new arrivals, rather than just deliver the original design with a limited feature set.


One of the big architectural changes in the driver model for Vista was to move the D3D driver from kernel mode to user mode, where frankly it should have been all along. The D3D driver is a complex piece of software and keeping it fast and stable is a delicate balancing act. We are particularly susceptible to bad input from games. If we check everything the games send to us, we run too slow. If we check nothing, then the driver can crash. On XP, if the driver makes a mistake or uses bad data from an application, it can bring down the whole system—the dreaded BSOD [Blue Screen of Death]. On Windows Vista, such an error is still serious since it causes an application to exit … but it will no longer cause a BSOD. The balancing act goes on ... but now the consequences of an error are much less severe.

Note that we also spend considerable effort on improving the stability of our drivers. We made a particular effort to ensure that the stability of the new Vista driver was high with the first release and we will continue to improve from there. We have a team dedicated to that task, developing ever more fiendish stress tests to find bugs that might only manifest under extreme conditions. We are constantly testing the stability of our driver under stress conditions against the stability of the competition's drivers, and if we happen to fall behind at any point in time, we do not release that driver until we again raise the stability above that of the competition. To us, the stability of game playing is as important as the performance. This however may not be the priority of our competitors.

ExtremeTech: The demands of Vista mean that many games simply aren't ever going to run as fast as they do under XP. How much of a performance difference do you think is reasonable? 5%? 10%?

Rogers: Sorry, not true!

First, lets look at CPU limited (low resolution) cases. We worked with Microsoft on the multithreading model for the D3D runtime and driver for Vista. This resulted in a more flexible and simple model for the driver to move its workload to another thread and hence run in parallel with the application. True, we could already run driver threads in Windows XP, but we had to be more conservative there since the OS was not designed for multithreading of graphics. As a result of these improvements in the threading model, several games have actually gained performance on Windows Vista over Windows XP.

The Vista driver model does incur a small CPU overhead compared to Windows XP in order to copy driver commands from user mode memory to dma buffers that are read by the GPU. This can be a 5-10% overhead, depending on the application and how well the driver is written. But the important thing to understand is that this overhead is only seen on CPU limited cases, which means low resolution and no anti-aliasing. On modern GPUs, most gamers prefer to play at higher resolution with antialiasing and anisotropic filtering enabled. At typical gamer settings, the CPU overhead is hidden and so the "copy penalty" disappears. In many cases we do better than 5% at low resolution, and as mentioned above, Vista can be faster than XP if the game threads well.

At high resolution, OS and driver overhead is not an issue. So the main impact that Vista can have over Windows XP is in graphics memory management. In Windows XP, each IHV wrote their own memory manager for locating surfaces like textures and depth buffers in local memory (on the graphics card) and system memory (accessed by the GPU via the PCIE bus). Our Windows XP graphics memory manager is called VCAM. In Windows Vista, the graphics memory manager is a Microsoft component called VidMM, used by all IHVs. So we worked closely with Microsoft on the design of VidMM, to ensure it offered all the features of our own VCAM and helped Microsoft debug and tune it. As a result, we find VidMM to be very good for AMD hardware and it allows our drivers the same flexibility in placing our surfaces for optimal performance. Indeed we are able to use common code in our unified driver for operating VidMM in our Vista drivers and VCAM in our Windows XP drivers.

ExtremeTech: So do you think that most games—DirectX 9 games on DirectX 9 hardware—n just as well in Vista as they do under XP? We don't have to content ourselves with a roughly 5-10% performance difference on the whole?

Rogers: That's right. We are under 3% delta at low resolution and level at high resolution on the majority of titles already in our internal builds. And we are working on the outliers to bring them in. Continued...


ExtremeTech: Certainly, you can't say that games on the whole have reached their performance potential in Vista. How long do you think it will take to optimize AMD's Vista drivers to the point where DX9 hardware runs DX9 games—virtually all games at all settings—or up to that reasonable performance difference?

Rogers: There are still some performance gaps on Vista, and we are working on them. Like everyone else, you assume the problem is the drivers :-). And as so often, problems do not always have their origin in the drivers, but the solutions will be delivered in driver updates. How can that be? We driver writers are used to this ... it's just part of the job. In our ecosystem there are a whole string of hardware and software components: CPU, Northbridge, GPU, Game, OS, D3D Runtime, and Graphics Driver. In that chain, the graphics driver is the only component that has a regular release vehicle—our monthly Catalyst release. So that is where things get fixed or worked around, wherever the root cause.


Let me give you an example. Since yours is an enthusiast site, your readers might appreciate a detailed example. We have a few games right now suffering from a single issue, which is "pipeline stalls due to surface deletes." Graphics performance is all about keeping the pipeline fed, and running as many things in parallel as possible. So synchronization is bad and any software event that causes the graphics pipeline to drain and empty is especially bad. Well, a few games out there delete one surface and create a new one every frame. This is bad practice and we encourage ISVs not to do this. When a surface is deleted, the memory associated with that surface cannot be released until all the rendering that is using that surface is complete. The naive approach to this problem is to wait in the software for the rendering to finish, then free the memory, then continue—which is death to performance.

In our Windows XP drivers we work around this issue by queuing these deletes and servicing them later when they are no longer in use. For Windows Vista, we asked Microsoft to handle this on the OS side of the driver model where a single solution would work for all IHVs. But as the schedule tightened leading up to release, it did not get implemented on the OS side. So now we are working on a solution for this issue in our Windows Vista drivers. We cannot just port our Windows XP solution due to the driver model changes, but we will have it solved in the next couple of driver releases. Unfortunately, each IHV will now have to handle this separately. And of course, this will be considered by most to be a driver bug fix :-).

ExtremeTech: It sounds like this surface deletion problem may be what is holding back performance in F.E.A.R. Can you name any particular games that suffer greatly from this problem, or give us any other specific examples like that one?


Rogers: Actually, F.E.A.R. was a different issue. Our initial Vista D3D driver was missing some multithreading optimizations, due to some churn in the multithreading model leading up to Vista RTM. You will be happy to learn that we have restored performance parity on F.E.A.R. in our Catalyst release for March.
Far Cry is the most visible app that is affected by the surface deletion problem. This may seem surprising, given that Crytek has some of the smartest minds in the world of game development. But given that Windows XP drivers have been handling delayed deletes for years, neither Crytek nor the IHVs would have even noticed this as a performance issue when Far Cry was being developed. Continued...


ExtremeTech: The Vista driver, beginning with Catalyst 7.1, contains a "re-architected" OpenGL driver component. Exactly what is "re-architected" about it?

Rogers: Everything. This is a completely new driver, written from scratch in the last three years. The new OpenGL driver does re-use the same shader compiler as the previous driver. We actually use the same shader compiler in all our drivers: Direct3D, OpenGL and CTM. It is a policy, or at least a tradition, in our software group to write a new driver for each component about every 5-7 years.

ExtremeTech: Why make the switch in the Vista driver, and not the XP one? Can XP users expect to get this new re-architected driver in the future?

Rogers: The new OpenGL driver has been designed from the ground up for Windows Vista, Windows XP and Linux and internally we are running and testing it on all three (or six if you count the 64 bit versions). As we planned the transition to the new OpenGL driver, it did not make sense to port the previous OpenGL driver to Vista. So as Vista approached, it naturally became the launch vehicle for the new driver and its highest priority. The XP and Linux versions of this new OpenGL driver will ship later this year.


ExtremeTech: Catalyst Control Center was a big step forward for the company in making graphics drivers easier to use, but it's getting a little old now. Is a stand-alone, relatively complicated application like CCC outdated? Even if it'll be around for awhile, what's your "big picture" vision for its replacement?

Rogers: The Catalyst Control Center still has a lot of life in it. We just recently released a re-architected version of the Catalyst Control Center for Windows XP and Windows Vista, which offers significant performance improvements, as well as a new 3D preview. We will also continue to add a number of new features to the Catalyst Control Center through out the year, which will make the Catalyst Control Center a very compelling product. On the Linux front we will also be releasing a new version of the Catalyst Control Center quite soon (and as with the Windows version of CCC we will continue to add a number of new features this year and next). Longer term our goal is continue to improve the user experience and to move towards a single or central user interface where AMD customers can configure the majority of AMD product settings.

ExtremeTech: So the goal is that, at some point in the future, we'll have what ammounts to a single "Catalyst Control Center" for controlling not only our AMD graphics card, but our AMD chipset motherboard and AMD CPU as well? That would be pretty exciting for enthusiasts that love to tweak their systems.

Rogers: Yes it is our goal and vision to eventually have a single UI for all AMD products (graphics, CPU, chipset), but this is of course a major project, and it will be quite some time before we're able to release such a product.

ExtremeTech: During Vista's development, we were often told that the new driver model meant no more rebooting just to update the graphics driver. We're still asked to reboot, though. What happened with that?

Rogers: Actually, users can install our Catalyst Vista driver without rebooting at the end of the installation process. The slight complication is related to the Catalyst Control Center. Without a reboot, the Catalyst Control Center will work for the user account that installed the Catalyst Control Center only, but due to the Vista security policy, CCC would not be able to run in other user accounts. So to avoid this issue we currently reboot the system after the Catalyst Control Center has been installed. That being said, we plan on making some changes to the Catalyst installer such that if only one user account is active and running, we will not require users to reboot after installing Catalyst. Continued...


ExtremeTech: Driver release notes often indicate better performance in 3DMark. Why optimize for synthetic benchmarks, other than to get better reviews? What's the benefit to the consumer?


Rogers: We get asked this a lot. Actually our Catalyst release notes mention performance gains on a range of games and benchmarks and we spread our performance optimization efforts across the whole set. While our priority is always to improve game performance with our drivers, benchmarks do serve a useful purpose in measuring GPU performance and some are better than others at translating directly to game performance. Web reviews are, hopefully, beneficial to consumers in helping them decide which products to buy.

ExtremeTech: I'm speaking in general terms here, not specifically about AMD/ATI products. But users have noticed decreased video quality in Vista, relative to using the same hardware in XP. Does Vista pose certain specific challenges and changes to video acceleration that have yet to be overcome?

Rogers: Vista poses new challenges to video acceleration as it adds new render paths within the OS. With any new technology there are inital growing pains. XP had been used for the past 6 years, and as a result was optimized. In time, Vista's video playback will be optimized as well.

ExtremeTech: It has been five months since ATI's "Stream Computing Event," showcasing the use of your graphics cards for certain general purpose computing tasks. All we've really seen since then is a beta of the Folding @ Home client. Where's our GPU-accelerated video encoders from major vendors? Where are our games with GPU-accelerated physics? We've been hearing about that for a year.

Rogers: The concept of using the GPU for non-graphical functions is still quite new and will take third party companies some time to develop complete solutions that really take advantage of the parallel processing power of AMD GPUs. Applications developers require a robust development environment that allows not only, the creation of new applications, but also their maintenance. AMD is working with this industry to provide the tools infrastructure to enable more Stream Computing applications in the future. That being said, AMD has put a significant amount of time into developing drivers for physics support and developing tools that third party companies can work with to support GPGPU applications (we are currently working with a number of companies on this initiative). You'll definitely see applications later this year and next that take advantage of AMD's Stream Computing. Continued...


ExtremeTech: Part of what makes Vista interesting for gamers is of course DirectX 10. AMD won't have a DX10 part until R600, which has just been pushed back 6-8 weeks. We know it's company policy not to give details about unreleased products, but perhaps you can tell us what the biggest challenges are in developing a driver for R600.

Rogers: Sorry, I really cannot comment on unreleased products. I can say though that developing for DX10 has been both an exciting and challenging endeavor. To begin with, DX10 is very far reaching and a radical departure from DX9. Then a new operating system, new hardware and new DirectX API/DDI all on the same product has made for a "perfect storm" in terms of development intensity. But it will be well worth the wait!


ExtremeTech: DirectX 10 is a significant step in the evolution of graphics APIs, but it certainly doesn't incorporate everything developers or hardware makers want. What big changes would you like to see in DX10's successor – say two years down the road?

Rogers: Well, I believe we still have 10+ years of active development left in GPU architecture before we come close to catching up with offline rendering for movies. So there is lots of scope. However it is way too soon to look beyond DX10 in terms of game usage of graphics. Frankly we have seen very few games yet make full use of DX9 shader model 3.0. And DX10 game development is still in its infancy. I think you, ISVs and gamers are going to be amazed once ISVs really get DX10 fully utilized and showing its power and flexibility.

That said, we are already engaged with ISVs and Microsoft to look beyond DX10. Everyone has their laundry list of features so now we have to hammer it down to the next feature set. Nothing ever stays still in this business.

ExtremeTech: You mentioned that everyone has their "laundry list" of desires for future DirectX features, and of course we don't expect that they'll all end up in there. But can you tell us what's on the top of your own personal list?

Rogers: My personal requests in this area are to change some of the remaining fixed function pieces of the GPU pipeline to be programmable. Clearly as we have made major parts of the GPU programmable in previous DirectX releases it has opened up the GPU to a much wider variety of applications. Making more of the pipeline programmable will continue that trend as well as allowing for richer graphics effects. It is tricky though, since we have to add programmability for non-graphics applications in a way that does not impede performance for traditional graphics usage.

http://www.extremetech.com/
2#
发表于 2007-3-15 12:20 | 只看该作者
满屏E文,帮顶好了。。。:loveliness:
回复 支持 反对

使用道具 举报

3#
发表于 2007-3-15 14:21 | 只看该作者
phil Roger 还是比较低调的,不太听到。
回复 支持 反对

使用道具 举报

cleak 该用户已被删除
4#
发表于 2007-3-15 14:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

potomac 该用户已被删除
5#
发表于 2007-3-15 14:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

6#
发表于 2007-3-15 14:48 | 只看该作者
为什么都是米文?LZ把重要的翻译一下哈
回复 支持 反对

使用道具 举报

头像被屏蔽
7#
发表于 2007-3-15 14:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

8#
发表于 2007-3-15 16:01 | 只看该作者
原帖由 Elwin 于 2007-3-15 15:46 发表
以AMD的实力,10年可能还不够:lol:

也就是说,以intel的实力,不到10年就可以实现了?
回复 支持 反对

使用道具 举报

9#
发表于 2007-3-15 16:02 | 只看该作者
太久了:loveliness:
回复 支持 反对

使用道具 举报

10#
发表于 2007-3-15 16:06 | 只看该作者
这篇访谈好像主要讲vista的驱动和游戏的啊
回复 支持 反对

使用道具 举报

11#
发表于 2007-3-15 16:13 | 只看该作者
所谓的实时CG画质渲染还很远……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-24 22:40

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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