Will Directx 12 be coming to the ps4?

#1 Posted by vpacalypse (567 posts) -

Will Directx 12 be coming to the ps4?

& would it be of any benefit to the system?

What does it actually do.

#2 Posted by GTR12 (9651 posts) -

@vpacalypse:

No, PS4 uses OpenGL

#3 Posted by vpacalypse (567 posts) -

I see. Makes sense.

Can the ps4 utilize both the opengl & amd mantle api?

Any chance we'll be seeing this soon or?

#4 Edited by GTR12 (9651 posts) -

@vpacalypse:

No, never.

#5 Edited by BattleSpectre (6208 posts) -

@GTR12 said:

@vpacalypse:

No, never.

Never, say never ;D

lol

#6 Posted by MondasM (1263 posts) -

after sony acquires ms in 2065 ps 15 will have directx 27...

#7 Posted by ACP_45 (434 posts) -

@vpacalypse: directx is microsoft ......... How would Sony get DirectX??

Sony doesn't use OpenGL but something very much like it and Mantel. The API is OpenGL based basically.

What do you mean by it can use both the OpenGL and Mantle API ?

#8 Edited by scottpsfan14 (5562 posts) -
@vpacalypse said:

Will Directx 12 be coming to the ps4?

& would it be of any benefit to the system?

What does it actually do.

PS4 will not be getting Direct X. PS4 has 2 API's called GNM and GNMX. GNM is low level and gives low level access to the hardware for increased performance, GNMX is a high level API wrapper similar to Direct X 11.2 and is compatible with HLSL (DX code). This is for easy ports too and from PC's. So PS4 has absolutely no need for Direct X12 or Mantle.

#9 Edited by vpacalypse (567 posts) -

I can see now that direct X has no business being on the PS4.

So GNM is to optimize? & GNMX for scaling/ portability from across consoles & PC's?

Who made these API's? I'm assuming they can still be evolved with time & effort just as directX will be doing.

#10 Edited by osan0 (12738 posts) -

DirectX is a MS technology so thats not going to happen.

PS4 uses its own API and they can certainly be updated over the life of the console. they have to be careful not to break compatability though (i.e. if they update the API next year and it breaks a launch title then thats really really bad). this applies to any API on any console though.

mantle is no good to a console. its AMDs attempt to bring lower level access to developers making PC games. i know this is the playstation forum so i dont mean to compare. but basically a PC game uses openGL or DX for its API to run games. it has a lot of abstraction which allows PC games to run on a wide variety of hardware (so i could have an Nvidia card or an AMD card and different CPUs and the game will still work on my PC). the downside of this abstraction is that it incurrs a performance penalty. mantle is AMD bypassing DX/openGL and giving developers lower level access to the hardware which will increase performance. the downside is that mantle (for now at least) only works on modern AMD GPUs.

mantle is no good in the console world really since developers already have that low level access. having it on consoles might make cross platform development a little bit easier but it wouldnt benefit either console.

#11 Edited by vpacalypse (567 posts) -

@osan0 said:

DirectX is a MS technology so thats not going to happen.

PS4 uses its own API and they can certainly be updated over the life of the console. they have to be careful not to break compatability though (i.e. if they update the API next year and it breaks a launch title then thats really really bad). this applies to any API on any console though.

mantle is no good to a console. its AMDs attempt to bring lower level access to developers making PC games. i know this is the playstation forum so i dont mean to compare. but basically a PC game uses openGL or DX for its API to run games. it has a lot of abstraction which allows PC games to run on a wide variety of hardware (so i could have an Nvidia card or an AMD card and different CPUs and the game will still work on my PC). the downside of this abstraction is that it incurrs a performance penalty. mantle is AMD bypassing DX/openGL and giving developers lower level access to the hardware which will increase performance. the downside is that mantle (for now at least) only works on modern AMD GPUs.

mantle is no good in the console world really since developers already have that low level access. having it on consoles might make cross platform development a little bit easier but it wouldnt benefit either console.

That's a very clear explanation @osan0.

No performance to be gained from amd mantle api due to the current ps4 GNM api (low level).

Is GNMX , the high level API, similar to OpenGL then. Which is why people claim that it's very to easy to port from pc to console now thanks to this api?

& wouldn't GNMX be somewhat compatible with directX then (as apparently it's very easy to port from xbox to ps4 or even PC to ps4)

#12 Edited by osan0 (12738 posts) -

@vpacalypse: its a combination of things that are making porting and cross platform development easier

1) the hardware now has a lot more in common. looking at last gen: the PS3, 360, wii and PC had little in common on the hardware front. the gen before that the PS2 and gamecube had nothing in common with the PC (the first xbox did). but now its all x86 cores and graphics chips that use a lot more off the shelf technology. the PS4 doesnt have some custom optigoogleplexhypershader5000 that requires custom written binary to make it work or anything...it has unified shaders, tesselators and so on as you would find on a PCs GPU and they both can do the same things to all intents and purposes. there are still differences of course between the platforms (PC has split ram, X1 and PS4 have unified ram, X1 has alot more embedded ram but slower main ram and the PS4 has 1 pool of GDDR5 which has high bandwidth but introduces more latency...things like that (im not going to debate which is better since this is not SW).). but overall the hardware is closer than ever before.

