• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

DirectX® 12 for Enthusiasts: Explicit Multiadapter

Soldato
Joined
25 Nov 2011
Posts
20,679
Location
The KOP
Excellent read here: some things new
It may surprise you to learn…

DirectX® 12 is the very first version of the DirectX® API that has specific features, techniques tools to support multi-GPU (mGPU) gaming. If you are indeed surprised, follow us as we take a trip through the complicated world of mGPU in PC gaming and how DirectX® 12 turns some classic wisdom on its head.

MULTI-GPU TODAY
Modern multi-GPU gaming has been possible since DirectX® 9, and has certainly grown in popularity during the long-lived DirectX® 11 era. Even so, many PC games hit the market with no specific support for multi-GPU systems. These games might exhibit no performance benefits from extra GPUs or, perhaps, even lower performance. Oh no!

Our AMD Gaming Evolved program helps solve for these cases by partnering with major developers to add mGPU support to games and engines—with resounding success! For other applications not participating in the AMD Gaming Evolved program, AMD has talented software engineers that can still add AMD CrossFire™ support through a driver update.1

All of this flows from the fact that DirectX® 11 doesn’t explicitly support multiple GPUs. Certainly the API does not prevent multi-GPU configurations, but it contains few tools or features to enable it with gusto. As a result, most games have used a classic “workaround” known as Alternate Frame Rendering (AFR).

HOW AFR WORKS
Graphics cards essentially operate with a series of buffers, where the results of rendering work are contained until called upon for display on-screen. With AFR mGPU, each graphics card buffers completed frames into a queue, and the GPUs take turns placing an image on screen.

AFR is hugely popular for the framerate gains it provides, as more frames can be made available every second if new ones are always being readied up behind the one being seen by a user.

But AFR is not without its costs, as all this buffering of frames into long queues can increase the time between mouse movement and that movement being reflected on screen. Most gamers call this “mouse lag.”

Secondly, DirectX® 11 AFR works best on multiple GPUs of approximately the same performance. DirectX® 11 frequently cannot provide tangible performance benefits on “asymmetric configurations”, or multi-GPU pairings where one GPU is much more powerful than the other. The slower device just can’t complete its frames in time to provide meaningful performance uplifts for a user.

Thirdly, the modest GPU multi-threading in DirectX® 11 makes it difficult to fully utilize multiple GPUs, as it’s tough to break up big graphics jobs into smaller pieces.

INTRODUCING EXPLICIT MULTI-ADAPTER
DirectX® 12 addresses these challenges by incorporating multi-GPU support directly into the DirectX® specification for the first time with a feature called “explicit multi-adapter.” Explicit multi-adapter empowers game developers with precise control over the workloads of their engine, and direct control over the resources offered by each GPU in a system. How can that be used in games? Let’s take a look at a few of the options.

SPLIT-FRAME RENDERING
New DirectX® 12 multi-GPU rendering modes like “split-frame rendering” (SFR) can break each frame of a game into multiple smaller tiles, and assign one tile to each GPU in the system. These tiles are rendered in parallel by the GPUs and combined into a completed scene for the user. Parallel use of GPUs reduces render latency to improve FPS and VR responsiveness.

Some have described SFR as “two GPUs behaving like one much more powerful GPU.” That’s pretty exciting!

Trivia: The benefits of SFR have already been explored and documented with AMD’s Mantle in Firaxis Games’ Sid Meier’s Civilization®: Beyond Earth™.

ASYMMETRIC MULTI-GPU
DirectX® 12 offers native support for asymmetric multi-GPU, which we touched on in the “how AFR works” section. One example: a PC with an AMD APU and a high-performance discrete AMD Radeon™ GPU. This is not dissimilar from AMD Radeon™ Dual Graphics technology, but on an even more versatile scale!2

With asymmetric rendering in DirectX® 12, an engine can assign appropriately-sized workloads to each GPU in a system. Whereas an APU’s graphics chip might be idle in a DirectX® 11 game after the addition of a discrete GPU, that graphics silicon can now be used as a 3D co-processor responsible for smaller rendering tasks like physics or lighting. The larger GPU can handle the heavy lifting tasks like 3D geometry, and the entire scene can be composited for the user at higher overall performance.

