Skip to main content
GameDev.net gamedev.net
🔒 Locked

Is DirectX Supported on other consoles besides Xbox?

Started by monkey7461 Jan 18, 2014 at 10:47 PM 14 replies 5.5k views
Original Post
monkey7461
monkey7461

Is DirectX Supported on other consoles besides Xbox?

frob
frob

Obviously anyone with direct knowledge will need to preserve their nondisclosure agreements.

The exact details of Sony's development tools are covered by NDA, which means Google will be your best source of information if you don't have it directly. (And if you do have it directly, linking to third party articles describing it is your safest bet for the same reason.) There is much information out there already, some obtained by reverse engineering and others obtained by information leaks.


Because of the NDAs in place, Google will be your friend in getting detailed answers. Useful clicky.

According to articles ( smile.png )The PS4 systems are extremely similar to the DX11.2 interfaces but have a few name changes. Also consider the hardware in the machine and this should make sense.

S1CA
S1CA

Dreamcast 'supports' DirectX too :) http://msdn.microsoft.com/en-us/library/ms834190.aspx

Thing is, because console hardware is fixed, some of the abstractions in the Direct3D you find on PC are unnecessary, so even on the Xboxen (and Dreamcast) there's D3D and another API that lets you get at some of the lower level aspects of the hardware directly - people tend to use a mixture of both.

Regarding PS4, this article: http://www.eurogamer.net/articles/digitalfoundry-how-the-crew-was-ported-to-playstation-4 covers a talk I co-presented at the Develop conference last year and has the few details that Sony allowed us to talk about publicly - as frob says, everything else is still covered by NDAs so isn't open for discussion.

Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site
Hodgman
Hodgman

A short and cryptic answer:
AFAIK, there's no two consoles that use the same graphics API, and there's no console that uses an API that's also available/identical on PC. They're all unique.

TheChubu
TheChubu

According to articles ( smile.png )The PS4 systems are extremely similar to the DX11.2 interfaces

Half Life 3 confirmed.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"   My journals: dustArtemis ECS framework and 
FGFS
FGFS

No, unless I went crazy... Only OpenGL is crossplatform.

BTW the upcoming steam consoles are cool...

Hodgman
Hodgman

No, unless I went crazy... Only OpenGL is crossplatform.

But not supported on any consoles...

FGFS
FGFS

Now that would really surprise me as PS4 is based on FreeBSD. Of course it supports OpenGL look for ex. here:

http://gematsu.com/2013/03/sony-shares-new-ps4-details-at-gdc

Personally I'm more surprised to see DX support. Wonder how they do that? Probably something alike Valve is

doing for their Steamboxes?

frob
frob

Now that would really surprise me as PS4 is based on FreeBSD. Of course it supports OpenGL look for ex. here:
http://gematsu.com/2013/03/sony-shares-new-ps4-details-at-gdc

Personally I'm more surprised to see DX support. Wonder how they do that? Probably something alike Valve isdoing for their Steamboxes?

Never trust news reporters for technical content. Even when they provide direct quotes from experts they tend to miss critical details, misrepresent facts, or misstate details when they simplify it for the masses.

No current or previous game console, not even those from Microsoft, uses DirectX. They don't even use the Direct3D subset of DirectX. Even on the Microsoft products there are differences from what the console's library offers from the Windows DirectX suite. That doesn't mean they are dissimilar, only that it is different.

The hardware is based on certain instructions and commands, and is a custom built card based on those used on desktop computers. It is very easy to devise a rendering library that is similar to -- but distinctly different from -- the desktop counterparts. Several systems have offered a graphics interface that was similar to OpenGL, but it wasn't exactly OpenGL. They usually also include an interface that provides lower-level access.
Hodgman
Hodgman

Now that would really surprise me as PS4 is based on FreeBSD. Of course it supports OpenGL look for ex. here:
http://gematsu.com/2013/03/sony-shares-new-ps4-details-at-gdc

Personally I'm more surprised to see DX support. Wonder how they do that? Probably something alike Valve is
doing for their Steamboxes?

That article is plain (laughably) wrong on saying that the PS4 supports GL and D3D.
The source that they're citing actually said that the PS4 GPU supports the entire set of features that are available via D3D11.2 or GL4.1 on PC -- not that it supports those specific APIs. Tech-illiterate journalists then misinterpreted the presented statements otherwise (confusing a set of features with a way of accessing features)...

