Do PS3 engineers and developers have to build an API from scratch?

Hi. I've been reading these forums for quite a while now and I must admit that I am very impressed with the knowledge displayed by various members. I registered past month with another nick (Cyaneyes) but it was a temporal situation. This is my definitive nickname.

Well, I'll come to the point. You have talked for some time now about RSX and its G70 based technology. I'm not a techie guy, just someone who tries to learn from people that produce intelligence and not dumbness and often illiterate opinions about consoles.

Reading over all your arguments on the subject I detected a *weak point*. I am not saying that your conclusions have been proven to be wrong and/or irrelevant, unsubstantiated nor uninteresting, of course. Most likely I am the one who is wrong, but my curiosity is getting to me. I am not afraid to state my views, though.

The question is; if RSX is a DX9 based GPU and DX is a Microsoft API and, as far as I know, MS didn't license it to Sony, why people here say RSX is going to pull off DirectX effects adding to that that Cell will act as a helper? For instance, HDR is one of the few things that are common between RSX and Xenos, along with features such as MSAA, vertex shaders, etc.

But full DirectX 9 support? I don't think so. At first I thought SM2.0 and SM3.0 were also some of the *basic* features for next gen consoles, but I remember a post by Ziff? -I am not sure- stating that shader models are DX only features.

This leaves me to the conclusion that RSX is mostly a disabled, invalid, full of wasted logic chip, so developers and talented programmers like nAo, ERP, Fafalada, etc etc, will need to rack their brains in order to bleed dry the thing. Worse than that, programming tools of Sony are quite inefficient at offering easy to work with methods and it means wasted time for developers. Excuse me if I am wrong...

I know, the PS3's API is OpenGL, but it has not evolved over the years. OpenGL in the past was great but now that it's getting old and crappy its graphical quality is definitely dying. Recreating DX effects without MS code is not an easy task, since DX needed 10? years of evolution to get where it is now and I just don't see PS3 engineers emulating it. PS3 is surrounded by mistery, I fear it is witchcraft.

Well, that's pretty much all there is to it, I am just trying to shed my doubts.

Greetings.

PS: Btw, where is Mintmaster? I truly miss him, his posts were always VERY interesting.

__________________________________________________

"Unlucky in games, lucky in love"

Xbox 360 gamertag: Cyaneyes or Arctic
 
I'm not a console dev, but from what I gather...

We should be thankful that PS3 (and 360) aren't using just DirectX =o

Dev's don't need to write an API either, there is OpenGL ES (opengl isn't really quite as ghetto as you seem to think it is) and apparently a low level RSX access API.

Any effects you see done with DirectX (so far -- maybe some DX10 effects that require new hardware) are reproducable on RSX... DirectX is likely a whole lot more limited in what kind of arbitrary things you can accomplish when compared to having to-the-metal access, so I'd say achieving SM2/3 effects would be pretty easy... along with an assortment of other things, in addition.

You're thinking backwards, more or less. DirectX isn't really the end all be all either -- it's just an api that sets a standard for how things should be done, with limited ways to do things... having straight access to that 'driver' is part of the advantage of a console environment (more freedom and you're exposed to things that DX wouldn't be) -- you're not limited to silly APIs and arbitrary limits based on backwards compatibility of the PC world (at least not so much).

There probably is some witchcraft involved though, no doubt.
 
OpenGL has a concept called extensions that allows a vendor to expose functionality on their GPUs without having to wait on common updates ala DirectX.

Sony and nVidia have brought OpenGL ES to PS3, no doubt with extensions to expose all or most of the GPU's functionality. I believe there's also a low level API to let you get closer to the metal too.

edit - here's a breakdown of PSGL, the high level graphics library for PS3, to give you a taste:

PSGL is

OpenGL ES 1.0
- Officially passed ES 1.0 conformance test

PLUS programmable shading with Cg

PLUS OpenGL ES 1.1 extensions
- VBO, FBO, PBO, Cubemap

PLUS texture extensions
- FP, DXT, 3D, NPO2, Aniso, Depth, Vertex Textures

PLUS primitive/rendering extensions
- Instancing, Primitive Restart, Queries, Conditional Rendering

PLUS synchronization extensions
- Fences, Events

PLUS SCE performance extensions
- TextureReference, AttribSet

PLUS more

nVidia/Sony continues to develop more extensions, also. As you'd expect, the API will improve over time (and that'd be the case no matter how good it was). The priority now is really on shaders, also, and PS3 uses nVidia Cg for that.
 
