Jump to content

Dx11 or Dx12?

as96

I want to try DirectX development (not for a complete game, just to try it out), I'm coming from SFML/OpenGL, I'm not sure which one I should use Dx11 or Dx12? From a beginner point of view I should find more resources on the 11 right?

Link to comment
Share on other sites

Link to post
Share on other sites

dx11 has been around for a much longer time

a lot more people can probably help you out with that

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

DX12 = Better performance (+20 FPS)

DX11 = More support (Good if u f*k up alot)

 

Ryzen 5 1600 - GTX 980 Ti - Broke.

Link to comment
Share on other sites

Link to post
Share on other sites

DX12 = Better performance (+20 FPS)

DX11 = More support (Good if u f*k up alot)

DX11 it is!

Link to comment
Share on other sites

Link to post
Share on other sites

Definitely go for DX11 if you're just starting out. The support and knowledge on it is far better than on DX12 right now. If you mess up, you'll have more people and documents that can help you. 

Link to comment
Share on other sites

Link to post
Share on other sites

DX11. It will be a lot easier. It will have proper documentation and lots of issues are resolved in stackoverflow and other places.

I am sorry for my english.

Link to comment
Share on other sites

Link to post
Share on other sites

Anyone knows where to find a beginner guide and a reference? MS' website is pretty messy.

Link to comment
Share on other sites

Link to post
Share on other sites

If you have no time pressure and as you mentioned 'just want to try it out' then why go for the older technology? We generally don't/shouldn't do this as developers. It's the same argument as it is for Swift vs Objective C. Yes there's more documentation and libraries for the older of the two but why hang about and learn the methodologies and intricacies of an aging and/or obsoleting platform when there's no good reason to (as is the case in your situation).

 

It would be a different argument entirely if you had to pump something out rapidly that perhaps required the use of some kind of already well established third party API but it's not.

 

Sorry but this kind of 'well it's new and different therefore potentially more difficult so lets be lazy and stick with the old' argument really irritates me on several levels. Just go and get stuck into the detail and take ownership of the knowledge yourself...

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

If you have no time pressure and as you mentioned 'just want to try it out' then why go for the older technology? We generally don't/shouldn't do this as developers. It's the same argument as it is for Swift vs Objective C. Yes there's more documentation and libraries for the older of the two but why hang about and learn the methodologies and intricacies of an aging and/or obsoleting platform when there's no good reason to (as is the case in your situation).

 

It would be a different argument entirely if you had to pump something out rapidly that perhaps required the use of some kind of already well established third party API but it's not.

 

Sorry but this kind of 'well it's new and different therefore potentially more difficult so lets be lazy and stick with the old' argument really irritates me on several levels. Just go and get stuck into the detail and take ownership of the knowledge yourself...

I see your point.

Link to comment
Share on other sites

Link to post
Share on other sites

I've been doing some basic OpenGL programming at the university and in my free time.

Every now and then I take a look at DirectX because of how big of a mess OpenGL is (and Vulkan being delayed).

Microsoft will be supporting both DX11 and DX12.

Because DX11 is older there are more learning resources available although less then OpenGL (at least as websites, seems there are some good DirectX books though).

DX12 is lower level and as such takes more work to get it working and to keep it working.

Since you're not working on a AAA game I'd recommend DX11 because of development time and the fact that DX12 isnt magically faster (it takes a lot of work and good engine design).

Desktop: Intel i9-10850K (R9 3900X died 😢 )| MSI Z490 Tomahawk | RTX 2080 (borrowed from work) - MSI GTX 1080 | 64GB 3600MHz CL16 memory | Corsair H100i (NF-F12 fans) | Samsung 970 EVO 512GB | Intel 665p 2TB | Samsung 830 256GB| 3TB HDD | Corsair 450D | Corsair RM550x | MG279Q

Laptop: Surface Pro 7 (i5, 16GB RAM, 256GB SSD)

Console: PlayStation 4 Pro

Link to comment
Share on other sites

Link to post
Share on other sites

Like what mathijs727 said, DirectX 12 is aimed at AAA developers. DX12 has a lot of abstraction stripped away to give you more access to the hardware. However this comes with a cost, it is much more difficult to develop games using DX12. DX12 requires you to do all CPU and GPU synchronization yourself. Only use DX12 if are an experienced graphics programmer and really know what you are doing.

Learning DX11 is very doable. Personally I like the tutorials on 3dgep.com.

Link to comment
Share on other sites

Link to post
Share on other sites

Like what mathijs727 said, DirectX 12 is aimed at AAA developers. DX12 has a lot of abstraction stripped away to give you more access to the hardware. However this comes with a cost, it is much more difficult to develop games using DX12. DX12 requires you to do all CPU and GPU synchronization yourself. Only use DX12 if are an experienced graphics programmer and really know what you are doing.

Learning DX11 is very doable. Personally I like the tutorials on 3dgep.com.

I'll take a look at that.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 2 weeks later...

DirectX11 is able to run on many more Windows devices... While DirectX12 requires Windows 10 and potentially driver support...

 

By the way, if you prefer C# as a language, there is a very nice wrapper, SharpDX, it has every DirectX11/12 method/function that C++ has.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×