Game Dev Talking about DX, Vulkan, Mantle and multi GPU amongst others

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

itsmydamnation

Platinum Member
Feb 6, 2011
2,866
3,418
136
I'm not sure what you are trying to say here... Is it the fault of the game developer, the engine developer, or the driver? What needs to be updated for newer cards to work?
Ball is in the court of DICE, they have access to memory management and they aren't memory managing the 285 ideally, it being managed like its "first gen GCN".

it could be an issue with the way they coded mantle support ( eg. hard coded things that need to be variable) or it could just be that now DICE is focused on the engine the people focused on BF4 dont care enough.
 

mindbomb

Senior member
May 30, 2013
363
0
0
What I want to know is, can we expect something similar with DX12 and new cards? What is the issue with the 285 and Mantle, who is responsible, and why hasn't it been mitigated? My guess is it lies on the engine developers, or the game developers. I haven't heard of any problems with the 285 and Civ:BE or DAI using Mantle, but I couldn't find many reviews. I wanted to check for an update from Anandtech on this, but they didn't review the 960 and the Titan X review doesn't include the 285.

Sorry if this seems off-topic, but can you imagine a newer, faster card getting released but is shown as slower in DX12 games because "whatever" hasn't been updated yet?

It's just a vram problem. I'm pretty confident a 4GB 285 would have no such issue. The textures are larger in mantle and it uses different memory management, the end result being that the ultra settings of mantle target 3-4GB, and the ultra settings of dx targets 2-3GB. Depending on the benchmark, there's even a chance that a 2GB card comes out unscathed in directx. Once you are out of vram, you run into huge pci express bottlenecks, and that's where you lose all your performance.

This is essentially user error, since it is your responsibility to choose appropriate settings for the hardware you have. For reviewers, perhaps it is more of an issue, since they start out with high end gear, and then have to use the same settings on budget gear for continuity's sake.
 

xthetenth

Golden Member
Oct 14, 2014
1,800
529
106
There's nothing surprising in that post and it confirms that low level APIs aren't viable. If AAA games are shipping broken now, that's going to increase tenfold when the driver complexities needed to deal with them are shifted onto game developers.

He says the end result "just works". Sure, as long as it's running on the hardware he originally coded it for. But what happens on future hardware? Is he expecting the whole software industry to constantly patch their games whenever new nVidia/AMD/Intel hardware arrives? We've already seen Thief and BF4 broken with Mantle and the 285.

Low level APIs are only viable for fixed/embedded hardware (e.g. consoles) or back in the primitive days of DOS.

I expect DX12 will have more impact than Mantle/Vulcan simply because of its exposure, but DX11 is going to remain overwhelmingly widespread for the reasons above. No customer is going accept all of their games breaking (which includes running slower than they did before) whenever they buy a new graphics card.

Have you ever programmed into an ill-understood black box before? It sucks massively and is hugely less productive to hit a general level of working/performing than doing much more work into a white box.
 

96Firebird

Diamond Member
Nov 8, 2010
5,712
316
126
Ball is in the court of DICE, they have access to memory management and they aren't memory managing the 285 ideally, it being managed like its "first gen GCN".

it could be an issue with the way they coded mantle support ( eg. hard coded things that need to be variable) or it could just be that now DICE is focused on the engine the people focused on BF4 dont care enough.

Saying it is in DICE's hands, do you mean them as the engine developer or the game developer? Visceral Games developed BF Hardline, using DICE's FB3 engine.
 

itsmydamnation

Platinum Member
Feb 6, 2011
2,866
3,418
136
Saying it is in DICE's hands, do you mean them as the engine developer or the game developer? Visceral Games developed BF Hardline, using DICE's FB3 engine.

It is DICE, this is rendering engine code. With mantle just like the consoles the dev has far more control over the movement of data. Remember executing data is cheap and easy, moving data is hard and expensive. The advantage of mantle/DX12/Vulkan over DX11/big driver is that while the driver has to act for the worst case a engine developer doesn't(they are in control end to end).

Now what remains to be seen is just how seamless a detection of ALU's/registers/ memory bandwdith etc can be made and have the engine manage memory in the ideal way based of those inputs. From what Dave has said in bf4 they aren't doing that at all.
 
Dec 30, 2004
12,554
2
76
I wonder if Mantle/DX12 will close the performance gap between consoles and what PCs were capable of pulling off.
 

3DVagabond

Lifer
Aug 10, 2009
11,951
204
106
I wonder if Mantle/DX12 will close the performance gap between consoles and what PCs were capable of pulling off.


