They don't run OpenGL either, to any useful extentDemoCoder said:Well, the two other consoles (PS2 and Cube) don't run DX9. If I were developing a cross platform title (like EA games), I'd go with OpenGL definately because of the portability.
They don't run OpenGL either, to any useful extentDemoCoder said:Well, the two other consoles (PS2 and Cube) don't run DX9. If I were developing a cross platform title (like EA games), I'd go with OpenGL definately because of the portability.
NeARAZ said:They don't run OpenGL either, to any useful extentDemoCoder said:Well, the two other consoles (PS2 and Cube) don't run DX9. If I were developing a cross platform title (like EA games), I'd go with OpenGL definately because of the portability.
MDolenc said:As one of those who voted for DX9, here is why:
Though I personally also like the OpenGL approach to high level shaders I think that approach MS currently took isn't bad either and I see one potentially very big problem with OpenGL approach. When you put a HL shader compiler into driver you basically say that IHV's have one more (complex) problem for their driver team. How many of them do you think are able to put a good Glslang compiler out now (Cg anyone)? And once they have a compiler out, you'll basically have to deal with lots of different versions of drivers/compilers (since compilers will evolve with drivers). And if you are a pro, I think it's a lot better that you see that a compiler X doesn't do a good job at one of your shaders, than that one of your users (gamers) comes to you: "why the hell does your game crawl on brand new graphics card Y? You suck!" Or are we all going to adopt John Carmack's philosophy: "...and if a compiler does a really bad job..." Becouse you WILL have X different vendors with C(X) different compilers.
This is my current opinion and I haven't seen a working Glslang solution (and not even a not working one) and so I think it's still to early to judge which approach is better, because we all we have now is one approach that works and one that is potentially better.
The thing is, it can't screw it up. HLSL compiler is part of D3DX, and that is statically linked to your app. Thus, the compiler is in your exe - it can't be screwed up by updating DX. That was one of the reasons why D3DX is statically linked...darkblu said:what happens with your shaders when the next dx HLSL compiler exibits a certain bug which screws your shader x (and probably y and z too) - you do what:
But for anything "serious" you'll have different (quite radically different) low-level rendering paths in the engine. One for PC, one for PS2, one for GC, and even one more for X-Box (because with X-Box you have access to much lower level than with DX on PC). You just can't fit one OpenGL on all these hardware plarforms (yeah you can use it on different OSes on PC, but that's where it ends).DemoCoder said:Yeah I know, but clearly it's the logical choice if you're targeting 3 or 4 platforms.
NeARAZ said:The thing is, it can't screw it up. HLSL compiler is part of D3DX, and that is statically linked to your app. Thus, the compiler is in your exe - it can't be screwed up by updating DX. That was one of the reasons why D3DX is statically linked...darkblu said:what happens with your shaders when the next dx HLSL compiler exibits a certain bug which screws your shader x (and probably y and z too) - you do what:
NeARAZ said:The thing is, it can't screw it up. HLSL compiler is part of D3DX, and that is statically linked to your app. Thus, the compiler is in your exe - it can't be screwed up by updating DX. That was one of the reasons why D3DX is statically linked...
Chalnoth said:....and there wouldn't be any benefits from updated compilers in the drivers. That sort of defeats much of the reason for hardware-specific compiling anyway.
darkblu said:NeARAZ said:The thing is, it can't screw it up. HLSL compiler is part of D3DX, and that is statically linked to your app. Thus, the compiler is in your exe - it can't be screwed up by updating DX. That was one of the reasons why D3DX is statically linked...darkblu said:what happens with your shaders when the next dx HLSL compiler exibits a certain bug which screws your shader x (and probably y and z too) - you do what:
doh, didn't realise the compiler was part of the d3dx, my bad.
NeARAZ said:The thing is, it can't screw it up. HLSL compiler is part of D3DX, and that is statically linked to your app. Thus, the compiler is in your exe - it can't be screwed up by updating DX. That was one of the reasons why D3DX is statically linked...
I don't like that either - no chance for a 64kb intro and D3DX at the same time!Humus said:Which adds half a meg of bloat to your exe. Not a problem for game developers, but a problem for demo guys like me when my executables go from like 200kb to 800kb simply by using HLSL.NeARAZ said:The thing is, it can't screw it up. HLSL compiler is part of D3DX, and that is statically linked to your app. Thus, the compiler is in your exe - it can't be screwed up by updating DX. That was one of the reasons why D3DX is statically linked...
NeARAZ said:One for PC, one for PS2, one for GC, and even one more for X-Box (because with X-Box you have access to much lower level than with DX on PC). You just can't fit one OpenGL on all these hardware plarforms (yeah you can use it on different OSes on PC, but that's where it ends).
Well, by "codepaths" I didn't mean "shader codepaths", but whole rendering codepaths. That is, you don't use OpenGL on PS2 nor the GameCube. You can't - it's too different architecture. In fact, you don't use DX on X-box either - you can use a similar API, but you also can dig into much deeper things (what's essentially driver's work on PC). That's the same with all consoles - you have pretty direct access to the hardware.Bjorn said:You will need a version of the compiler for each target. But that compiler only needs to be written once. Seems to me that Sony should be interested in making a Open GL 2.0 compiler for the PS3 f.e, but who knows.
JohnH said:and the later only exists as an extension (ratified yet ?).
Humus said:JohnH said:and the later only exists as an extension (ratified yet ?).
Ratified since June 11, 2003.