4+4=8?
In the world of DirectX® 9 and 11, gamers are accustomed to a dual-GPU system only offering one GPU’s worth of RAM. This, too, is a drawback of AFR, which requires that each GPU contain an identical copy of a game’s data set to ensure synchronization and prevent scene corruption.

But DirectX® 12 once again turns conventional wisdom on its head. It’s not an absolute requirement that AFR be used, therefore it’s not a requirement that each GPU maintain an identical copy of a game’s data. This opens the door to larger game workloads and data sets that are divisible across GPUs, allowing for multiple GPUs to combine their memory into a single larger pool. This could certainly improve the texture fidelity of future games!

WRAP-UP
A little realism is important, and it’s worth pointing out that developers must choose to adopt these features for their next-generation PC games. Not every feature will be used simultaneously, or immediately in the lifetime of DirectX® 12. Certainly DirectX® 11 still has a long life ahead of it with developers that don’t need or want the supreme control of 12.

Even with these things in mind, I’m excited about the future of PC gaming because developers already have expressed interest in explicit multi-adapter’s benefits—that’s why the feature made it into the API! So with time, demand from gamers, and a little help from AMD, we can make high-end PC gaming more powerful and versatile than ever before.

And that, my friends, is worth celebrating!

Robert Hallock is the Head of Global Technical Marketing at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.
https://community.amd.com/community...r?hootPostID=93cda05897016216c639de09b83b3798
 
SFR is nothing new and not something that DX12 will revolutionise outside of very specific scenarios (none the least lucid is a good example of this).

The useful stuff is the fact you can much easier abstract and composite different elements of a game in a useful way i.e. as an example completely farm UI rendering to a separate GPU to the one doing the scene rendering - often games have to reduce the update rate of the UI to keep performance up for a variety of reasons.

Agreed..
The fact you could force other GPU to do other tasks could very well force some breathtaking visuals.
 
Welcome to the 1990s.


There are probably some scenarios where tasks separation could make sense. Lets say your have some kind of RTS and you have split screen mode showing 2 different battles or the same battle form 2 different views (top down and on the ground), then each separate view could be rendered on a different GPU.

But for the most part, it wont make much different. Split frame rendering was tried and failed. The smaller you make the tiles the more overhead there is and the larger the tiles the greater the variance between GPU loads (a GPU might get lots of tiles of quickly rendered surfaces with minimal fragment shading). With AFR the frame to frame difference is minimal so each frame has the same work load
If you think in that link SFR is the thing that gets me excited for the future of pc gaming you be very wrong. Read again.
 
Well shared resources are an absolute no go anyway, PCI-E is far too slow, so no 2 x 4GB FuryX's are still going to have a copy of each resource on both GPUs.

But why would Microsoft go through the effort of adding asymmetric multi-GPU into the DirectX 12 API if how you put it something that can't be done?

Has Robert Said
Even with these things in mind, I’m excited about the future of PC gaming because developers already have expressed interest in explicit multi-adapter’s benefits—that’s why the feature made it into the API! So with time, demand from gamers, and a little help from AMD, we can make high-end PC gaming more powerful and versatile than ever before.
 
Perhaps Microsoft looked in their crystal ball and realised in 10 years time people will be refusing to upgrade from Win 10 lol.:D

:D
They must be some use for it though. I Doubt MS would add something that wasn't possible to get working..
Who knows what the future holds in the PC scene, I predict big changes in the next couple years.
 
I think the issue with any Multi-GPU tech and really taking advantage of it is that you can't guarantee that everyone will have it. So I think we're unlikely to see anything new because of multi-GPU, the best we can really hope for is that it does what it always did better.

The game has to be doable on 1 GPU, so the only thing 2 can add is speed/performance. Which really isn't anything new.

In fact the game doesn't need to be doable on 1 GPU, the game needs to be doable on an XBOX ONE. Anything that can't be done on an XBOX ONE probably won't make it into the game.

So I really can't see any fancy new effects being added because of multi-GPU unless it's a PC only game. Even then most will run it on a single GPU so unlikely to see anything on multi-GPUs that can't be done on 1.

Just because they could do something, doesn't mean they will. The people that actually do these things rarely control the purse strings or timelines for the games they make.
If, in order to release on-time and in budget, you have to choose between cutting out the last level of your game or this neat effect that a tiny minority of your customers can use/see, which are you gonna drop?

Not really think of it another way and not just about adding performance..

