Battlefield 1 Open Beta is live and supports DX12

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

pj-

Senior member
May 5, 2015
501
278
136
It's additional to the game code,it might be less work in total than dx11 and spread over more threads but instead of having one core run only the main game code thread now it also has to run some of the api/driver stuff.

What?

It's less total work and it's more evenly distributed over all the cores, yet it's somehow slower??

What is your technical background?
 
  • Like
Reactions: Det0x and Headfoot

dogen1

Senior member
Oct 14, 2014
739
40
91
How do I?
  • In dx11 the driver is high level meaning it is a separate thread that,if you have enough cores,will not influence any other thread and,if your cores are fast enough,will drive any GPU without bottleneck.
  • In dx12 the driver is low level meaning it becomes part of every thread,this means that the low level driver will always influence every other thread.
  • Since the main thread (game code) determines the FPS and since with dx12 it will have to run the additional low level stuff within the main thread it will be slower.

You can safely forget all of this.
 

TheELF

Diamond Member
Dec 22, 2012
4,027
753
126
46,85% main thread 7,85% ati driver,that's ~55% ,how on earth do you figure that can happen if 50% is one whole core?
The driver is separate and can run wherever it fits,also it's no way near as big as the main thread, in most cases it's ridiculously small and isn't worth the effort of going dx12,of course for AMD GPUs that supposedly have enormous driver overhead in some games/scenes it's a god send.
XHbdvUu.jpg
 

TheELF

Diamond Member
Dec 22, 2012
4,027
753
126
What?

It's less total work and it's more evenly distributed over all the cores, yet it's somehow slower??

What is your technical background?
I said might,and even if it is less total work the distribution means that it is more work for the one main thread that determines how fast the game will run.
 

dogen1

Senior member
Oct 14, 2014
739
40
91
I said might,and even if it is less total work the distribution means that it is more work for the one main thread that determines how fast the game will run.

The total amount of work per frame determines how fast the game runs.
 
Last edited:

pcslookout

Lifer
Mar 18, 2007
11,959
157
106
Sometimes I hate human beings.

So far game works great and only crashes because of a memory leak issue but only after a few hours.
 

ConsoleLover

Member
Aug 28, 2016
137
43
56
The big issue with DX12 implementation right now is that most games are developed as dual API's, so DX11 and DX12. This means that developers must focus equally on DX11 and DX12, this means DX11 is a lot more known and the coding has been established, while DX12 is more complex and allows for deeper coding, as well as still being an unknown, so this essentially means the implementation of DX12 is going to be subpar.

Once developers start developing their engines from the scratch up to support DX12 and once they focus fully on DX12, we'll see the advantages of DX12, as it is we are not getting the advantages of DX12 as it is an afterthought, rather than primary objective.

I fully expect most games to be fully DX12 developed from 2017.
 
  • Like
Reactions: Magee_MC and Bacon1

dogen1

Senior member
Oct 14, 2014
739
40
91
This does not refute what I'm saying.

I think this is what you said

less work + more parallel work distribution = slower game(sometimes?)

Assuming there's actually less work being done(a well optimized DX12 renderer). I don't see how that can result in less performance. If you have multiple cores, you're able to reduce the overall time through latency hiding. If you don't have a lot of cores there shouldn't be any real drawbacks, and there's still less overall work(lower driver overhead) to do.

Then you said the amount of time spent by the "main thread" determines how fast the game will run.

But all the work for each frame has to be finished. So it's the amount of time spent on every thread and all the work that determines how fast the game runs.

Maybe I'm just not understanding what you're trying to say, but so far it doesn't make sense to me.
 
  • Like
Reactions: IEC and Bacon1

Bacon1

Diamond Member
Feb 14, 2016
3,430
1,018
91
Once developers start developing their engines from the scratch up to support DX12 and once they focus fully on DX12, we'll see the advantages of DX12, as it is we are not getting the advantages of DX12 as it is an afterthought, rather than primary objective.

I fully expect most games to be fully DX12 developed from 2017.

Exactly.

I see Vulkan + DX12 as common for newer engines as it will let them support more than just windows 10 (DX12 is still useful for xbox one ports, and PC perf / tooling might be better than Vulkan as well).

Multiple game developers have stated that the two are very similar, and would allow them to have the most audience and best performance.
 

TheELF

Diamond Member
Dec 22, 2012
4,027
753
126
I think this is what you said

less work + more parallel work distribution = slower game(sometimes?)

Assuming there's actually less work being done(a well optimized DX12 renderer). I don't see how that can result in less performance. If you have multiple cores, you're able to reduce the overall time through latency hiding. If you don't have a lot of cores there shouldn't be any real drawbacks, and there's still less overall work(lower driver overhead) to do.

Then you said the amount of time spent by the "main thread" determines how fast the game will run.

But all the work for each frame has to be finished. So it's the amount of time spent on every thread and all the work that determines how fast the game runs.

Maybe I'm just not understanding what you're trying to say, but so far it doesn't make sense to me.
Take another look at the graphs provided by AMD,do you notice how the core 0/main thread bar is much longer then the rest of the threads?
All the threads run simultaneously on the available cores,this means that the shorter bars/smaller threads/less CPU usage finish much faster then the main thread,all other threads are finishing their work and are then just waiting for the main thread to provide the "finishing touches" to complete the frame.
Yes all the threads have to do all their work but final FPS is determined by the thread that has the highest workload since this thread will take the longest to provide it's share to completing the frame.
Adding additional workload to this thread by making part of the api/driver work part of it's workload will make the main thread take longer to complete it's work.

Just in case someone missed it,I'm talking about overpowered CPUs here because most people quote Dx12 benchmarks with overpowered CPUs,on lower end CPUs dx12 will almost always provide at least a small boost.
 
Feb 4, 2009
35,862
17,402
136
I take back what I said earlier dx12 appeared to work fine on my modest machine. I haven't tried dx11 but there really isn't a need.

Q9650
8GB
ssd
280x

I did have to update my video driver but that was all

Now I take back this previous post. Apparently if I enable dx12 and exit the game without disabling dx12 BF1 will not open. Windows encountered an error...

I had to follow this stupid youtube video to figure it out. While I appreciate the solution I hate how someone posts it to youtube when they could type it down to earn 1/8th a penny per click.

overview is files-battlefield1-support_something-open change dx12 0 to dx12 1

https://www.youtube.com/watch?v=jJDR0oT54bE

edit: after playing a match I will say I seemed to have better fps in dx12. This isn't a scientific observation but when I ran dx12 I seemed to be around 30-40 now with dx11 it still hits 40 but that's the peak it also drops to 20. Feels and looks like it fluctuates more on dx11.
 
Last edited:

dogen1

Senior member
Oct 14, 2014
739
40
91
Take another look at the graphs provided by AMD,do you notice how the core 0/main thread bar is much longer then the rest of the threads?
All the threads run simultaneously on the available cores,this means that the shorter bars/smaller threads/less CPU usage finish much faster then the main thread,all other threads are finishing their work and are then just waiting for the main thread to provide the "finishing touches" to complete the frame.
Yes all the threads have to do all their work but final FPS is determined by the thread that has the highest workload since this thread will take the longest to provide it's share to completing the frame.
Adding additional workload to this thread by making part of the api/driver work part of it's workload will make the main thread take longer to complete it's work.

Just in case someone missed it,I'm talking about overpowered CPUs here because most people quote Dx12 benchmarks with overpowered CPUs,on lower end CPUs dx12 will almost always provide at least a small boost.

What makes you think that developers will use DX12 to load a single thread more than before... One of the main features of it is that it lets you do the opposite.
 
  • Like
Reactions: Headfoot

4K_shmoorK

Senior member
Jul 1, 2015
464
43
91
Jesus, has this turned into "one of those threads"...

On topic, I am consistently CTD'in after upgrading to 372.70. Anyone else getting weird behavior? Just reverted back to 372.54. (DX11 btw)

Lots of bugs as well. Couple of games where players only spawn with primary weapons and are unable to use grenades/equipment or switch weapons. At least it seems the netcode has improved a bit since BF4
 

tg2708

Senior member
May 23, 2013
687
20
81
Game runs horribly on my 1080. Their is an fps counter in the top right corner, should it be their? I'm curious because I don't think I have an app that's causing it since Evga precision one does not like that and Msi afterburner is not activated to show it.
 

96Firebird

Diamond Member
Nov 8, 2010
5,738
334
126
My 970 plays it decently at 4k using the default settings, whatever they are... Played a couple minutes, but had to use my wired PS3 controller which isn't fun at all. I really need to get around to finishing my office...
 

4K_shmoorK

Senior member
Jul 1, 2015
464
43
91
Game runs horribly on my 1080. Their is an fps counter in the top right corner, should it be their? I'm curious because I don't think I have an app that's causing it since Evga precision one does not like that and Msi afterburner is not activated to show it.

Yep FPS counter is there. It runs well with my 1080 but 372.70 drivers really dropped the ball. Crashing left and right
 

2is

Diamond Member
Apr 8, 2012
4,281
131
106
Game runs horribly on my 1080. Their is an fps counter in the top right corner, should it be their? I'm curious because I don't think I have an app that's causing it since Evga precision one does not like that and Msi afterburner is not activated to show it.

Perhaps you made the same mistake I did and crank the resolution scale to 100%?
 

majord

Senior member
Jul 26, 2015
509
710
136
so so many obvious bugs in this still, is it any surprise DX12 isn't running well yet?

As mentioned, it's undeniably more work, particuarly to get into a state where it runs well on all Graphics card venors, and yes, that Includes Intel.

This is a relevent (Frostbite) and interesting read from this years GDC:

http://www.wihlidal.ca/Presentations/GDC_2016_Compute.pdf

at one point he demonstrates some of the challenges that go with getting any benefit (if not regression if 'doing it wrong') with DX12. I wonder how much of what he talks about is present on BF1 PC port, or at least, will be at release.. managed to squeeze a ~13% improvement using Async compute on Fury
 

IEC

Elite Member
Super Moderator
Jun 10, 2004
14,595
6,067
136
Played several hours so far. It's been smooth with no crashes for me. 6700K + Fury @ 3440x1440 75Hz
 

dogen1

Senior member
Oct 14, 2014
739
40
91
so so many obvious bugs in this still, is it any surprise DX12 isn't running well yet?

As mentioned, it's undeniably more work, particuarly to get into a state where it runs well on all Graphics card venors, and yes, that Includes Intel.

This is a relevent (Frostbite) and interesting read from this years GDC:

http://www.wihlidal.ca/Presentations/GDC_2016_Compute.pdf

at one point he demonstrates some of the challenges that go with getting any benefit (if not regression if 'doing it wrong') with DX12. I wonder how much of what he talks about is present on BF1 PC port, or at least, will be at release.. managed to squeeze a ~13% improvement using Async compute on Fury

Looks like a much larger benefit came from the gpu compute shader based culling than asynchronous compute.

The Fury X gets 32% faster(at least in that scene), xb1 only 12% and ps4 14%, but that makes sense because they have a much lower alu:geometry ratio.
 
Last edited:

Flapdrol1337

Golden Member
May 21, 2014
1,677
93
91
Been playing this for a bit, set it to mostly low (except terrain and a few other things), and a 62.5 fps limit, it's a competitive fps after all. On those settings it of course runs flawlessly, even with my 670.

Too bad it's a chaotic meatgrinder. Was kind of hoping it would be slower paced and more tactical. If I buy an rx470 and it's bundled I'll play it, but otherwise I think I'll pass.
 

Headfoot

Diamond Member
Feb 28, 2008
4,444
641
126
Yeah I wont be buying it. It feels like Battlefront with a WW1 skin, except you die to snipers 9/10 times. Doesn't even remotely feel like the same series I was playing when 1942 came out.
 

Zstream

Diamond Member
Oct 24, 2005
3,395
277
136
Yeah I wont be buying it. It feels like Battlefront with a WW1 skin, except you die to snipers 9/10 times. Doesn't even remotely feel like the same series I was playing when 1942 came out.
I thought they would have a number limit on snipers?