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

What makes a DX11 game?

Mussels

Freshwater Moderator
Staff member
Joined
Oct 6, 2004
Messages
58,413 (8.19/day)
Location
Oystralia
System Name Rainbow Sparkles (Power efficient, <350W gaming load)
Processor Ryzen R7 5800x3D (Undervolted, 4.45GHz all core)
Motherboard Asus x570-F (BIOS Modded)
Cooling Alphacool Apex UV - Alphacool Eisblock XPX Aurora + EK Quantum ARGB 3090 w/ active backplate
Memory 2x32GB DDR4 3600 Corsair Vengeance RGB @3866 C18-22-22-22-42 TRFC704 (1.4V Hynix MJR - SoC 1.15V)
Video Card(s) Galax RTX 3090 SG 24GB: Underclocked to 1700Mhz 0.750v (375W down to 250W))
Storage 2TB WD SN850 NVME + 1TB Sasmsung 970 Pro NVME + 1TB Intel 6000P NVME USB 3.2
Display(s) Phillips 32 32M1N5800A (4k144), LG 32" (4K60) | Gigabyte G32QC (2k165) | Phillips 328m6fjrmb (2K144)
Case Fractal Design R6
Audio Device(s) Logitech G560 | Corsair Void pro RGB |Blue Yeti mic
Power Supply Fractal Ion+ 2 860W (Platinum) (This thing is God-tier. Silent and TINY)
Mouse Logitech G Pro wireless + Steelseries Prisma XL
Keyboard Razer Huntsman TE ( Sexy white keycaps)
VR HMD Oculus Rift S + Quest 2
Software Windows 11 pro x64 (Yes, it's genuinely a good OS) OpenRGB - ditch the branded bloatware!
Benchmark Scores Nyooom.

streetfighter 2

New Member
Joined
Jul 26, 2010
Messages
1,655 (0.33/day)
Location
Philly
the other way around, really.

if they made it for DX11, then 10 and 10.1 are easy.


yes, they could get crysis and slap these features on top... but they'd do nothing but hurt performance unless they spent a fair bit of time optimising it.
Or if they had made if for DX10 it would have been easy to port to DX11. (It is my understanding that Crysis 2 is DX9.)

In summary:
DX9->DX11 is pretty much the same as DX9->DX10, and it can involve quite a lot of work.
DX10->DX11 or DX11->DX10, is fairly trivial.
 
Last edited:
Joined
Jan 2, 2008
Messages
3,296 (0.55/day)
System Name Thakk
Processor i7 6700k @ 4.5Ghz
Motherboard Gigabyte G1 Z170N ITX
Cooling H55 AIO
Memory 32GB DDR4 3100 c16
Video Card(s) Zotac RTX3080 Trinity
Storage Corsair Force GT 120GB SSD / Intel 250GB SSD / Samsung Pro 512 SSD / 3TB Seagate SV32
Display(s) Acer Predator X34 100hz IPS Gsync / HTC Vive
Case QBX
Audio Device(s) Realtek ALC1150 > Creative Gigaworks T40 > AKG Q701
Power Supply Corsair SF600
Mouse Logitech G900
Keyboard Ducky Shine TKL MX Blue + Vortex PBT Doubleshots
Software Windows 10 64bit
Benchmark Scores http://www.3dmark.com/fs/12108888
Still depends on a game engine's framework and the amount of modularity on its rendering component. A thin line between a happy coding to coding hell, depends on how things were started in the first place. They can add that nifty new dx11 effect easily without hitting other stuff that much, or do a complete overhaul just to add that shiny shimmering eye candy.
 
Joined
Jul 2, 2010
Messages
4,015 (0.80/day)
Location
UK
System Name PC
Processor AMD Ryzen 3600
Motherboard MSI B450 Mortar Max
Cooling Phanteks PH-TC12DX, 3 x NZXT FN 140mm, 1x NZXT FV V2 120mm
Memory 32gb DDR4 3200mhz
Video Card(s) ASUS R9 290 DCII-OC 4GB
Storage corsair mp600 1TB
Display(s) LG 27MB85Z 27" 1440p
Case NZXT Source 340
Power Supply Thermaltake 675w
Mouse Logitech G500S
Keyboard Logitech G510S
Software Windows 8.1 64 bit
Still depends on a game engine's framework and the amount of modularity on its rendering component. A thin line between a happy coding to coding hell, depends on how things were started in the first place. They can add that nifty new dx11 effect easily without hitting other stuff that much, or do a complete overhaul just to add that shiny shimmering eye candy.

From what i can work out http://www.crytek.com/cryengine

one of the main features of cryengine3 is that it has both a DX9 and DX10 version , if that is true then they only need to upgrade the DX 10 version of the engine to DX11 which takes comparatively little work compared to 9-11

in fact from what i can remember DX11 game engines will actually work on DX10 cards if the new features are disabled, DX11 is actually less 11 and more like 10.x
 
Joined
Jan 2, 2008
Messages
3,296 (0.55/day)
System Name Thakk
Processor i7 6700k @ 4.5Ghz
Motherboard Gigabyte G1 Z170N ITX
Cooling H55 AIO
Memory 32GB DDR4 3100 c16
Video Card(s) Zotac RTX3080 Trinity
Storage Corsair Force GT 120GB SSD / Intel 250GB SSD / Samsung Pro 512 SSD / 3TB Seagate SV32
Display(s) Acer Predator X34 100hz IPS Gsync / HTC Vive
Case QBX
Audio Device(s) Realtek ALC1150 > Creative Gigaworks T40 > AKG Q701
Power Supply Corsair SF600
Mouse Logitech G900
Keyboard Ducky Shine TKL MX Blue + Vortex PBT Doubleshots
Software Windows 10 64bit
Benchmark Scores http://www.3dmark.com/fs/12108888
in fact from what i can remember DX11 game engines will actually work on DX10 cards if the new features are disabled, DX11 is actually less 11 and more like 10.x
Yes, very much. dX11 Its just like an 'extension' of directx10.. Probably overriden/overloaded some functions here and there, but basically still using other existing dx10 'base' functions.

They can technically take Crysis1 dx10, a few edits here and there, pass it through dx11 without adding any features, and call it DX11 title for that.
 
Last edited:

Kreij

Senior Monkey Moderator
Joined
Feb 6, 2007
Messages
13,817 (2.20/day)
Location
Cheeseland (Wisconsin, USA)
DirectX is a group of DLLs (Dynamic Link Libraries) which are full of APIs (Application Programming Interfaces) which allow a developer to access the underlying hardware easier than if they had to write all of their own routines.
Each revision of DirectX is a superset of the previous one (backward compatilbility).
Some of the API calls require a specific hardware implementation in order to function. This is what separates the DirectX?? graphics cards from one another.

Since the DX9 and DX10 APIs are still in DirectX11 (unless obsoleted), recompiling a DX9 or 10 application using the DX11 libraries is not much of an issue. You would not, however, be using any of the DX11 specific APIs.
When gamers think of a DX11 game, they assume that the new DX11 functionality will be written into the code and utilized by their fancy DX11 cards.
To make code compatible with 9, 10 & 11, and application has to get the level information from the card and avoid code paths that are not compatible with the level of hardware. It seems to me that updating an engine to utilize all the new features of a superset of DirectX would not be a trivial undertaking, and the regression testing would have to be extensive to ensure that you didn't break code for running on lesser revisions.

The amount of work (read: expense) to upgrade an engine correctly is probably why you see upgrades to 10 or 11 "hacked" into existing engines, instead of seeing the engines ripped apart and put back together as "real" DX11 engines or rewritten from the ground up.

Disclaimer : I could be completely wrong
 

ctrain

New Member
Joined
Jan 12, 2010
Messages
393 (0.08/day)
Hi all, I am calling all experts to form in a huge line and say loud and proud what makes a DX11 game!!!!

In the context of the Crysis 2, unpleasant for some, surprise of course, but also as a general question. There seems to be a bit of controversy/ignorance/discussion about what kind of WORK has to be done in order to transform a DX9/DX10 game into a DX11 game:

- new textures (this implies basically downloading many GIGABYTES of game), or
- new engine that 'reads' differently, or
- new shaders, new filters, new tessalation instructions, whatever
Of course it could be all of these or part, or something completely different.

Some of the above would involve nearly rewriting a game, or maybe it is just adding some lines of code, here and there, a very streamlined job?

Thanks!

The renderer needs to be rewritten. Depending on how you've abstracted this out in your engine this could mean a bunch of things... lots which could spell trouble. maybe your engine implements some sort of batching system where you cache states, etc, which doesn't necessarily lend itself nicely to how DX10+ does things. If you're just redoing the actual drawing part but not restructuring other shit that further helps manage it to account for other differences that may crop up then you might get sub par performance.

Textures and art assets has nothing to do with DX11 at all. You could have a 1:1 remake of Mario 1 and it can be a DX11 title. I don't know why people think this, but bigger DX version does not mean it needs to have 19023821 fancy / gimmicky effects that massacre framerate for no reason because they're implemented like shit. There's no reason it needs to look any different at all besides marketing. If it runs off the DX11 API, then it's a DX11 title. If it actually makes use of new features and uses them well, then it's a job well done on top of that.

Stuff like tessellation doesn't need to tank performance, rather it's more than capable of increasing it. Of course if you tessellate something to the point where you have so many fucking triangles that you're drawing zillions that are smaller than a pixel on the screen, you will damage performance. It might not even be a problem triangle count wise. Maybe your hardware is more than capable of nomming on millions upon millions (and modern hardware is) but the actual rasterization, pixel wise, is done on small batches of pixels. If your triangles are smaller than the number of pixels your hardware tries to do at once then you're simply damaging rasterization efficiency. As such, there's ways exposed for the developer to try and keep triangles within a certain screen space size to avoid this problem. On top of this, when you have Nvidia trying to flex nuts about how they can add half a million triangles to some dudes crotch bulge or something stupid, it's easy to see how marketing can have a negative impact on results. Smoothing something out is one thing, adding 50x more detail past the point where it's literally impossible to notice a difference is another.

All the drawing is done with shaders since DX10... fixed function stuff in DX9 was depreciated and was simply emulated (via shaders) if you used it. Shader assembly is also gone since DX10, it's up to the driver to compile it.

If Crysis 2 used DX11 and literally looked exactly the same save for performance (hopefully for the better, like BF3 uses the DX11 compute shader for lighting, which is apparently the absolute fastest way on modern hardware) would you be disapointed because it didn't bring about miracle visuals?

DirectX is a group of DLLs (Dynamic Link Libraries) which are full of APIs (Application Programming Interfaces) which allow a developer to access the underlying hardware easier than if they had to write all of their own routines.
Each revision of DirectX is a superset of the previous one (backward compatilbility).
Some of the API calls require a specific hardware implementation in order to function. This is what separates the DirectX?? graphics cards from one another.

DX10 was a clean break, all the legacy shit is gone. It's not a superset of DX9.
 
Top