If you are talking draw calls then yes, that's mostly what it's for. It will allow much easier porting of console games because they won't have to optimize the draw calls for the PC.

GPU's have just advanced so much faster than CPU's lately that the bottleneck for games was being shifted to the CPU. Unless you wanted to use some real high AA setting or lighting setting or something to simply load down the GPU.
 
Dec 30, 2004
12,554
2
76
If you are talking draw calls then yes, that's mostly what it's for. It will allow much easier porting of console games because they won't have to optimize the draw calls for the PC.

GPU's have just advanced so much faster than CPU's lately that the bottleneck for games was being shifted to the CPU. Unless you wanted to use some real high AA setting or lighting setting or something to simply load down the GPU.

to the code. The bottleneck is shifting to the code. IMO
 

Pottuvoi

Senior member
Apr 16, 2012
416
2
81
I wonder if Mantle/DX12 will close the performance gap between consoles and what PCs were capable of pulling off.
When considering DX12 at least most of it, draw calls and general efficiency of API.

Mantle and Vulkan should get even closer and may even allow developers to use all 'hidden' features of GPUs.
It's certainly great news that Frostbite will be fully ported to Vulkan, we might see some interesting thing. (I wonder if they leave the DX11 path..)
 

Red Hawk

Diamond Member
Jan 1, 2011
3,266
169
106
There's nothing surprising in that post and it confirms that low level APIs aren't viable. If AAA games are shipping broken now, that's going to increase tenfold when the driver complexities needed to deal with them are shifted onto game developers.

He says the end result "just works". Sure, as long as it's running on the hardware he originally coded it for. But what happens on future hardware? Is he expecting the whole software industry to constantly patch their games whenever new nVidia/AMD/Intel hardware arrives? We've already seen Thief and BF4 broken with Mantle and the 285.

Low level APIs are only viable for fixed/embedded hardware (e.g. consoles) or back in the primitive days of DOS.

I expect DX12 will have more impact than Mantle/Vulcan simply because of its exposure, but DX11 is going to remain overwhelmingly widespread for the reasons above. No customer is going accept all of their games breaking (which includes running slower than they did before) whenever they buy a new graphics card.

I don't think it confirms that they are unviable -- developers wouldn't be pushing for this if they weren't prepared for the logical consequences -- but that does seem to be the potential downside of low level APIs that few people are talking about. It sounds like the responsibility for optimizing for new hardware under low level APIs shifts from the IHVs and drivers to the game itself, and thus the game developers. AMD and Nvidia have been consistent with keeping their drivers optimized for individual games, because they need to keep performance up as a selling point. Game developers don't have that motivation, most of their sales happen near release. If new hardware comes out after the game's release, the developer doesn't have as pressing a reason to update their game to better support their hardware. At least, that's how it would seem. We'll have to see what happens in practice.
 

dacostafilipe

Senior member
Oct 10, 2013
772
244
116
I don't think it confirms that they are unviable -- developers wouldn't be pushing for this if they weren't prepared for the logical consequences -- but that does seem to be the potential downside of low level APIs that few people are talking about. It sounds like the responsibility for optimizing for new hardware under low level APIs shifts from the IHVs and drivers to the game itself, and thus the game developers. AMD and Nvidia have been consistent with keeping their drivers optimized for individual games, because they need to keep performance up as a selling point. Game developers don't have that motivation, most of their sales happen near release. If new hardware comes out after the game's release, the developer doesn't have as pressing a reason to update their game to better support their hardware. At least, that's how it would seem. We'll have to see what happens in practice.

Shader code replacement will still be an option with DX12/Vulkan, so improvements by the driver is not going away.

And please don't think that dev just code against DX11 and call it a day, that's far from the truth. Even today they have to code against multiple GPU architectures and adapt their engine. With DX12/Vulkan this last point will be a lot easier for them.
 

DrMrLordX

Lifer
Apr 27, 2000
21,807
11,161
136
I don't think it confirms that they are unviable -- developers wouldn't be pushing for this if they weren't prepared for the logical consequences -- but that does seem to be the potential downside of low level APIs that few people are talking about. It sounds like the responsibility for optimizing for new hardware under low level APIs shifts from the IHVs and drivers to the game itself, and thus the game developers. AMD and Nvidia have been consistent with keeping their drivers optimized for individual games, because they need to keep performance up as a selling point. Game developers don't have that motivation, most of their sales happen near release. If new hardware comes out after the game's release, the developer doesn't have as pressing a reason to update their game to better support their hardware. At least, that's how it would seem. We'll have to see what happens in practice.

