• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Could and should Sony use Direct X in the PS6?

Elios83

Member
They've been doing totally fine without it for years?
Hardware is hardware, they can have and support all the features they want.
It's a matter of what they decide it's worth supporting in hardware and what they think can be done differently.
Having their own API allows for coding closer to the metal and get the best performance out of the hardware.

So no.
 

skit_data

Member
Doesn’t that like… go against the point of being a console with all the benefits that come from being customized around a single spec?

Maybe good for PC ports but for development on the console it seems kinda counter-intuitive.

Outside of the obvious fact of the negative of being at the mercy of their main competitors software of course.
 

Kumomeme

Member
for backward compability as i understand it is not about the API but the architecture differences especially PS3's Cell processor.
 

reezoo

Member
With Unreal5/Unity/IdTech pretty much no one has to bother with any APIs. For first party Sony, they will go to the metal directly to extract every ounce of the performance as there mandate is not to just make games but show what platform is capable of.
 

RoadHazard

Gold Member
Why would they do that? What "second rate" PS5 ports are we talking about, what graphics features are those versions missing from the XSX releases? I haven't heard of any.
 

Belthazar

Member
If a dev wants DirectX like API the PS5 has AGC(X).
If they want to go closer to the metal they have AGC.

Why would Sony want to leverage another API when their low level API works better than DirectX and their highlevel API is basically an equivalent to DirectX?

All of this. Also, Direct X doesn't have as much of a lead in PC gaming as it once did thanks to Vulkan anyway.
 

mansoor1980

Gold Member
200w.gif
 
So my reasoning is this. With a common PC and Xbox development GDK which will leverage Direct X 12 specific features like Mesh Shaders, SFS, Direct Storage, VRS, Direct ML etc developers may push those benefits which might not be available on PS. If Sony has everything the same as PC and Xbox it will make things more streamlined.

Mesh Shaders and VRS are not exclusive to DirectX.
 

DeaconOfTheDank

Gold Member
Some of the responses in this thread just reek of toxic console fanboyism and detract from some genuinely interesting questions posed by OP.

I don't think Sony should adopt DirectX, but there are some obstacles to overcome that Microsoft avoids completely (in most cases):
  • Porting to the PC
  • Backwards compatibility with previous generations
  • Similar to the first point, easier adoption by third-party game engines like Unity, Unreal, etc. because the API is decoupled from the hardware implementation.
If anything, taking more inspiration from Vulkan to address these pain points would be the way to go.

From a developer perspective, just because an API is "lower level" doesn't always mean it's always a good thing. It's more about how the API scales to the complexity of the task while minimizing overhead for using any sort of abstraction to interface with hardware.
 
Last edited:

M1chl

Currently Gif and Meme Champion
Why would they, makes no sense.

They have closest to Apple Metal, architecture wise, but if they switched, why not choose Vulkan?
 
Last edited:

Tripolygon

Banned
  • Porting to the PC
A game designed for Xbox still has to be ported to PC, much easier yes but there’s still a porting process. It’s not just as easy as pressing a button to compile unless it’s a game that was designed to be multiplatform.
  • Backwards compatibility with previous generations
Has nothing to do with directx. All Xbox consoles have used directx hence the name Xbox. Doesn’t mean it’s easy to have backwards compatibility. It took a great amount of work to bring “backward compatibility” with 360 games and limited OG Xbox games. It wasn’t as easy is putting the disc in and play. Each game had to be recompiled and tuned. You are essentially playing a different compiled game than whats originally compiled on the disc.
  • Similar to the first point, easier adoption by third-party game engines like Unity, Unreal, etc. because the API is decoupled from the hardware implementation.
All modern game engines have support for Sony API. It’s no harder to integrate than DX or Vulkan.
 

DaGwaphics

Member
It wouldn't surprise me if they drop the console specific APIs eventually and start building against something standardized. They'd probably go with Vulkan though, LOL.