2) I dont know the details on GNMX is have to admit (guy on internet admits he doesnt know...shocker :P) but i would guess that sony are making it as easy as possible for developers to use as much of their existing code as possible from the PC build or whatever other build of a game they might have. someone mentioned it works with HLSL which certainly helps. if anyone else has more info it would certainly be interesting.

so its a combination of these things that makes it easier for developers. they can reuse more code and assets between versions.

#13 Edited by vpacalypse (567 posts) -

So it's a situation where one size fits almost all now. @osan0

What is the relationship between low level api and high level api. You've clarified low level is to access more of the gpu for performance purposes, & high level is for compatibility/ portability. Do instructions (lines of code) run off to the high level & from there are routed off to the low level where necessary?

Is the current version of directx in the xbox one a one level api or something atm? (I'm guessing high level)

#14 Posted by osan0 (12738 posts) -

@vpacalypse: there is no inherent relationship between a high level and low level API. e.g. DX does not pass on data to mantle on a PC. sony may have implemented a pass from their high to their low level API but its not something they would have to do. its important to mention that drivers and APIs go hand in hand. the API is just an interface that defines how a piece of code (e.g. a games rendering engine) can interact with another peice of code (e.g. the graphics driver). an API is useless without a driver that implements that API.

think of it as layers.

from lowest to highest (roughly)

1) hardware,

2) Hardware abstraction layer (HAL)

3) Kernel (may or may not include things like graphics drivers...depends on the system) manages hardware resources. things like scheduling processor tasks, managing which apps are using what memory).

4) system software (APIs (low and high levels. an API would provide interfaces for the kernel), drivers (possibly including graphics drivers), configuration tools, UI toolkits (tell the computer how to draw a button..that kind of thing)..stuff like that)

5) applications (games, web browser, the UI itself and so on). applications can access other layers directly if the layer above allows it (so windows, i think, does not allow developers to completely bypass windows when writing an application for example).

to get the very best performance out of any hardware you would write your application entirely from scratch directly for the hardware. no OS, API or driver (any driver you would write yourself specifically to your requirements) or any of that. this isnt really a runner today due to the sheer cost and complexity. developers sometimes refer to this as to the metal coding or running on metal (even though there is very little metal :P). some parts of a game, especially on older consoles, would run on the metal. but not the entire thing.

the further a developer steps away from the hardware the more of a performance hit they take. this happens simply because it takes longer for data to get processed. you rely more on other peoples code to get things done the higher you go. thats not to say that other peoples work is bad...its just built to be as generic as possible so it can be used in a wide range of scenarios. there is also things like dealing with overhead from legacy code. this gets passed through drivers that have to comply with the standards of the API. the standard may not be ideal for a particular piece of hardware but it must be adhered to or the code wont work. the data also has to pass from application to API, to driver, to HAL, to hardware and then any data being returend has to return the same way.

so to make it easy for developers sony may make GNMX at or close to compatible with openGL code (just an example here...i dont know if they do). this could introduce a whole load of extra fluff that may not be ideal for the PS4s hardware. but if, as a developer, i am working to the openGL spec and sony say GNMX is openGL compatible then i expect it to have certain features and behave in a certain way. if it doesnt my application wont work.

but with GNM the API can be written specifically and only for the PS4s hardware. it doesnt have to be standards compliant in any way. its more like talking to the driver directly and the driver has been put on a tough exercise and diet routine so all the fat from standards compliance is gone. the upside is more performance. the downside is the developer needs to do more of the heavy lifting to get things working because they dont have the support of established standards and the driver does a lot less.

the version of DX in the X1 is a low level API. its called DX and it has a lot in common with the DX found on the PC (which is a higher level API)...but MS have taken an axe to it. its specifically built with the needs, and only the needs, of the X1 in mind.

#15 Posted by vpacalypse (567 posts) -

@osan0 you've gone into detail there (which is great). I'll get back to you with maybe some more questions on this topic soon.

#16 Edited by blackace (20858 posts) -

@vpacalypse said:

Will Directx 12 be coming to the ps4?

& would it be of any benefit to the system?

What does it actually do.

Doubtful. I think it already has some form of DX11 on it's system. They will use OpenGL or Mantel.

#17 Edited by Cloud_imperium (3559 posts) -

PS4 is all about Open GL my friend . On other hand Xbox uses Direct X . PC can use both but most devs use Direct X .

#18 Posted by GTR12 (9651 posts) -

I cant believe this topic is still going...

If your not a developer, why do you care? just play the damn games.

#19 Edited by vpacalypse (567 posts) -

@osan0 "the version of DX in the X1 is a low level API. its called DX and it has a lot in common with the DX found on the PC (which is a higher level API)...but MS have taken an axe to it. its specifically built with the needs, and only the needs, of the X1 in mind."

If microsoft have taken an axe to the higher level API which is DX & reduced it to better compliment the X1 hardware for performance gains, would this also mean that devs need levy more of the work & be more code specific to utilise this lower level API (because there is no generic higher level API to work with)? Or at least to my knowledge there isn't a higher level API.

I can understand the devs on the ps4 would also have to levy more of the work in accessing the lower level API, but maybe maybe lighter games would have easier time of it as they would only really be dealing with the more generic higher level API but on the X1 they have to deal with implementing more code. Does this logic make sense?

Or is it just a higher level API with lower level access built into it (which inherently sounds more efficient than the two layer API system the PS4 has deployed).

Also, are you trying to say devs can override the hardware abstraction layer to access the actual core components via drivers?