AMD Radeon DirectX 11 Multithreaded Rendering

Haider

Member
May 15, 2008
63
0
0
Hi,

Wondering what's the delay with AMD getting this running on their GCN cards. I know there aren't many games that support it but not many games were multi-threaded until multicore CPUs were common place. My Radeon HD 7950 950MHz is waiting to be maxed out by the Intel 4 core i5 OC to 3.6GHz. I have Windows 8/DirectX installed ready to go...What's the beef with AMD?


Thanks
Haider
 

Despoiler

Golden Member
Nov 10, 2007
1,967
772
136
It's not really a delay more a conscious decision not to implement it. At least that is my recollection. It doesn't really matter with Mantle incoming.
 

bystander36

Diamond Member
Apr 1, 2013
5,154
132
106
It's not really a delay more a conscious decision not to implement it. At least that is my recollection. It doesn't really matter with Mantle incoming.

It would be a useful tool even with Mantle, but it would have to be implemented in Mantel to work. The only problem with only doing it in Mantle would be that most game will not support it. At least not for a vary long time.
 

blackwhiskers

Member
Jan 6, 2013
72
0
0
isn't multithreaded anything a thing that has to be supported and used by game developers? or are we talking about some superspecific directx11 feature?
 

zlatan

Senior member
Mar 15, 2011
580
291
136
isn't multithreaded anything a thing that has to be supported and used by game developers? or are we talking about some superspecific directx11 feature?
It's not superspecific but only Civ5 and AC3 support DC. Really hard to implement it well, and sometimes it will lead to reduced performance.
Manual threading with IC can be a better solution.
 

Maximilian

Lifer
Feb 8, 2004
12,604
15
81
Erm, this needs to be implemented on the game level. AMD and NV already support it.

Civ 5 is one game that uses DX11 multi-threading.

I remember people saying AMD didn't support it in their drivers or something... this was more than a year ago though.
 

Imouto

Golden Member
Jul 6, 2011
1,241
2
81
Hi,

Wondering what's the delay with AMD getting this running on their GCN cards. I know there aren't many games that support it but not many games were multi-threaded until multicore CPUs were common place. My Radeon HD 7950 950MHz is waiting to be maxed out by the Intel 4 core i5 OC to 3.6GHz. I have Windows 8/DirectX installed ready to go...What's the beef with AMD?


Thanks
Haider

Communism is that you?

Where does ppl get these ideas?
 

Haider

Member
May 15, 2008
63
0
0
isn't multithreaded anything a thing that has to be supported and used by game developers? or are we talking about some superspecific directx11 feature?

From the AnandTech article: -
On that note, for those of you who have been asking about support for D3D11 Driver Command Lists – an optional D3D11 feature that helps with multithreaded rendering and is NVIDIA’s secret sauce for Civilization V – AMD has still not implemented support for it as of this driver.

From MS website: -
Command lists can be created on multiple threads — A command list is a recorded sequence of graphics commands. With Direct3D 11, you can create command lists on multiple CPU threads, which enables parallel traversal of the scene database or physics processing on multiple threads. This frees the main rendering thread to dispatch command buffers to the hardware.

Command Lists are purely a CPU core side thing, the difference is between letting the DX11 runtime cache the commands or letting the driver cache them and optimise them. This is what the AMD Radeon driver fails to support.

Significance of this omission is that the Radeon graphics driver would better be able to optimise this process for Radeon GPUs.
 
Last edited:

Haider

Member
May 15, 2008
63
0
0
It's not really a delay more a conscious decision not to implement it. At least that is my recollection. It doesn't really matter with Mantle incoming.

Mantle is a low-level API; D3D is a high-level API; They are complementary. Just because assembler exists doesn't mean C/C++ and Java are dead.
 
Last edited:

blackwhiskers

Member
Jan 6, 2013
72
0
0
they are not complementary in the sense that both are graphics APIs. you won't be running d3d and mantle at the same time.
 

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
It's not superspecific but only Civ5 and AC3 support DC. Really hard to implement it well, and sometimes it will lead to reduced performance.
Manual threading with IC can be a better solution.

This is true. I've just recently changed my game engine to use multi threading with DC, but there is a lot of gotchas with it. I'm currently working through the issues, but at this time it's cut down on performance almost two fold (120 fps vs. 300fps I had with IC) I believe in the long run and when the engine starts rendering more, it will be a benefit. But for games with simple graphics (I have a small amount of polygons), it will be a detriment.

I still like it though. It's nice to render the GUI and such in a DC and watch the CPU usage go up across cores.