It might disadvantage them in some ways, but also liberate them in a lot of others. Biggest gain would be reducing the cost of delivering titles to PC (build it once vs. twice).
 

DeaconOfTheDank

Gold Member
Has nothing to do with directx. All Xbox consoles have used directx hence the name Xbox. Doesn’t mean it’s easy to have backwards compatibility. It took a great amount of work to bring “backward compatibility” with 360 games and limited OG Xbox games. It wasn’t as easy is putting the disc in and play. Each game had to be recompiled and tuned. You are essentially playing a different compiled game than whats originally compiled on the disc.
Do you have the source for this? I was under the impression that if the version of DirectX used by 360 game was no longer directly supported, then a compatibility layer was in use to proxy API calls to a supported API version.

All modern game engines have support for Sony API. It’s no harder to integrate than DX or Vulkan.
Maybe I should have been more clear in my first post, DirectX is as "bloated" as it is because of a focus on supporting multiple versions. Heck, Microsoft is known for backwards compatibility far beyond just the console space (old pptx files, x86 programs, file systems from earlier OS, etc), for better or for worse. In contrast, after the PS3 and the cell processor Sony placed less emphasis on supporting older APIs. The bit about game engines having an easier time adopting DirectX is that most features from a previous API version are implicitly supported and so development effort can focus on supporting new features that accompany a new API version.

All valid points btw, thanks for not foaming at the mouth and entertaining some good discussion.

Anyway, my post isn't trying to convince anyone that Sony should use DirectX, more that focusing on revamping their API to be loosely coupled with hardware should help with some of the points I mentioned.
 

Amiga

Member
Porting to PC is not an issue since PS4 switched to x86. Only real work is bug testing across a wide range of PC hardware/software configurations.
 

squarealex

Member
Yo OP, you know DX12 really ? See how the PS4/PS5 games run like not good on PC with DX12 (FFVII:R, Sackboy, Spider-Man)
 
Compiling shaders....

Sony has their own thing already, nobody decries it... If it was bad we would have leaks and hints in interviews about how bad Sony's tools are.

Plus the major game engines make porting even easier. So I'm not sure what they would gain, and they would give control over some of their features and update cycle on their platform to their main competitor.
 

midnightAI

Member
GNM is almost identical to DX12, it is designed to make it easy to port over DX11 and 12 games
I think you mean GNMX? GNM is lower level than DX, GNMX is higher level and is a wrapper for GNM that is more like DX (or at least how DX was, DX12 has improved things but that's MS trying to replicate what Mantle and GNM was doing as far as I'm aware)
 
Last edited:

diffusionx

Gold Member
Another factor is that with Sony publishing their own first party games on to PC, they are having to convert all their engines and games to Direct X anyway. They have done it with a number so far.
Might as well just keep it all DX12.
First of all these challenges can be overcome and minimized with smart modular programming and software design standards. This is something that Sony may not have focused on in the past because they were 100% PlayStation, but rest assured it will be going forward.

So at the cost of minimizing a problem that you can minimize any number of ways, you take on a few. Namely, you are now dependent on your main competitor for key software. You are at their mercy going forward. Second, you have to get DX12 to run on your hardware and your OS or change your OS and your hardware to run on DX12, making yourself more dependent on your main competitor. MS isn’t going to do Sony any favors going forward, especially at the cost of their own platforms.

It just doesn’t make sense.
 
Last edited:

diffusionx

Gold Member
Do you have the source for this? I was under the impression that if the version of DirectX used by 360 game was no longer directly supported, then a compatibility layer was in use to proxy API calls to a supported API version.
Here you go.

MS’ approach to backwards compatibility involves massive, massive amounts of effort across the entire company, it’s not a matter of “just use DirectX bro.” Even then, there are lots of problems.
 

Larogue

Member
No they should embrace Vulkan and other open source APIs.

Never support proprietary APIs such as DirectX or Metal.