What I'm thinking will be that the big firms who work on and sell/license engines will be doing the lion's share of the low-level API coding using DX12/Vulkan. That will put "game developers" - end users as far as the engine coders are concerned - out of the market for developing their own engine and into the market of using someone else's. Devs will code to the engine rather than to the API. It already happens some now, we'll just see more of it in the future.

There's nothing surprising in that post and it confirms that low level APIs aren't viable. If AAA games are shipping broken now, that's going to increase tenfold when the driver complexities needed to deal with them are shifted onto game developers.

He says the end result "just works". Sure, as long as it's running on the hardware he originally coded it for. But what happens on future hardware? Is he expecting the whole software industry to constantly patch their games whenever new nVidia/AMD/Intel hardware arrives? We've already seen Thief and BF4 broken with Mantle and the 285.

I'm going to hazard a guess here, but one of the things that seems to be hitting me upside the head repeatedly is that DX12/Vulkan/etc. resembles HSA. Call me crazy if you like, it just does.

If you look at the Okra project, you'll notice that some of the documentation mentions a flag called OKRA_DISABLE_FIX_HSAIL:

Environment variable: OKRA_DISABLE_FIX_HSAIL. HSA Programmer's Reference Manual 1.0P specification has been released recently. Refer to https://github.com/HSAFoundation/HSA-docs-AMD/wiki for documentation. However, all users of OKRA have not upgraded their code generation to 1.0P HSAIL. That is, some customers are still generating 0.95 HSAIL. For those customers who do not yet generate 1.0P instructions (which is the majority today), OKRA fixes the hsail instructions to match up to 1.0P instructions. Note that, this is not a universal fix for all possible instructions. This has been done only for a known set of tests from what we have seen before from our customers (see known issues). But, if the OKRA user is already generating 1.0P HSAIL instructions, then they should disable OKRA from doing any fixup. They can do so by setting environment variable OKRA_DISABLE_FIX_HSAIL=1

Note that version of Okra was released before HSA Programmer's Reference Manual 1.0 final. Anyway, having played with some HSA junk from mid/early 2014(aparapi-lambda, it hasn't been updated recently), I can tell you that the stuff I wrote spits out instructions adhering to the .95 HSAIL standard, rather than 1.0P or 1.0 final. Okra handles it just fine, presumably by doing the "fixup" mentioned in the above quote.

While I do not know that any of the big boys making game engines will be stuck working with a software stack similar to HSA's when dealing with DX12 or Vulkan, what I do suspect is that we'll see some kind of a low-level interface where "fixup" will be possible, and that the standards maintainers (MS, Khronos) will modify the command set for their low-level API every time we see a new generation of hardware. On the HSA side of things, .95 and 1.0P represent support for Kaveri, while 1.0 final is Carrizo.

In other words, game engines targeting older generations of hardware will still work on newer hardware, just maybe not as well as if the same engine were hand-recoded to work with the new hardware/new API spec. I think the companies producing game engines "of the future" will be able to handle it, and we'll probably still see gains when running older games on newer hardware despite the low-level nature of the APIs involved. The scaling may not be 100% but the improvements will still be there.
 

Pottuvoi

Senior member
Apr 16, 2012
416
2
81
Shader code replacement will still be an option with DX12/Vulkan, so improvements by the driver is not going away.
Really hope they will not continue to do that.

Proper way would be help developer to add changes into the game, not running arbitrary code instead of what was written.
This would also be major relief to driver coders.
 

dacostafilipe

Senior member
Oct 10, 2013
772
244
116
Really hope they will not continue to do that.

Proper way would be help developer to add changes into the game, not running arbitrary code instead of what was written.
This would also be major relief to driver coders.

Yes, but if the devs don't want to work with you, there's no other option.

That, and maybe you find a more effective way to handle thing along the way.

In Vulkan, because the driver will have to compile the SPIR-V to his own asm/commands, there's a lot of optimisations possible.
 

Headfoot

Diamond Member
Feb 28, 2008
4,444
641
126
Yes, but if the devs don't want to work with you, there's no other option.

That, and maybe you find a more effective way to handle thing along the way.

In Vulkan, because the driver will have to compile the SPIR-V to his own asm/commands, there's a lot of optimisations possible.