Last edited by a moderator:
The question is; if RSX is a DX9 based GPU and DX is a Microsoft API and, as far as I know, MS didn't license it to Sony, why people here say RSX is going to pull off DirectX effects adding to that that Cell will act as a helper? For instance, HDR is one of the few things that are common between RSX and Xenos, along with features such as MSAA, vertex shaders, etc.

But full DirectX 9 support? I don't think so. At first I thought SM2.0 and SM3.0 were also some of the *basic* features for next gen consoles, but I remember a post by Ziff? -I am not sure- stating that shader models are DX only features.

This leaves me to the conclusion that RSX is mostly a disabled, invalid, full of wasted logic chip, so developers and talented programmers like nAo, ERP, Fafalada, etc etc, will need to rack their brains in order to bleed dry the thing. Worse than that, programming tools of Sony are quite inefficient at offering easy to work with methods and it means wasted time for developers. Excuse me if I am wrong...

I know, the PS3's API is OpenGL, but it has not evolved over the years. OpenGL in the past was great but now that it's getting old and crappy its graphical quality is definitely dying. Recreating DX effects without MS code is not an easy task, since DX needed 10? years of evolution to get where it is now and I just don't see PS3 engineers emulating it. PS3 is surrounded by mistery, I fear it is witchcraft.
Modern versions of OpenGL (2.0 and up) fully support vertex & pixel shaders; the functionality of the OpenGL Shading Language is fairly close to that of what is called "Shader Model 3" in DirectX9 (although it appears that for PS3, they will use Nvidia's Cg language instead, which also offers more or less the same functionality). There is also, as others have noted, an extension mechanism present in OpenGL, so that if you want to support something that is not present in the core API, you just add it.
 
Arctic you're looking at the situation in reverse; it's not that the NV47 architecure is one where hardware is devoted to DX9, it's that it's devoted to *functionality* required by DX9.

And without DX9, that functionality is still there; as others have pointed out, there are other available APIs presently available for tapping it.
 
Xbox360 uses several layers of APIs. DirectX happens to be pretty high up in the stack, and a developer can choose not to use it and go with something closer to the metal.
The thing is, DirectX provides a lot fo useful, tested functionality, that would otherwise take a lot of time to write. As it stands, DirectX is quite mature and provides ready to use features.
 
I know, the PS3's API is OpenGL, but it has not evolved over the years.

check out the history, it doesnt back up that statement

2000 gl1.3 d3d7
2001 gl1.4 d3d8
2002 gl1.4 d3d8.1
2003 gl1.5 d3d9
2004 gl2.0 d3d9c
2005 gl2.0 d3d9c
2006 gl2.1 d3d9c

at the moment the glARB is working on gl3.0

OpenGL in the past was great but now that it's getting old and crappy its graphical quality is definitely dying. Recreating DX effects without MS code is not an easy task
there are some top tools out there eg perhaps this is of interest, also check out the nvidia dev site
http://developer.download.nvidia.co...develop/shader-sky-is-the-limit-develop06.pdf
 
Also, once you get into the realm of vendor extensions, you sometimes get to play with features that haven't been incorporated to Direct3D yet or may never be incorporated into it.
 
Arctic Permafrost said:
I know, the PS3's API is OpenGL,
Just like 360 - PS3 uses multiple API layers - of which PSGL is pretty high up the chain. You can go a lot closer to the metal then that if you feel like it.

That said, DirectX as such doesn't expose a lot of vendor specific functionality - 360 has many ATI specific extensions, and similarly, PSGL is basically a Sony/NVidia specific derivate of OpenGL.
 
The question is; if RSX is a DX9 based GPU and DX is a Microsoft API and, as far as I know, MS didn't license it to Sony, why people here say RSX is going to pull off DirectX effects adding to that that Cell will act as a helper? For instance, HDR is one of the few things that are common between RSX and Xenos, along with features such as MSAA, vertex shaders, etc.

But full DirectX 9 support? I don't think so. At first I thought SM2.0 and SM3.0 were also some of the *basic* features for next gen consoles, but I remember a post by Ziff? -I am not sure- stating that shader models are DX only features.
DirectX is an API, and a feature set. GPU's are classed as a DXn type GPU based on which version of Direct X they have hardware support for. This rough classification doesn't actually tell you how good they are at those DXn features either. You could have support for a feature in hardware but it's so bad it can't be used, which happens.

As example, if DirectX 9 allows for SM2.0 pixel shaders of 64 instructions long, and your GPU supports SM2.0 pixel shaders of 64 instructions long, in that respect it's a DX9 GPU. If your GPU only supports SM2.0 PShaders up to 32 instructions long, it isn't a DX9 GPU, but it is better than a DX8 GPU that only supports SM1.0. It's also possible to have a GPU that exceeds the minimum specifications of a DX. You may have a GPU that can support SM2.0 shader of 256 instructions long (note these instruction length figures are arbitary values, not indiciative of actual SM standards) where it'll be classed a DX9, but actually be better than the minimum standard required to achieve DX9 status.

When a GPU is called a DXn GPU, that's telling you minimum set of standards supported by it within the DirectX API. That does not tell you the maximum performance capabilities, nor the complete set of abilities. Games written for PC using DirectX need to cater for lots of different hardware, so the API is constrictive in what it enables. It's not a good indicator of hardware, but it is a good guide to someone wanting to by a 'next-generation' GPU for their PC.

In a closed-box console, you can use low-level access to every feature of the GPU (if the console maker allows it, which they normally do). This is true for all the DirectX standard features and all the custom features. If you use an API, you are limited to the features exposed by that API. eg. In the above case, a GPU with 256 instruction long SM2.0, using DX9 you may only be able to use shaders up to 64 instrs. long, whereas with low-level access you can use the full 256-length shaders that your hardware supports but API doesn't. In the case of XB360, MS changed the DirectX API from 9.0 to Xenos own-brand to enable features it has that exceed the DirectX 9.0 standard. In the case of PS3, you'll be wanting/needing/expecting Sony or nVidia to provide an API that exposes the full features of RSX, or to enable different layers of access which enable the hardware.

In this case, you both underestimate OpenGL's development and nVidia's OpenGL tools, as well as not appreciating the different levels of access possible. I doubt there's a wasted transistor on RSX if a dev wants to use it. By allowing low-level development, consoles actually allow more use of the GPU than any generic API. There's no need to worry that RSX can't be fully accessed because Sony aren't using DirectX. RSX being DX9.0 class only means it supports the minimum standards needed to satisfy DirectX 9 on the PC.
 
Zeross said:
And hopefully things will be smoother now
Perhaps - although I'm not at all attracted to the abstraction structure of latest OGL(not that D3D is much better). When they talked about APIs for embeded devices, I was hoping for something with a bit more 'lean' design then having all that 'X'BO and "render-to" shenanigans, essentially for what is nothing but glorified memory aliasing.

Or maybe I'm just not looking at the thing 'crossplatform' enough - but in that case I've just reaffirmed that cross-platformish API abstractions are not the way to go with embeded devices.
 
Back
Top