What's the reason for Ogre to support DirectX 12 in the future?

Discussion area about developing with Ogre-Next (2.1, 2.2 and beyond)


Post Reply
123iamking
Gremlin
Posts: 152
Joined: Sat Aug 12, 2017 4:16 pm
x 4

What's the reason for Ogre to support DirectX 12 in the future?

Post by 123iamking »

According to Ogre 2.1 FQA
What about Vulkan/D3D12 support?

These APIs are in our plans. In fact we are moving to a PSO (Pipeline State Object) approach and our Compositor already knows about tracking Texture/RenderTarget/UAV dependencies and their resource transitions, which should ease greatly porting to these APIs.

However, they're not in the short term goal. Except for Async Shaders, most of these new APIs benefits reduce CPU overhead, not GPU. However, Ogre 2.1 is vastly GPU-bound.
Vulkan has greater priority than D3D12 because there is little D3D12 can do that D3D11 can't, and because Vulkan is the only way to target high performance graphics in Android (a void no version of GLES is filling). But still not a huge deal because Vulkan capable Android devices are very rare. Even in 2016 there are still devices being manufactured and sold that can only handle GLES2 and KitKat.
Short term, we're aiming at focusing in our D3D11 and OpenGL paths and extending towards mobile support (GLES & Metal). Our design decisions leverage Vulkan and D3D12 for easy adaption when that happens. But it will be some time until that happens.
I know that DirectX is great and it has been used a lot in the game industry. It's great to support it. But according to this article:
Speaking on Twitter, Gneiting said that developers using DirectX 12 over Vulkan ‘literally makes no sense.’ Elaborating on his stance, and in response to some questions, Gneiting pointed out that with Windows 7 forming a major chunk of the PC gaming market, and with DirectX 12 being incompatible with Windows 7, using DirectX in an attempt to have ‘one codebase’ makes no sense, since developers would need to create two separate ones anyway. He pointed out that the argument that programming for Xbox One and Windows 10 becomes easier by using DirectX 12 is moot too, because DirectX 12 on Windows and on Xbox is very different, necessitating two separate code paths anyway.

He also made some observations about how a lot of the perceived benefits of DirectX 12 are not exclusive to it, noting that both Vulkan and DirectX give similar performance benefits anyway.

I guess my question here is- if that is the case, why does it bother him at all that DirectX is the preferred code path for developers over Vulkan? I suppose there is something to be said for pushing open solutions like Vulkan, over proprietary and closed ones like DirectX, which effectively trap developers in Microsoft’s development ecosystem, so I can see some of his reasoning. But then, I suppose that DirectX benefits because it is not open- it has Microsoft to evangelize it, because Microsoft have a vested investment in seeing it widely adopted. Vulkan being open by definition has no such custodian, and that is why there is no one to pitch it to developers to the extent that Microsoft do with DirectX.

Read more at https://gamingbolt.com/id-software-dev- ... o7ylsZE.99
So about performance, I don't know but some claim Vulkan can be as good as DirectX 12- or even better (maybe still too early to jump into conclusion)
about portability, Vulkan is definitely better than DirectX 12, DirectX 12 doesn't even support Windows 7 or Windows 8.1 (which are the 2 best Windows I ever use, I've left Windows 10 for Windows 8.1 and I'm really happy with Windows 8.1, but that's another topic).

So what's the reason for Ogre to support DirectX 12 in the future?
Note: I'm just asking out of curiosity, I have nothing against DirectX 12 or DirectX 12 support.
Post Reply