They are meant to lock you into their eco-system and artificially gate keep features to suit their business strategy instead of whats currently possible.
 
Last edited:
First off I guess the question should be "can' Sony switch to Direct X and still keep backwards compatibility with previous generations?

They could, but they'd also lose out on the advantages of tight vertical integration, and would maybe need to implement hardware features they would otherwise consider redundant, just to meet Direct X certification.

It would not be too dissimilar to Sega providing Windows CE library compatibility with the Dreamcast, though at the time Microsoft was not a platform holder competitor, which made that choice much easier. Even so, Windows CE had a lot more overhead to it than the Sega libraries for DC, and the games that pushed the system the most (for the time where it was a viable commercial product, which was short-lived so we never got to see its full potential but anyway...), avoided MS's Windows CE tools.

Secondly, would it be wise for Sony to look at doing it?

Probably not, considering again that MS is a direct competitor to them in the console space.

Microsoft has really pushed DX12 to the forefront of PC game development. With the introduction of the GDK they have made it alot easier for developers to make the game on both Xbox and PC at the same time. This integration will mean that the PC and Xbox will be the lead platform instead of PS.

This has literally not happened nearly as much as you want to pretend it has. There is theoretical marketshare, and ACTUAL marketshare, and the two are vastly different. Theoretically, PC & Xbox Series have more marketshare than PS5. In practice, 3P games barely sell that much more, or even less, on PC than they do on PS5, and they sell FAR less on average on Xbox Series than PS5. That's in spite of the theoretical marketshare advantage for Xbox & PC.

Additionally, GDK only recently got better; you must have forgotten earlier on in the generation where many multiplats ran worst on Series X and the main culprit people ran to were the "tools", aka the GDK. The GDK makes it easy to deploy builds for different platforms that support DX12U, but it doesn't completely make the process of optimization arbitrary or automatic for deployment onto those platforms.

Meanwhile, developing a multiplat with PS5 is not going to suddenly ramp up the challenge in porting to PC. Most dev engines are API-agnostic, or at least they can adapt parts of their engine to better work with specific API libraries. Sony provides all the tools necessary to facilitate PS5 software development for 3P developers, they also provide technical assistance if required. In effect, both PS5 and Xbox Series are leveraging the same CPU and GPU architectures, and the bottleneck you seem to think would be in place for PS5 would have to hinge itself on the presence of wildly different computing architectures at the core of its design, which is not the case.

We also saw Microsoft get deep in bed with AMD with the development of RDNA 2 architecture, and I would expect this to continue into the future.

Uh, so did Sony.

Both companies had teams working closely with AMD on RDNA 2 design, primarily for their own specific consoles. MS boasts DX12U having full compatibility with RDNA 2, but that doesn't mean RDNA 2 is a "DX12U GPU". It simply supports the full DX12U featureset, but not at the expense of other APIs like Vulkan, which are also 100% supported.

Direct RT, Direct ML, VRS, SF, Direct Storage, Mesh Shaders was done together, while Sony was forced to work their own solutions, giving them less of these features in the PS5.
Nvidai also fully supports DX for those same functions.

"Forced" is a funny way to put it, because that isn't accurate. All of the things you mentioned there are in relation to Microsoft's brand for DX12U features, aside from Mesh Shaders. That is to say, those are the marketing terms MS uses for the API features specific to their DX12U development package. You don't NEED DX12U to get RT on RDNA 2 GPUs, or to leverage low-precision ML math on RDNA 2 GPUs. However, if you want to use Microsoft's APIs, then you can perform those tasks through Direct RT and Direct ML.

VRS is AMD's thing and is supported in both software and hardware formats. It's similar to FSR, which we know is also supported in both software and hardware (meaning virtually any system can use it, though those with hardware-level support may do it a bit easier). Mesh Shaders, again, are NOT exclusive to Microsoft; it's a technology in relation to a compute-driven graphics pipeline that simplifies some of the steps normally associated with the fixed-function pipeline, while allowing for more flexibility. It also hasn't really been used yet in most any commercial games.