Yeah, the driver engineer is still going to have a much more thorough understanding of the nuances of the hardware -- and access to the engineers who can answer the hard questions. Hopefully though, DX12/Vulkan/Mantle reduce the frequency this happens because there will be less guesswork and he-said-she-said due to DX11-black-boxiness.

Proper way would be help developer to add changes into the game, not running arbitrary code instead of what was written.
This would also be major relief to driver coders.

"Proper" is subjective and pointless to argue about. It's like programmers arguing over what constitutes "clean" code. For consumers, "proper" is whatever results in the fastest performance. For driver teams, "proper" is whatever meets their teams internal timelines. For game devs, "proper" is letting them code it..... until the game's too old and they don't want to spend time coding for new GPUs years down the road so they'd rather someone else does it.

Also, DX12 isn't completely bare metal. There is still some abstraction/shimming there that can account for differences in GPUs.
 
Last edited:
Dec 30, 2004
12,554
2
76
Extensive article at HFR about the possible performances gains with AMD GPUs and DX12.

http://www.hardware.fr/news/14133/gdc-d3d12-amd-parle-gains-gpu.html

Seems that GCN is clearly more advanced than Nvidia s Maxwell wich is limited on parralel commands, also it s more than obvious that DX12 is a litteraly carbon copy of Mantle.

that sounds like flamebait and handwaving but I'll reserve judgement till I read the article. NVidia is a very smart company, poor design doesn't really slip past them IMO, excepting their mobile division
 
Dec 30, 2004
12,554
2
76
Yes, but if the devs don't want to work with you, there's no other option.

That, and maybe you find a more effective way to handle thing along the way.

In Vulkan, because the driver will have to compile the SPIR-V to his own asm/commands, there's a lot of optimisations possible.

opening the path for custom coded shaders "meant to be played on NVidia" and intentionally gimped to be poor-performing for AMD like FSAA or FXAA or whatever the crappy AA scheme Nvidia cooked up was
 

HurleyBird

Platinum Member
Apr 22, 2003
2,726
1,342
136
that sounds like flamebait and handwaving but I'll reserve judgement till I read the article. NVidia is a very smart company, poor design doesn't really slip past them IMO, excepting their mobile division

Well, traditionally ATI/AMD usually has the more future looking architecture, with the exception of G80 vs. R600 and (just because of lack of tessellation performance) Evergreen vs. Fermi, so it wouldn't be much of a surprise to see history repeating itself. On the other hand, with AMD's shrinking R&D budget it's unlikely this trend will last forever.
 

Red Hawk

Diamond Member
Jan 1, 2011
3,266
169
106
Well, traditionally ATI/AMD usually has the more future looking architecture, with the exception of G80 vs. R600 and (just because of lack of tessellation performance) Evergreen vs. Fermi, so it wouldn't be much of a surprise to see history repeating itself. On the other hand, with AMD's shrinking R&D budget it's unlikely this trend will last forever.

Evergreen/Northern Islands didn't fall short of Fermi just because of tessellation performance. Its VLIW5/4 architecture was well suited for simple graphics rendering and shading, but it fell short in compute and GPGPU tasks. GCN basically did for AMD what Fermi did for Nvidia, AMD just did it a couple years late.
 

HurleyBird

Platinum Member
Apr 22, 2003
2,726
1,342
136
Evergreen/Northern Islands didn't fall short of Fermi just because of tessellation performance. Its VLIW5/4 architecture was well suited for simple graphics rendering and shading, but it fell short in compute and GPGPU tasks.

Not really. There are a decent number of compute tasks that fit well into VLIW5, a decent number that don't, and some that are in between. Evergreen and Fermi had hugely different performance profiles in compute -- when a task could utilize Evergreen's massive throughput advantage it murdered Fermi, while in the worst case scenario Fermi murdered Evergreen. Compute was a wash on average, but there was a lot of variance for individual benchmarks.

GCN basically did for AMD what Fermi did for Nvidia, AMD just did it a couple years late.

It did. By the same token Nvidia fixed their throughput problem with Kepler, while AMD had fixed theirs with RV770. In so many ways GCN and Kepler were a convergence of AMD and Nvidia's prior design philosophies.
 
Last edited:

dacostafilipe

Senior member
Oct 10, 2013
772
244
116
opening the path for custom coded shaders "meant to be played on NVidia" and intentionally gimped to be poor-performing for AMD like FSAA or FXAA or whatever the crappy AA scheme Nvidia cooked up was

Yes, this should not change.

Even Vulkan will have offline compiled shaders, so Gameworks will work on that to (HLSL-> SPiR-V)
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |