• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

To those wondering why game devs haven't embraced DirectX12/Vulkan

Joined
Dec 16, 2017
Messages
822 (0.91/day)
Location
Buenos Aires, Argentina
System Name System V
Processor AMD Ryzen 5 3600
Motherboard Asus Prime X570-P
Cooling AMD Wraith Stealth // a bunch of 120 mm Xigmatek 1500 RPM fans (2 ins, 3 outs)
Memory 2x8GB Ballistix Sport LT 3200 MHz (BLS8G4D32AESCK.M8FE) (CL16-18-18-36)
Video Card(s) Gigabyte AORUS Radeon RX 580 8 GB
Storage SHFS37A240G / DT01ACA200 / WD20EZRX / MKNSSDTR256GB-3DL / LG BH16NS40
Display(s) LG 22MP55 IPS Display
Case NZXT Source 210
Audio Device(s) Logitech G430 Headset
Power Supply Corsair CX650M
Mouse Microsoft Trackball Optical 1.0
Keyboard HP Vectra VE keyboard (Part # D4950-63004)
Software Windows 10
Please tell me that all that crap is handled by the game engine. I can't honestly think any developer would write hundreds of lines to do something in Vulkan that OpenGL can do in a couple dozen.
 
Joined
Aug 20, 2007
Messages
12,976 (2.78/day)
System Name Pioneer
Processor Intel i9 9900k
Motherboard ASRock Z390 Taichi
Cooling Noctua NH-D15 + A whole lotta Sunon and Corsair Maglev blower fans...
Memory G.SKILL TridentZ Series 32GB (4 x 8GB) DDR4-3200 @ 14-14-14-34-2T
Video Card(s) AMD RX 5700 XT (XFX THICC Ultra III)
Storage Mushkin Pilot-E 2TB NVMe SSD w/ EKWB M.2 Heatsink
Display(s) 55" LG 55" B9 OLED 4K Display
Case Thermaltake Core X31
Audio Device(s) VGA HDMI->Panasonic SC-HTB20/Schiit Modi MB/Asgard 2 DAC/Amp to AKG Pro K7712 Headphones
Power Supply SeaSonic Prime 750W 80Plus Titanium
Mouse ROCCAT Kone EMP
Keyboard WASD CODE 104-Key w/ Cherry MX Green Keyswitches, Doubleshot Vortex PBT White Transluscent Keycaps
Software Windows 10 Enterprise (yes, it's legit.)
Please tell me that all that crap is handled by the game engine. I can't honestly think any developer would write hundreds of lines to do something in Vulkan that OpenGL can do in a couple dozen.
If you aren't writing your own engine, yes.

It's more you have to know how to eek performance out of it in that instance.

The code above is also slightly misleading in that SDL's simple framework is what makes the first one so short, not anything to do with the APIs (except that SDL has limited support for lowlevel APIs, of course).
 

FordGT90Concept

"I go fast!1!11!1!"
Joined
Oct 13, 2008
Messages
26,046 (6.13/day)
Location
IA, USA
System Name BY-2015
Processor Intel Core i7-6700K (4 x 4.00 GHz) w/ HT and Turbo on
Motherboard MSI Z170A GAMING M7
Cooling Scythe Kotetsu
Memory 2 x Kingston HyperX DDR4-2133 8 GiB
Video Card(s) Sapphire Radeon RX 5500 XT Pulse 8 GiB
Storage Crucial MX300 275 GB, Seagate Exos X12 TB 7200 RPM
Display(s) Samsung SyncMaster T240 24" LCD (1920x1200 HDMI) + Samsung SyncMaster 906BW 19" LCD (1440x900 VGA)
Case Coolermaster HAF 932 w/ USB 3.0 5.25" bay
Audio Device(s) Realtek ALC1150, Micca OriGen+
Power Supply Enermax Platimax 850w
Mouse SteelSeries Sensei RAW
Keyboard Tesoro Excalibur
Software Windows 10 Pro 64-bit
Benchmark Scores Faster than the tortoise; slower than the hare.
Please tell me that all that crap is handled by the game engine. I can't honestly think any developer would write hundreds of lines to do something in Vulkan that OpenGL can do in a couple dozen.
When every FPS matters.
 
Joined
Apr 8, 2010
Messages
518 (0.14/day)
Processor Intel Core i5 8400
Motherboard Gigabyte Z370N-Wifi
Cooling Silverstone AR05
Memory Micron Crucial 16GB DDR4-2400
Video Card(s) Gigabyte GTX1080 G1 Gaming 8G
Storage Micron Crucial MX300 275GB
Display(s) Dell U2415
Case Silverstone RVZ02B
Power Supply Silverstone SSR-SX550
Keyboard Ducky One Red Switch
Software Windows 10 Pro 1909
It's not really just the lines of code. It has a chance to be slower than older API until you put more work into optimizing them. Only then can you take advantage of the potential to be more efficient.
 

AsRock

TPU addict
Joined
Jun 23, 2007
Messages
16,395 (3.47/day)
Location
UK\US
Processor 2500k \ AMD 3900X+NH-D15
Motherboard ASRock Z68 \ ASRock AM4 Pro 4
Memory Samsung low profile 1600 \ Patriot 2x16GB PVS432G320C6K
Video Card(s) eVga GTX1060 SSC \ XFX R9 390X
Storage 2x Intel 80Gb (SATA2) WD 250Gb \ Team SSD+Samsung Evo 250Gb+500Gb+ 2xCorsair Force+WD250GbHDD
Display(s) Samsung 1080P \ Toshiba HDTV 1080P
Case HTPC400 \ Thermaltake Armor case ( VE2000BWS ), With Zalman fan controller ( wattage usage ).
Audio Device(s) Yamaha RX-A820 \ Yamaha CX-830+Yamaha MX-630 Infinity RS4000 Paradigm 5SE + Tannoy Mercury F4
Power Supply PC&Power 750w \ Seasonic 750w MKII
Mouse Steelseries Sensei wireless \ Steelseries Sensei wireless
Keyboard Logitech K120 \ ROCCAT MK Pro ( modded amber leds )
Benchmark Scores Meh benchmarks.
Rockstars RDR2 runs on both DX12 or Vulcan, Runs even better on Vulcan too and does it very well.
 
Joined
Jan 8, 2017
Messages
5,033 (4.05/day)
System Name Good enough
Processor AMD Ryzen R7 1700X - 4.0 Ghz / 1.350V
Motherboard ASRock B450M Pro4
Cooling Scythe Katana 4 - 3x 120mm case fans
Memory 16GB - Corsair Vengeance LPX
Video Card(s) OEM Dell GTX 1080
Storage 1x Samsung 850 EVO 250GB , 1x Samsung 860 EVO 500GB
Display(s) 4K Samsung TV
Case Zalman R1
Power Supply 500W
This is an extremely braindead comparison meant to fool the untrained eye.

Vulkan simply requires more explicit control and if you wanted to accomplish the same in OpenGL it would either be impossible (most of the time) or require even more code. For instance do you want to turn off entirely the validation layer in OpenGL ? Too bad, can't be done. If you don't want that in Vulkan you can just skip all that and code associated.
 
Joined
Apr 8, 2010
Messages
518 (0.14/day)
Processor Intel Core i5 8400
Motherboard Gigabyte Z370N-Wifi
Cooling Silverstone AR05
Memory Micron Crucial 16GB DDR4-2400
Video Card(s) Gigabyte GTX1080 G1 Gaming 8G
Storage Micron Crucial MX300 275GB
Display(s) Dell U2415
Case Silverstone RVZ02B
Power Supply Silverstone SSR-SX550
Keyboard Ducky One Red Switch
Software Windows 10 Pro 1909
Also, a lot of lines are used for filling out structs of configs. They can be simplified to one-liners with simple helper headers.
 
Joined
Feb 3, 2017
Messages
2,389 (1.96/day)
Processor i5-8400
Motherboard ASUS ROG STRIX Z370-I GAMING
Cooling Alpenföhn Black Ridge
Memory 2*16GB DDR4-3200 CL16
Video Card(s) Gainward GeForce RTX 2080 Phoenix
Storage 1TB Samsung 970 Pro, 2TB Intel 660p
Display(s) ASUS PG279Q, Eizo EV2736W
Case Dan Cases A4-SFX
Power Supply Corsair SF600
Mouse Logitech G700
Keyboard Corsair K60
Rockstars RDR2 runs on both DX12 or Vulcan, Runs even better on Vulcan too and does it very well.
It also has a 9-figure budget.
 
Joined
Sep 17, 2014
Messages
12,178 (5.84/day)
Location
Mars
Processor i7 8700k 4.7Ghz @ 1.26v
Motherboard AsRock Fatal1ty K6 Z370
Cooling beQuiet! Dark Rock Pro 3
Memory 16GB Corsair Vengeance LPX 3200/C16
Video Card(s) MSI GTX 1080 Gaming X @ 2100/5500
Storage Samsung 850 EVO 1TB + Samsung 830 256GB + Crucial BX100 250GB + Toshiba 1TB HDD
Display(s) Eizo Foris FG2421
Case Fractal Design Define C TG
Power Supply EVGA G2 750w
Mouse Logitech G502 Protheus Spectrum
Keyboard Sharkoon MK80 (Brown)
Software W10 x64
As with all things in code... if you do the work, you can get it done. If you get the work done for you, you get a half assed solution.

I see it every day. External and SaaS suppliers versus home grown stuff... these APIs... there are no shortcuts and if there are shortcuts, they will cost something. The opposite is also true; if you are meticulous, you can get more done with the same resources. The latter is what Vulkan shows here.

Dev time is costly though. Londiste said it right... the vast majority of devs just HAVE to resort to simpler things. You can also apply all of this to many developments in the market; from DLSS, to RT, to GameWorks, to the demise of Mantle (look at this topic, its a repeat of it really), to SLI support... the list is endless, it will keep getting longer, and the movement in the market is going not in Vulkan's direction but the polar opposite: abstraction layers impose limitations to make applications suitable for many different platforms. Its still nice that Vulkan allows more, but what use are options you can't sell?
 

AsRock

TPU addict
Joined
Jun 23, 2007
Messages
16,395 (3.47/day)
Location
UK\US
Processor 2500k \ AMD 3900X+NH-D15
Motherboard ASRock Z68 \ ASRock AM4 Pro 4
Memory Samsung low profile 1600 \ Patriot 2x16GB PVS432G320C6K
Video Card(s) eVga GTX1060 SSC \ XFX R9 390X
Storage 2x Intel 80Gb (SATA2) WD 250Gb \ Team SSD+Samsung Evo 250Gb+500Gb+ 2xCorsair Force+WD250GbHDD
Display(s) Samsung 1080P \ Toshiba HDTV 1080P
Case HTPC400 \ Thermaltake Armor case ( VE2000BWS ), With Zalman fan controller ( wattage usage ).
Audio Device(s) Yamaha RX-A820 \ Yamaha CX-830+Yamaha MX-630 Infinity RS4000 Paradigm 5SE + Tannoy Mercury F4
Power Supply PC&Power 750w \ Seasonic 750w MKII
Mouse Steelseries Sensei wireless \ Steelseries Sensei wireless
Keyboard Logitech K120 \ ROCCAT MK Pro ( modded amber leds )
Benchmark Scores Meh benchmarks.
It also has a 9-figure budget.
Your talking like UBI\EA\Blizzard and many others could not do it, what a load of crap. If RS can do it under crappy Take 2's thumb other big company's could too.

Have you even played RDR2 and actually realize how much is actual in that game ?, never mind it running 40+fps on a 3770 \ 390X which is 8(CPU)\4(GPU) year old now.
 
Joined
Apr 18, 2013
Messages
689 (0.26/day)
So, half-cocked thread? Is that the consensus? Just the OP not understanding how this really works?
The original post was written by a prominent game developer with a lot of experience but no-namers on TPU who have likely never written a single line of code feel entitled to opine. No, you don't opine if you have zero knowledge of the matter. It's not an opinion, it's a load of bull crap. You don't opine about quantum mechanics, do you? You don't opine about epigenetics, do you? So, why do you opine about APIs then?

Yes, if you work with a finished game engine, you don't have to work with this low-level code, except often you have to when you find bugs or corner cases not covered by the original developer and you have to release the game ASAP or the engine developer has moved to a new version and your code is no longer supported.
 
Joined
Dec 31, 2009
Messages
17,530 (4.60/day)
The original post was written by a prominent game developer with a lot of experience but no-namers on TPU who have likely never written a single line of code feel entitled to opine. No, you don't opine if you have zero knowledge of the matter. It's not an opinion, it's a load of bull crap. You don't opine about quantum mechanics, do you? You don't opine about epigenetics, do you? So, why do you opine about APIs then?

Yes, if you work with a finished game engine, you don't have to work with this low-level code, except often you have to when you find bugs or corner cases not covered by the original developer and you have to release the game ASAP or the engine developer has moved to a new version and your code is no longer supported.
Because there is more than one answer/ways to do things/reasons why this is the way it is?

It honestly looks like a discussion above both of our heads, not being a devs and all. The difference though is an open mind versus an 'all in' mentality. Keep an open mind. There are coders here and very smart people who can lend a unique perspective to things. Just saying don't hate because others have thoughts on it... 'opine' or not.
 
Last edited:
Joined
Sep 29, 2011
Messages
211 (0.07/day)
Location
Ottawa, Canada
System Name Current Rig
Processor AMD Ryzen 7 1700@3.95GHz
Motherboard Asus X370 Crosshair VI
Cooling Arctic Cooling 240mm
Memory 2x8GB DDR4-3200 G.Skill Trident Z RGB
Video Card(s) Gigabyte Windforce R9 290 (bios flashed to 1050MHz core
Storage 1TB SSD
Display(s) 3x22" LG Flatron (eyefinity)
Case Cooler Master Storm Striker
Power Supply Antec True Power 750w
This is an extremely braindead comparison meant to fool the untrained eye.

Vulkan simply requires more explicit control and if you wanted to accomplish the same in OpenGL it would either be impossible (most of the time) or require even more code. For instance do you want to turn off entirely the validation layer in OpenGL ? Too bad, can't be done. If you don't want that in Vulkan you can just skip all that and code associated.
Yes, exactly. It's a little like showing a program listing in Logo, then C++, then assembly language. OBVIOUSLY, the assembly language program listing will be much longer, and more arcane to understand. But beyond any doubt whatsoever, the program will run way faster when compiled from assembly language than from C++. Also, the tools available for using Vulkan mean that you don't really have to edit the code directly all the time, so it's not like you're always dealing with huge amounts of code for everything.
 
Joined
Aug 20, 2007
Messages
12,976 (2.78/day)
System Name Pioneer
Processor Intel i9 9900k
Motherboard ASRock Z390 Taichi
Cooling Noctua NH-D15 + A whole lotta Sunon and Corsair Maglev blower fans...
Memory G.SKILL TridentZ Series 32GB (4 x 8GB) DDR4-3200 @ 14-14-14-34-2T
Video Card(s) AMD RX 5700 XT (XFX THICC Ultra III)
Storage Mushkin Pilot-E 2TB NVMe SSD w/ EKWB M.2 Heatsink
Display(s) 55" LG 55" B9 OLED 4K Display
Case Thermaltake Core X31
Audio Device(s) VGA HDMI->Panasonic SC-HTB20/Schiit Modi MB/Asgard 2 DAC/Amp to AKG Pro K7712 Headphones
Power Supply SeaSonic Prime 750W 80Plus Titanium
Mouse ROCCAT Kone EMP
Keyboard WASD CODE 104-Key w/ Cherry MX Green Keyswitches, Doubleshot Vortex PBT White Transluscent Keycaps
Software Windows 10 Enterprise (yes, it's legit.)
Your talking like UBI\EA\Blizzard and many others could not do it,
No, he's obviously saying non-AAA game studios cannot do it easily.

The original post was written by a prominent game developer with a lot of experience but no-namers on TPU who have likely never written a single line of code feel entitled to opine
I'm willing to bet I've written more than him, just not games. But who cares? This isn't a programmers pissing contest and I don't need a nerd badge.

So, half-cocked thread? Is that the consensus? Just the OP not understanding how this really works?
Nah, it's pretty much true, but exagerated a bit by the use of SDL in an example.

The figure between OpenGL3 and Vulkan is pretty spot on.
 
Joined
Nov 24, 2017
Messages
727 (0.79/day)
Location
Asia
Processor Intel Core i5 4590
Motherboard Gigabyte Z97x Gaming 3
Cooling Intel Stock Cooler
Memory 8GB(2x4GB) DDR3-800MHz [1600MT/s]
Video Card(s) XFX RX 560 4GB
Storage Transcend SSD370S 128GB; Toshiba DT01ACA100 1TB
Display(s) Samsung S20D300 20" 768p TN
Case Delux DLC-MV888
Audio Device(s) Realtek ALC1150
Power Supply Corsair VS450
Mouse A4Tech N-70FX
Software Windows 10 Pro
Benchmark Scores BaseMark GPU : 250 Point
No, he's obviously saying non-AAA game studios cannot do it easily.
Most non-AAA studio dont use their own engine, they use engine like Unreal/Unity.
 
Joined
Aug 20, 2007
Messages
12,976 (2.78/day)
System Name Pioneer
Processor Intel i9 9900k
Motherboard ASRock Z390 Taichi
Cooling Noctua NH-D15 + A whole lotta Sunon and Corsair Maglev blower fans...
Memory G.SKILL TridentZ Series 32GB (4 x 8GB) DDR4-3200 @ 14-14-14-34-2T
Video Card(s) AMD RX 5700 XT (XFX THICC Ultra III)
Storage Mushkin Pilot-E 2TB NVMe SSD w/ EKWB M.2 Heatsink
Display(s) 55" LG 55" B9 OLED 4K Display
Case Thermaltake Core X31
Audio Device(s) VGA HDMI->Panasonic SC-HTB20/Schiit Modi MB/Asgard 2 DAC/Amp to AKG Pro K7712 Headphones
Power Supply SeaSonic Prime 750W 80Plus Titanium
Mouse ROCCAT Kone EMP
Keyboard WASD CODE 104-Key w/ Cherry MX Green Keyswitches, Doubleshot Vortex PBT White Transluscent Keycaps
Software Windows 10 Enterprise (yes, it's legit.)
Most non-AAA studio dont use their own engine, they use engine like Unreal/Unity.
Which in most cases might as well be "not doing it." You really don't earn much benefits that way, as you haven't optimized jack.
 
Joined
Sep 17, 2014
Messages
12,178 (5.84/day)
Location
Mars
Processor i7 8700k 4.7Ghz @ 1.26v
Motherboard AsRock Fatal1ty K6 Z370
Cooling beQuiet! Dark Rock Pro 3
Memory 16GB Corsair Vengeance LPX 3200/C16
Video Card(s) MSI GTX 1080 Gaming X @ 2100/5500
Storage Samsung 850 EVO 1TB + Samsung 830 256GB + Crucial BX100 250GB + Toshiba 1TB HDD
Display(s) Eizo Foris FG2421
Case Fractal Design Define C TG
Power Supply EVGA G2 750w
Mouse Logitech G502 Protheus Spectrum
Keyboard Sharkoon MK80 (Brown)
Software W10 x64
Joined
Apr 8, 2010
Messages
518 (0.14/day)
Processor Intel Core i5 8400
Motherboard Gigabyte Z370N-Wifi
Cooling Silverstone AR05
Memory Micron Crucial 16GB DDR4-2400
Video Card(s) Gigabyte GTX1080 G1 Gaming 8G
Storage Micron Crucial MX300 275GB
Display(s) Dell U2415
Case Silverstone RVZ02B
Power Supply Silverstone SSR-SX550
Keyboard Ducky One Red Switch
Software Windows 10 Pro 1909
Which in most cases might as well be "not doing it." You really don't earn much benefits that way, as you haven't optimized jack.
Well, you could hope these engines have their DX12 or vulkan backends optimized for you. That's just wishful thinking most of the time though.
 
Joined
Aug 20, 2007
Messages
12,976 (2.78/day)
System Name Pioneer
Processor Intel i9 9900k
Motherboard ASRock Z390 Taichi
Cooling Noctua NH-D15 + A whole lotta Sunon and Corsair Maglev blower fans...
Memory G.SKILL TridentZ Series 32GB (4 x 8GB) DDR4-3200 @ 14-14-14-34-2T
Video Card(s) AMD RX 5700 XT (XFX THICC Ultra III)
Storage Mushkin Pilot-E 2TB NVMe SSD w/ EKWB M.2 Heatsink
Display(s) 55" LG 55" B9 OLED 4K Display
Case Thermaltake Core X31
Audio Device(s) VGA HDMI->Panasonic SC-HTB20/Schiit Modi MB/Asgard 2 DAC/Amp to AKG Pro K7712 Headphones
Power Supply SeaSonic Prime 750W 80Plus Titanium
Mouse ROCCAT Kone EMP
Keyboard WASD CODE 104-Key w/ Cherry MX Green Keyswitches, Doubleshot Vortex PBT White Transluscent Keycaps
Software Windows 10 Enterprise (yes, it's legit.)
Well, you could hope these engines have their DX12 or vulkan backends optimized for you. That's just wishful thinking most of the time though.
It's a low level API. You are the optimizer. If you are depending on the engine to do it for you, you may as well be using DX11 or similar. Your basically depending on the engine to do better than Kernel level code. It will never do that.
 
Joined
Feb 3, 2017
Messages
2,389 (1.96/day)
Processor i5-8400
Motherboard ASUS ROG STRIX Z370-I GAMING
Cooling Alpenföhn Black Ridge
Memory 2*16GB DDR4-3200 CL16
Video Card(s) Gainward GeForce RTX 2080 Phoenix
Storage 1TB Samsung 970 Pro, 2TB Intel 660p
Display(s) ASUS PG279Q, Eizo EV2736W
Case Dan Cases A4-SFX
Power Supply Corsair SF600
Mouse Logitech G700
Keyboard Corsair K60
Well, you could hope these engines have their DX12 or vulkan backends optimized for you. That's just wishful thinking most of the time though.
No doubt the engines are well optimized but these are still a generic tool. Depending on you game, the optimization points and targets can and will be different.
 
Joined
Apr 16, 2010
Messages
3,184 (0.86/day)
Location
Portugal
System Name _JP_'s Daily Driver
Processor AMD Ryzen 7 1700
Motherboard MSI X370 Gaming Plus
Cooling Noctua NH-C12P SE14 + NM-AM4 + NF-P14r
Memory 2x 8GB G.Skill Trident Z (F4-3200C16D-16GTZB)(Hynix)
Video Card(s) Sapphire Pulse AMD Radeon RX 5500 XT 8GiB
Storage HyperX Savage 240GB + KC300 240GB + 750EVO 500GB
Display(s) LG Flatron W2361V 23'' FHD
Case NOX Blaze w/random fans and no aRrGeeBee
Audio Device(s) Creative SoundBlasterX AE-5 + GigaWorks t40 series II
Power Supply Corsair TX650M
Mouse Microsoft Comfort Mouse 4500
Keyboard Logitech Media Keyboard (PS/2)
Software Windows 10 x86-64 (1909)
Benchmark Scores It plays a game or two in TV resolution from time to time
It's a low level API. You are the optimizer. If you are depending on the engine to do it for you, you may as well be using DX11 or similar. Your basically depending on the engine to do better than Kernel level code. It will never do that.
Reminds me of Geoff Crammond not using APIs for his F1 games and just leave it all to the processor to run his 3D engine, which was ground-breaking...but also introduced some limitations. It's a case of whatever works better for you, right now I think, slightly more easier because besides mobile devices, you have the same type of hardware and sort-of-the-same framework to create for either Win\Linux\Apple boxes or Consoles.
I think it's great that devs can choose to go either high-level or bare metal for their projects and not a reason for criticism.
For e.g., if you have a project that is so huge that current hardware can't really deal with it unless you tune and optimize and you still want to sell it to the most of the available market, then yeah, do find the resources to optimize the heck out of the hardware and be ingenious, like folks had to be with the first generations of consoles. Otherwise, just basque in the possibility of the excess of available computing power to brush-off a project quicker with a higher-level API.
It's 2020, I mean...we do already beta test get early playtime and report bugs as part of the experience.
 
Joined
Feb 18, 2005
Messages
2,631 (0.47/day)
Location
United Kingdom
This "comparison" is misleading at best and downright dishonest at worst. The guy who posted it clearly has an axe to grind against Vulkan.
 
Top