However, the PS5 IS capable of Mesh Shading; it's just that its design is optimized for Primitive Shaders. Similarly, the Xbox Series ARE capable of Primitive Shading, but their designs are tweaked for Mesh Shading. Mesh Shaders are a standard feature of RDNA 2 designs and PS5 IS a RDNA 2-derived design, same as Xbox Series, so the idea that it doesn't support Mesh Shaders is ridiculous at the very least.

If Sony did adopt DX it would help them with hardware support from AMD, help them with making sure any multiports are not second Rate and will help devs with not having to work on a separate Sony solution as well.

And in return, Sony would be ceding even more of their development pipeline ecosystem to reliance upon Microsoft, weakening Sony's ability to provide more non-standard solutions to 3P development partners that might work better than what MS is able to develop at a specific point in time. It also can weaken Sony's ability to curry favor with 3P partners in terms of software deals for their consoles, as vertical integration is weakened.

That last point, is actually part of what I see as the bigger push for MS when it comes to Azure and GamePass; GamePass seems more like a trojan horse means for them to rope in more gaming-centric Azure cloud clients. In turn, that will net more 3P developers into their overall Microsoft technologies ecosystem and trickle down to favored benefits for services like GamePass and platforms that support the service, like Xbox consoles.

It's the main reason why (IMO) Sony should reconsider their MOU with Microsoft if they haven't already, and enter a strategic partnership with Google instead for their cloud servers and Stadia in the event they need mass-scale expansion at a global level in a relatively short period of time. Keep in mind, this wouldn't just be for PS+ services, but also tech support, PS Store, cloud-based software development environments for 3P developers to remote access (something Mark Cerny, Jade Raymond and members of Haven have talked a bit about earlier this year), software hosting, database storage etc.

I'm sure Sony could have both their own and Direct X APIs in the PS6, and I am sure Microsoft would let them use Direct X.

What think ye?

I mean sure, Sony could do both, but why further enable a direct competitor who is also trying to buy a massive 3P publisher off the market and may look into buying even more in the future if circumstances allow it?

It would be different if at least Microsoft were no longer manufacturing Xbox consoles to directly compete with Sony, but that isn't the case now is it?
 

DeaconOfTheDank

Gold Member
Here you go.

MS’ approach to backwards compatibility involves massive, massive amounts of effort across the entire company, it’s not a matter of “just use DirectX bro.” Even then, there are lots of problems.
Thanks for the source - of course building an emulator took lots of time + testing to sniff out an exhaustive list of what to support. The additional game-specific enhancements for things like resolution + HDR, while awesome, are completely unnecessary and go far beyond ensuring backwards compatibility. That being said, DirectX doesn't appear to be the driver for building an emulation layer. As the article points out, thread scheduling discrepancies, access to hardware, and the fact that games were compiled for PowerPC are reasons for needing emulation. If anything, the use of DirectX probably lessened the burden of backwards compat by giving the dev team one less thing to worry about.
 
Last edited:

Yoboman

Member
So your idea is that Sony, at the start of the gen, in the middle of a graphic technology face off against their biggest rival, decide to become reliant on Microsoft for its graphics pipeline.

This is like giving your enemy your gun in a gun duel
 

Tripolygon

Banned
Thanks for the source - of course building an emulator took lots of time + testing to sniff out an exhaustive list of what to support. The additional game-specific enhancements for things like resolution + HDR, while awesome, are completely unnecessary and go far beyond ensuring backwards compatibility. That being said, DirectX doesn't appear to be the driver for building an emulation layer. As the article points out, thread scheduling discrepancies, access to hardware, and the fact that games were compiled for PowerPC are reasons for needing emulation. If anything, the use of DirectX probably lessened the burden of backwards compat by giving the dev team one less thing to worry about.
It's not just software either, there are hardware features involved, carried over from Xbox 360 built into the new console hardware. it's not just a simple emulation, if it were, you would be able to pop in your old game disc or rip the data from the disc and run it, each game is recompiled and when you pop in the disc you are downloading a new recompiled game from their server. The disc is just used as an ownership check. Unlike Xbox One to Series X backward compatibility where you just pop in the disc and the same game data plays.