(I should run it on my gaming machine - see sig - as my dev laptop uses Nvidia, so I'm not sure what the performance difference is with ATI)
 

Haider

Member
May 15, 2008
63
0
0
they are not complementary in the sense that both are graphics APIs. you won't be running d3d and mantle at the same time.

A developer that doesn't want the hassle/cost of low-level coding is going to stick at high-level coding. There are many reason why people choose to develop at the high-level and performance compared to low-level has always been sacrificed. On the Commodore VIC-20, 64 and Amiga games were written completely in assembler. Guess how many games are written in assembler now...
 

blackwhiskers

Member
Jan 6, 2013
72
0
0
yeah, I get what you're saying. I would call that "alternatives", though, not complementary.

and mantle is said to be hlsl compatible, so the comfort of high level shader coding might still be there. we'll just have to wait and see.
 

bystander36

Diamond Member
Apr 1, 2013
5,154
132
106
Mantle is a low-level API; D3D is a high-level API; They are complementary. Just because assembler exists doesn't mean C/C++ and Java are dead.

As said before, Mantle is its own API and does not run along side D3D.

Also, a lot of people seem to have missed this, Mantle is not only a low level API, it has all the high level stuff too. You will likely see it being used with its high level features more, with a few low level stuff sprinkled in. At least until dev's learn how to take advantage of the low level stuff.
 

lamedude

Golden Member
Jan 14, 2011
1,214
19
81
DriverThreading.png

So we get Mantle and a tweet saying for OpenGL API won't be the bottleneck yet D3D11 can't get a 4 year old feature.
AMD is crippling D3D to hurt Nvidia⸮
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
145
106
Another example of AMD poor DX implementation.

bf4_cpu_radeon.png

bf4_cpu_geforce.png


Seems Mantle is rather a (bad) solution for the problems AMD cant fix contra nVidia. Pretty ironic to see AMD own CPUs perform better with nVidia cards.
 

Skurge

Diamond Member
Aug 17, 2009
5,195
1
71
Another example of AMD poor DX implementation.

bf4_cpu_radeon.png

bf4_cpu_geforce.png


Seems Mantle is rather a (bad) solution for the problems AMD cant fix contra nVidia. Pretty ironic to see AMD own CPUs perform better with nVidia cards.

Making conclusions from a beta? Nice.
 

Carfax83

Diamond Member
Nov 1, 2010
6,841
1,536
136
Seems Mantle is rather a (bad) solution for the problems AMD cant fix contra nVidia. Pretty ironic to see AMD own CPUs perform better with nVidia cards.

Wow, that's a pretty big difference in performance. But BF4 doesn't use DX11 multithreading, so why does NVidia have such a massive lead; especially with the FX-8350?

It seems as though NVidia has optimized it's drivers for BF4, specifically with regard to multithreading, much better than AMD has.

So is the game engine multithreading that exists in CryEngine 3, Frostbite 3 etcetera superior to the DirectX 11 API multithreading?

Which one is better? Can someone explain it to me?
 

Kenmitch

Diamond Member
Oct 10, 1999
8,505
2,250
136
Wow, that's a pretty big difference in performance. But BF4 doesn't use DX11 multithreading, so why does NVidia have such a massive lead; especially with the FX-8350?

It seems as though NVidia has optimized it's drivers for BF4, specifically with regard to multithreading, much better than AMD has.

So is the game engine multithreading that exists in CryEngine 3, Frostbite 3 etcetera superior to the DirectX 11 API multithreading?

Which one is better? Can someone explain it to me?

Or AMD is waiting for the final code to optimize it's drivers. I guess it's possible they are holding back the official optimized drivers for the 290/290x release also....Who knows at this point.
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
145
106
Wow, that's a pretty big difference in performance. But BF4 doesn't use DX11 multithreading, so why does NVidia have such a massive lead; especially with the FX-8350?

It seems as though NVidia has optimized it's drivers for BF4, specifically with regard to multithreading, much better than AMD has.

So is the game engine multithreading that exists in CryEngine 3, Frostbite 3 etcetera superior to the DirectX 11 API multithreading?

Which one is better? Can someone explain it to me?

Or AMD is waiting for the final code to optimize it's drivers. I guess it's possible they are holding back the official optimized drivers for the 290/290x release also....Who knows at this point.

Look at the post above mine. AMD simply doesnt support DX11 Command List function. And its a function that multithreaded rendering depends largely on. So AMD doesnt support multithreading at the driver level yet. And I feel if Mantle does, that we gonna get some very screwed results instead of AMD just fixing their DX driver to nVidias performance level.

Command lists can be created on multiple threads — A command list is a recorded sequence of graphics commands. With Direct3D 11, you can create command lists on multiple CPU threads, which enables parallel traversal of the scene database or physics processing on multiple threads. This frees the main rendering thread to dispatch command buffers to the hardware.
 
Last edited:

Carfax83

Diamond Member
Nov 1, 2010
6,841
1,536
136
Look at the post above mine. AMD simply doesnt support DX11 Command List function. And its a function that multithreaded rendering depends largely on. So AMD doesnt support multithreading at the driver level yet. And I feel if Mantle does, that we gonna get some very screwed results instead of AMD just fixing their DX driver to nVidias performance level.

Yeah, but the game still has to support the Command List function for it to work properly, and as far as I know, BF4 doesn't support it. I know BF3 didn't..

The benchmarks definitely show something going on though with regard to multithreading in the drivers.
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
145
106
Yeah, but the game still has to support the Command List function for it to work properly, and as far as I know, BF4 doesn't support it. I know BF3 didn't..

The benchmarks definitely show something going on though with regard to multithreading in the drivers.

The performance delta in Civ V looks similar to BF4.
 

Stuka87

Diamond Member
Dec 10, 2010
6,240
2,559
136
Wow, that's a pretty big difference in performance. But BF4 doesn't use DX11 multithreading, so why does NVidia have such a massive lead; especially with the FX-8350?

It seems as though NVidia has optimized it's drivers for BF4, specifically with regard to multithreading, much better than AMD has.

So is the game engine multithreading that exists in CryEngine 3, Frostbite 3 etcetera superior to the DirectX 11 API multithreading?

Which one is better? Can someone explain it to me?

You are confused. Game engine multi-threading has nothing to do with DX11 multi-threading. One is for normal game engine stuff, one is for multi-threading driver calls.