I have a PS4 devkit on my desk, so I can't say too much due to NDA, but it goes without saying that consoles use their own APIs instead of borrowing wholesale from the PC.

TheChubu
TheChubu

Besides, if one were to be guided by their kernel of choice, then the PS4 would have a very crappy GPU support :D

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"   My journals: dustArtemis ECS framework and 
FGFS
FGFS

Smacks like a pain in the ass. Could you simply develop in OpenGL on Linux and compile for Steam and PS4?

Hodgman
Hodgman

Could you simply develop in OpenGL on Linux and compile for Steam and PS4?

As above, there is no OpenGL implementation for the PS4...

Direct3D 9 gets you WinXP+.

Direct3D 11 gets you WinVista+.

Direct3D 11.1 gets you Win8+.

OpenGL2 + GL3 + GL4 gets you Linux/Mac/Windows.

GNM gets you PS4.

GCM and/or PSGL gets you PS3.

GXM gets you PSVita.

"DirectX 11.x" gets you Xbone.

"DirectX 9.x" gets you Xbox360.

GLES 1 + GLES2 gets you Android/iOS.

WebGL gets you HTML5.

GX gets you Wii.

GX2 gets you WiiU.

If you want a cross platform graphics API, you've got to make your own wrapper around most of the above... or you can use an existing game engine that's already done this work happy.png

Chris_F
Chris_F

Could you simply develop in OpenGL on Linux and compile for Steam and PS4?

As above, there is no OpenGL implementation for the PS4...

Direct3D 9 gets you WinXP+.

Direct3D 11 gets you WinVista+.

Direct3D 11.1 gets you Win8+.

OpenGL 2.x/3.x/4.x gets you Linux/Mac/Windows.

GNM gets you PS4.

GCM and/or PSGL gets you PS3.

GXM gets you PSVita.

DirectX 11.x gets you Xbone.

DirectX 9.x gets you Xbox360.

GLES 1.x/2.x gets you Android/iOS.

WebGL gets you HTML5.

GX gets you Wii.

GX2 gets you WiiU.

If you want a cross platform graphics API, you've got to make your own wrapper around most of the above... or you can use an existing game engine that's already done this work happy.png

And Mantle gets you AMD.

S1CA
S1CA



Could you simply develop in OpenGL on Linux and compile for Steam and PS4?

As above, there is no OpenGL implementation for the PS4...

Direct3D 9 gets you WinXP+.
Direct3D 11 gets you WinVista+.
Direct3D 11.1 gets you Win8+.
OpenGL 2.x/3.x/4.x gets you Linux/Mac/Windows.
GNM gets you PS4.
GCM and/or PSGL gets you PS3.
GXM gets you PSVita.
DirectX 11.x gets you Xbone.
DirectX 9.x gets you Xbox360.
GLES 1.x/2.x gets you Android/iOS.
WebGL gets you HTML5.
GX gets you Wii.
GX2 gets you WiiU.

If you want a cross platform graphics API, you've got to make your own wrapper around most of the above... or you can use an existing game engine that's already done this work happy.png



And Mantle gets you AMD.



Yep. On PC.

Similarly (only slightly tongue in cheek) Glide gets you 3Dfx. PVR SGL gets you PowerVR PCX. On PC ;)
Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site
Hodgman
Hodgman

And Mantle gets you AMD.

Yep. On PC.

FWIW though, if you've got a PS4 game, porting from PS4->Mantle will be much easier than porting from PS4->Dx11 or PS4->GL (AMD did make the PS4 API, after all).

Also, PS4/Mantle allow you to do things that simply cannot be done via Dx11/GL!

It would therefore be impossible to port some features from console to Dx11/GL, without re-implementing them using a different algorithm. Mantle on the other hand allows for a straightforward console->PC port (for AMD users only...)

Usually when developing a console game, you actually do most of the work on PC. You use an engine that runs on the PC and on the console, so that most people on the team can work with just a PC and only occasionally test/profile on the console.
This presents a problem when you're using features on your console that cannot be implemented on your PC build.
Mantle solves that issue by bringing console-like capabilities to the PC.
It wouldn't surprise me if many console-only developers start supporting Mantle internally just for their own development tools wink.png

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.