Microsoft deserves recognition for taking on such a massive effort to bring those old games.
 
Last edited:
DirectX is not a good "API", at some point it was hideous to work with and devs wanted it gone, then newer versions started adopting everything vulkan was doing along with the lower overhead and started to be less of an issue.

It's still not "good" and about the same as suggesting some console manufacturer who's not Apple should adopt the Metal API...
Real question, why were/are most windows games DirectX without support for Vulkan/OpenGL? I too like the idea of using an industry shared system but even with the option it seems most studios don't do it. Side note, I wish the Playstion dev mode was consumer accessible like the Xbox one.
 
Last edited:
Real question, why were/are most windows games DirectX without support for Vulkan/OpenGL? I too like the idea of using an industry shared system but even with the option it seems most studios don't do it. Side note, I wish the Playstion dev mode was consumer accessible like the Xbox one.
I'm not a developer but I think that's a really good question.

If I had to guess, I'd say it's probably several things but above all costs.

The only console that supports Vulkan for development is the Switch (and even then it's an optional API, as their own is called NVN), OpenGL is quite obsolete and not low level enough at this point. This means if you develop multiplat games that have Xbox as a supported platform you'll have a DirectX optimized version of the game, but you won't have a Vulkan one. So most devs probably think "why not roll out a PC version using the DirectX API?" it's certainly cheaper to do in regards to development time and Quality Assurance.

If PS5 used Vulkan I think we would be seeing more native Vulkan games on PC. Or if Linux as a gaming platform took off.
 

Black_Stride

do not tempt fate do not contrain Wonder Woman's thighs do not do not
Real question, why were/are most windows games DirectX without support for Vulkan/OpenGL? I too like the idea of using an industry shared system but even with the option it seems most studios don't do it. Side note, I wish the Playstion dev mode was consumer accessible like the Xbox one.
OpenGL is obsolete for gaming.
Mantle was abandoned. (donated)
Vulkan which itself is kinda variant/derivative of Mantle and is a relatively new player.
Metal is Apple exclusive.
DirectX 12 itself "borrows" some features from Mantle.

DX11 and DX9 are "easier" to use which is why they got really popular (we dont talk about DX10).
DX12 is more hands on because it exposes alot of low level control, which is probably why we are seeing some bad DX12 versions of games.

As devs get more competent with Vulkan and DX12 we should should see PC hardware get better utilized.
Which one will be used more.....who knows.
 

DeaconOfTheDank

Gold Member
It's not just software either, there are hardware features involved, carried over from Xbox 360 built into the new console hardware. it's not just a simple emulation, if it were, you would be able to pop in your old game disc or rip the data from the disc and run it, each game is recompiled and when you pop in the disc you are downloading a new recompiled game from their server. The disc is just used as an ownership check. Unlike Xbox One to Series X backward compatibility where you just pop in the disc and the same game data plays.

Microsoft deserves recognition for taking on such a massive effort to bring those old games.
I wouldn't call emulation simple, as it requires thorough understanding of the emulated hardware involved and how that translates to the host/running machine.

I still stand by the statement that designing and utilizing a graphics API with backwards compatibility as a guiding principle is critical for development in the long term (e.g. across generations + porting). In this case, the OP calls out DirectX as an example whereas I would lean more towards an open source API like Vulkan.
 
Last edited:

Tripolygon

Banned
I wouldn't call emulation simple, as it requires thorough understanding of the emulated hardware involved and how that translates to the host/running machine.

I still stand by the statement that designing and utilizing a graphics API with backwards compatibility as a guiding principle is critical for development in the long term (e.g. across generations + porting). In this case, the OP calls out DirectX as an example whereas I would lean more towards an open source API like Vulkan.
The API being DX did not make it easier. You can stand by what you say but it is just not true. It took a great amount of engineering effort including on the hardware side to accomplish it. Just because something is DX does not make it easy. Same goes for PS5 and Xbox Series running last gen games, it took a great amount of engineering on AMD part and on Sony and Microsoft part to make it work. Sony literally added PS1 hardware in PS2 and PS2 in PS3 to make it easier to have BC. PS Vita had bits of PSP hardware in it to make it work. We are so used to things just working on PC side for generations that we fail to see it takes a great amount of engineering to maintain that continuity. Look at Intel Arc GPU, it cannot run old DX 9 games proper, so they have to emulate it in DX12 to get it to run old games poorly.

It's not an easy task because fundamentally, the Xbox 360's PowerPC processor is worlds apart from Xbox One's x86 foundation. Floating point calculations need to be adapted from 40-bit to 32-bit, with potential implications for aspects like collision detection, but Microsoft's aim here is clear - to be able to host game code on their virtualised Xbox 360 and for it to run as close as possible to original hardware.

Here's another example, it's taken almost 3 years to get Direct Storage on windows to work when it's been on Xbox Series since 2020 and the implementation is different despite it being the same DirectX. The OP lacks basic understanding as to how these things work.
 
Last edited:

Lex Tenebris

Neo Member
I see you have no idea what you are talking about.

The low level API version of a game, especially in the hands of Sonys own devs will always be the superior version of the game.
Which means logically a high level API version of that same game is gimped in comparison.

Sure to the end user you have no idea what API is being used, but to the devs who have to go through a wrapper or translation layer, they will know that this bullshit is adding frametime for no good reason and will likely beg Sony to give them a low level API to work with so they can extract the most from the hardware they have been given.

This topic isnt about end users however, it is about the devs.
If a dev wants to use high level API Sony already provides a wrapper to their low level API and it is similar to DirectX.
Third party devs who have to release on all platforms likely use the high level API which is how they can achieve something much closer to parity and release across all platforms day and date.
Sonys first party devs have to show off the Playstation in the best possible light, we cant expect them to purposely be leaving performance and features on the table by using a wrapper layer.
I never said they should use directx which is impossible in many ways, they should opt for vulkan which is very low level since it is based on mantle. That will be the base for an environment customised by Sony that will make porting to PC way easier and could also ship on non Windows platforms, like steam deck. I don't understand what are the troubles for the developers. If something take too much render time, with a new api, they will simply need to dial down a little and the performance will be the same, they already do this every day till the game goes gold. As they already needed to adapt their engines when they shift from cell to amd apu.
As I said all this make sense for their business, sure the developers may need to change something, but in every working environment to save costs something must change and workers may need to adapt.
The problem it's not the wrapper, it's the conversion to other platforms, which seems to be important for Sony. And it isn't a little less resolution or a little less shading quality that will make sony games worse, that's fapping material for fanboys, developers need and want to sell as much as they can and work with tools that make their work easier.
So to conclude, I have no doubt that sony developers with a custom tailored low level api will use the hardware in the optimal way, but that will cost Sony more money and need more effort to achieve performance parity when they port their game to pc.
 

Black_Stride

do not tempt fate do not contrain Wonder Woman's thighs do not do not
I never said they should use directx which is impossible in many ways, they should opt for vulkan which is very low level since it is based on mantle. That will be the base for an environment customised by Sony that will make porting to PC way easier and could also ship on non Windows platforms, like steam deck. I don't understand what are the troubles for the developers. If something take too much render time, with a new api, they will simply need to dial down a little and the performance will be the same, they already do this every day till the game goes gold. As they already needed to adapt their engines when they shift from cell to amd apu.
As I said all this make sense for their business, sure the developers may need to change something, but in every working environment to save costs something must change and workers may need to adapt.
The problem it's not the wrapper, it's the conversion to other platforms, which seems to be important for Sony. And it isn't a little less resolution or a little less shading quality that will make sony games worse, that's fapping material for fanboys, developers need and want to sell as much as they can and work with tools that make their work easier.
So to conclude, I have no doubt that sony developers with a custom tailored low level api will use the hardware in the optimal way, but that will cost Sony more money and need more effort to achieve performance parity when they port their game to pc.
AGC is already very Vulkan like.
Even if they used Vulkan on PS5 the port job isnt copy paste.
Thats what you arent understanding, you are acting like if its using APIX on PS5 and APIX exists on PC then the port job is two seconds of work or something.

If anything you should be asking why Sony doesnt use Vulkan on PC.
 

yurinka

Member
First off I guess the question should be "can' Sony switch to Direct X and still keep backwards compatibility with previous generations?

Secondly, would it be wise for Sony to look at doing it?
Microsoft has really pushed DX12 to the forefront of PC game development. With the introduction of the GDK they have made it alot easier for developers to make the game on both Xbox and PC at the same time. This integration will mean that the PC and Xbox will be the lead platform instead of PS.
We also saw Microsoft get deep in bed with AMD with the development of RDNA 2 architecture, and I would expect this to continue into the future.
Direct RT, Direct ML, VRS, SF, Direct Storage, Mesh Shaders was done together, while Sony was forced to work their own solutions, giving them less of these features in the PS5.
Nvidai also fully supports DX for those same functions.

If Sony did adopt DX it would help them with hardware support from AMD, help them with making sure any multiports are not second Rate and will help devs with not having to work on a separate Sony solution as well.

I'm sure Sony could have both their own and Direct X APIs in the PS6, and I am sure Microsoft would let them use Direct X.

What think ye?
The question more than if Sony would adopt it would be if MS would want to implement and allow DirectX on PS and Switch. But they won't because they want you buy an Xbox instead.

Sony wouldn't use it because they have a better solution more optimized for gaming and consoles, generating less overhead to provide a little extra performance and allowing devs 'code to the metal', while DirectX has another approach more designed to use it on a wider range of hardware.

Nowadays most devs don't care because they don't touch it because unlike in the past now it's more common to use external game engines like Unity or Unreal who are the ones who interact with DirectX and similar. Or even in the case of AAA companies who build their own engines, or in the UE/Unity teams there's a specific team for these things so most of the other devs don't care, it's transparent for them. And the ones working with these things would choose the most optimized possibility in terms of performance/memory usage/etc., which pretty likely would be platform specific solution instead of the other solution that supports a very wide amount of different hardware.
 
I was quoted a few times, yeah OpenGL is obsolete but Vulkan is it's major shift and continuation. I understand not liking potentially limiting parts of Vulkan but extensions are a thing. I'd like to know what is possible on Sony's or Apples API that wouldn't be possible with Vulkan and custom extensions.

Separate topic but somewhat similar, isn't it time for a shared API for VR?
 

DeaconOfTheDank

Gold Member
The API being DX did not make it easier. You can stand by what you say but it is just not true. It took a great amount of engineering effort including on the hardware side to accomplish it. Just because something is DX does not make it easy. Same goes for PS5 and Xbox Series running last gen games, it took a great amount of engineering on AMD part and on Sony and Microsoft part to make it work. Sony literally added PS1 hardware in PS2 and PS2 in PS3 to make it easier to have BC. PS Vita had bits of PSP hardware in it to make it work. We are so used to things just working on PC side for generations that we fail to see it takes a great amount of engineering to maintain that continuity. Look at Intel Arc GPU, it cannot run old DX 9 games proper, so they have to emulate it in DX12 to get it to run old games poorly.



Here's another example, it's taken almost 3 years to get Direct Storage on windows to work when it's been on Xbox Series since 2020 and the implementation is different despite it being the same DirectX. The OP lacks basic understanding as to how these things work.
I'm not saying that it's an automatic process for backwards compatibility as you're suggesting. I'm saying the choice of graphics APIs is one of - not the only - key factors for cross-platform compatibility, which includes porting to PC and support for back-compat. I even went out of my way to address this bit in a previous post that you seem to have missed:
That being said, DirectX doesn't appear to be the driver for building an emulation layer. As the article points out, thread scheduling discrepancies, access to hardware, and the fact that games were compiled for PowerPC are reasons for needing emulation. If anything, the use of DirectX probably lessened the burden of backwards compat by giving the dev team one less thing to worry about.
Again, I stand by the statement that using DirectX generally makes porting to other platforms easier simply by the fact that it will typically give the dev teams one less factor to worry about (graphics API, hardware access, storage access, etc.). The likelihood that a DirectX implementation already exists on the target platform is high, unless you want to run it on Linux or PS4/PS5. In the case of Linux, we can use something like a compatibility layer like Proton or go another route and utilize Vulkan. As for PS5, you're better off using a third party engine like Unity or Unreal and minimizing writing graphics API-specific code where possible, unless you want to be a console exclusive or engage in double work.

Alright, last try to get my point across, because I'm at a loss as to how else I can illustrate this. Let's look at couple of games that are available on both PC and console and hone in on the graphics API used in each case. Just to be clear, the graphics API is only one of the key factors when porting to multiple platforms.

Let's start with Sony first party titles (and some third-party exclusives) that were ported to the PC. While I know third party studios may have helped with porting, they still had access to the source code and Sony dev kits. Keep in mind that these all use proprietary engines; there isn't any reliance on Unity or Unreal for cross-platform development:
TitlePS4/PS5PC
God of War 2018GNM(X)DirectX11
Horizon Zero DawnGNM(X)DirectX12
SpidermanGNM(X)DirectX12
Death StrandingGNM(X)DirectX12
Uncharted 4GNM(X)DirectX12

Clearly, the graphics API in use for Sony's console doesn't allow for a seamless transition into the PC space. Again, this isn't the only one consideration when porting to other platforms. However, you can't tell me that writing another implementation of the graphics pipeline using DirectX isn't going to sink considerable dev time.

Now let's take a look at Microsoft first party titles (and some third-party exclusives) that were ported to the PC. For the sake of a consistent comparison, I'm choosing titles that use their own in-house engines:
TitleXBX/XSXPC
Hellblade: Senua's Sacrifice (Unreal Engine)DirectX12DirectX12
MS Flight Simulator 2020DirectX12DirectX12
Quantum BreakDirectX12DirectX12 + DirectX11
Forza Horizon 5DirectX12DirectX12
Halo: InfiniteDirectX12DirectX12

I'll let you draw your own conclusions.
 
Last edited:

Tripolygon

Banned
Now let's take a look at Microsoft first party titles (and some third-party exclusives) that were ported to the PC. For the sake of a consistent comparison, I'm choosing titles that use their own in-house engines:
TitleXBX/XSXPC
Hellblade: Senua's SacrificeDirectX12DirectX12
MS Flight Simulator 2020DirectX12DirectX12
Quantum BreakDirectX12DirectX12 + DirectX11
Forza Horizon 5DirectX12DirectX12
Halo: InfiniteDirectX12DirectX12

I'll let you draw your own conclusions.
Hellblade Senua Sacrifice is an Unreal Engine game that released simultaneously on PS4 and PC. Released on Xbox One a year later.

MS Flight Simulator released on PC first and was ported to Xbox almost a year later

Quantum Break was a multiplatform game developed and released simultaneously for PC and Xbox and so was halo infinite. The north light engine has been used for games dating back to PS2.

Sony intentionally made their API and shader language as close as possible to Directx HLSL to make it easy to port games between both API.
 
Last edited:
Top Bottom