Lets say one GPU on Battlefield 5 gets you Ultra graphics but when you add in another GPU you then can get Ultra+
What Ultra+ might add is better Graphics being rendered on 2nd GPU for example 2nd GPU doing only Effects

They is a lot of things am thinking of right now that could work very well..
 
Mantle was out for what, 18 months? And we had what 7, 8, maybe 9 games?
We didn't see any new effects from Mantle that I'm aware of.

We saw more new effects from TressFX, HairWorks and PhysX than we did Mantle.

The stuff they can add will be minor as they can't drastically change the experience from what everyone else sees.
Sure they can add more particles to an explosion or something but it'll just be tweaks on something we already have, not something new.

What effects do you imagine they could add that would be worthwhile?

The difference here is everyone can now use DirectX 12 Devs now have more of a reason to push games forward.. Mantle was AMD only only two games pushed something new under Mantle and that was SFR in Civilization Beyond Earth first game I believe to support it officially and Thief used some crossfire Mantle tech but I forget the name sure AMDmatt will help me here.

Back to DirectX 12 though after all this not a Mantle thread.
They is loads of Graphics that are very demanding that a game will benefit from using on another GPU almost all demanding Shadow effect at much higher details, or Smoke effect and Particles or even just Draw Distance

You correct about, not everyone will see the same effects if they dont support the hardware but dont we already have this now? on BF4 I can switch down settings or enable settings other players might not be running why this any different?

Real-time Ray-based GI on the second card? :P

Still waiting on someone to do Wave based 3D surround using the TrueAudio DSP's like Aureal did with their own 3D sound cards in the 90's.

Yeah even that man very demanding! They is all kinds I would love too see! :D
 
Last edited:
It has been added largely for compute reasons.

It is also probably. Of. Ich effort to add to the API of rate odd occasion it could be useful. But ther are some basic facts that simply can't be argued with, if both GPUs need access to the same texture then that texture will need to be duplicated in each GPU's VRAM.

Guess time will tell then.. I firmly believe PC gaming is due a massive overhaul.
 
But wouldn't most of the things you've listed be possible with more GPU power anyway?
It all seems like it's just pushing current effects a little bit harder. It seems the big need to do that is more GPU power, not the ability to use 2 cards independently.

You sorta made my point, as we currently already have, these things seem like superficial effects that don't really affect the games that much. I don't see how the things you've listed are going to be Earth shatteringly game changing.

Same could be said about multi GPUs and frame rate, what the point in crossfire or sli if all we need is a more powerful GPU..

Maybe the effects you can take advantage of here would need pure GPU power to perform and without reducing performance on the other GPU the second GPU performance these highly demanding tasks.
 
He doesn't know and doesn't care, it just more AMD PR that is making him wet with exvitement

Bah, Bah, bah, bah, bah, bah

Nothing to do with AMD at all.. Everything am excited about will run on nvidia or amd reason it's DirectX 12

Go troll elsewhere Mr green.
 
But weren't you looking forward to these features?
If you don't know how they can be used that just seems overly optimistic...

You get an idea of what can be done and I have expressed that enough already.. Will this be used how I see it I Don't KNOW the bloody answer.

Like I said who knows what's around the corner for all we know amd and nvidia could be working on something big that will allow all this to be added to games..

Another API also supports this and was talked about when it was released if you want to do more research use Google to find out what could happen in the future.
 
I have no idea what can be done. Well that couldn't be done with multiple GPUs anyway. Except performance, although I'm still not sure how using 1 GPU for 1 thing and another for something else will be any better than using them both for the same thing.

It just seems like excitement over something we don't really know the potential of for the sake of getting excited over something. Or creating another DX12 thread...

I sometimes think people would get excited if there were reports Microsoft had added a MacGuffin shader and Placebo Engine to DX12...
No idea what they can do or if they do anything useful, but they're new so let's hype it up and get excited!

Man I feel like I go around in circles with you sometimes.

OK I'll say again the reason why this could be a big thing.
Let's use something else SSAA very demanding kills performance. Now what would happen if you forced GPU2 to only be used for SSAA while the other GPU went along doing its normal things.
You wouldn't get the performance hit from running it all on one GPU.

Another uses could be a great level of real time lighting, or just physic based stuff.
They is countless things I can think of that this could be used..
We know what it can do, it's been talked about before from another api development. The question I don't know the answer for is what devs will choose to do with it.
 
Back
Top Bottom