Advertisement

Next-Generation OpenGL design survey

Started by January 17, 2015 07:35 AM
33 comments, last by Alessio1989 10 years ago

There's no sensible reason. "HLSL(tm)" itself might be owned by Microsoft (hence why nVidia Cg(tm) isn't called HLSL), but Khronos can clone the syntax and use a different name.

Off on a tangent -- HLSL/Cg were developed simultaneously / in cooperation between Microsoft and nVidia, so they were originally the same language, with HLSL(tm)/Cg(tm) being names for the two company's different implementations of this shared language. It's public knowledge that Xbox360/XboxOne use HLSL, that PS3 uses Cg and that PS4 uses "PSSL", which they basically descibe as a blatant HLSL clone. That's all 4 major consoles basically using the same shader language, even though they use 4 extremely different graphics APIs.

HLSL is the C of GPU programming. Every API except for GL uses a HLSL derivative (something close enough to HLSL that it may as well be HLSL) -- every modern console/PC game engine I've worked on has written their shaders in HLSL, with a small "portability header" containing some #define's to mask the API/platform differences involved in supporting 8 APIs... Then for the Mac/Linux ports (the 9th API: OpenGL), we have to use a dodgy HLSL<->GLSL translator.
If Khronos are smart, they'll define a portable shader bytecode format, and then allow the creation of HLSL and GLSL front-end compilers, which turn our source code into this portable bytecode. Then they can keep all their GLSL work and satisfy backwards compatibility for old GL users, while allowing them to move into the modern world biggrin.png


Ta, I'd suspected this was the case but my (admittedly rushed and half-baked) research didn't turn up anything.

On a slightly related tangent, and I'm not sure if this has percolated into the general awareness yet, but Windows 7 came out of mainstream support on Wednesday of last week (13th January). What this means is security updates and bugfixes will continue, but no more new functionality. In turn, this is probably the clearest confirmation we have so far that D3D 12 will not be coming to Windows 7, and so it looks as though Microsoft are going to consciously and deliberately do the wrong thing for marketing reasons rather than for technical reasons. So it's kinda even more important that the ARB make some sensible choices and don't screw up again this time.

longpeaks.jpg

"Recursion is the first step towards madness." - "Skegg?ld, Skálm?ld, Skildir ro Klofnir!"
Direct3D 12 quick reference: https://github.com/alessiot89/D3D12QuickRef/

Every API except for GL uses a HLSL derivative (something close enough to HLSL that it may as well be HLSL)

*cough cough* Renderman *cough cough*

That's what SHE said biggrin.png

...

Advertisement

In turn, this is probably the clearest confirmation we have so far that D3D 12 will not be coming to Windows 7, and so it looks as though Microsoft are going to consciously and deliberately do the wrong thing for marketing reasons rather than for technical reasons.


Maybe, maybe not; the 'support' choice was probably made long before DX12 was going to hit so there is nothing stopping them from still pushing it back to Win7 even if it is just a 'subset' - mainstream support removal just guarantees "other things" won't happen but there is nothing stopping them making an exception for this.

To a degree it might hinge on Win10's reception; if it goes down well and Win7 market share drops off sharply then a release might not happen. The biggest issue is that many dev houses are still Win7 and will continue to be Win7 even after Win10s release so it would need to go that way if only for that reason.

So, while I'm not saying it will happen I can think of compelling reasons why it still might.

Every *realtime graphics API used in modern games* except for GL uses a HLSL derivative (something close enough to HLSL that it may as well be HLSL)

*cough cough* Renderman *cough cough*
FTFM

Call it OpenGL 5. Every DirectX that comes out is a completely new API and I've never seen anyone get confused between DirecX 9.0 and 10 for example. They don't need a new name and if they insist on giving it a stupid name then they might as well go all out and name it OpenNextGL++ Extreme II 1.0a.

Call it OpenGL 5. Every DirectX that comes out is a completely new API and I've never seen anyone get confused between DirecX 9.0 and 10 for example. They don't need a new name and if they insist on giving it a stupid name then they might as well go all out and name it OpenNextGL++ Extreme II 1.0a.

There are valid reasons for removing the "open" part from the name.

The "open" of course refers to it's status as a standard, and was unambiguous at the time that OpenGL was first specified. However since then we've had the rise of the open source movement, and when taken together with the fact that OpenGL is available on Linux systems it means that some people have a tendency to put 2 and 2 together and get 47.

In other words, retaining "open" in the name is communicating something about OpenGL that is (1) untrue, and (2) different to what it meant when it was first specified.

The "GL" part remains unambiguous even now: it stands for "graphics library". It's also notable that it's derivatives retain "GL" but ditch "open" - WebGL, GL ES - so the name is descriptive of the platform that the derivative runs on. Following the same convention would seem to make sense; say something like "GL DS" (desktop systems) or something like that. This would also serve to reduce the "OpenGL everywhere!" thing, which would also be a good result (misinformation, even if positive, is never a good thing).

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Advertisement

This would also serve to reduce the "OpenGL everywhere!" thing, which would also be a good result (misinformation, even if positive, is never a good thing).


The only problem with that is a stated aim of GL|NG is to unify the API for both desktop and mobile (at least, maybe even web?) so any naming wouldn't be able to be platform carrying.

Whatever they end up calling it it'll probably just get called 'GL5' in every day conversation anyway...

In turn, this is probably the clearest confirmation we have so far that D3D 12 will not be coming to Windows 7, and so it looks as though Microsoft are going to consciously and deliberately do the wrong thing for marketing reasons rather than for technical reasons.


Maybe, maybe not; the 'support' choice was probably made long before DX12 was going to hit so there is nothing stopping them from still pushing it back to Win7 even if it is just a 'subset' - mainstream support removal just guarantees "other things" won't happen but there is nothing stopping them making an exception for this.

To a degree it might hinge on Win10's reception; if it goes down well and Win7 market share drops off sharply then a release might not happen. The biggest issue is that many dev houses are still Win7 and will continue to be Win7 even after Win10s release so it would need to go that way if only for that reason.

So, while I'm not saying it will happen I can think of compelling reasons why it still might.

"Windows 10 to be free upgrade for Windows Phone 8.1, Windows 7 and 8.1 users in first year"

So, I can guess they will not port DX12 under WDDM 1.1 (Windows 7).

"Recursion is the first step towards madness." - "Skegg?ld, Skálm?ld, Skildir ro Klofnir!"
Direct3D 12 quick reference: https://github.com/alessiot89/D3D12QuickRef/
Yeah, given that the lack of Win7 support seems more likely... but given it is free I'm not seeing a massive problem there tbh.

Call it OpenGL 5. Every DirectX that comes out is a completely new API and I've never seen anyone get confused between DirecX 9.0 and 10 for example. They don't need a new name and if they insist on giving it a stupid name then they might as well go all out and name it OpenNextGL++ Extreme II 1.0a.

There are valid reasons for removing the "open" part from the name.

The "open" of course refers to it's status as a standard, and was unambiguous at the time that OpenGL was first specified. However since then we've had the rise of the open source movement, and when taken together with the fact that OpenGL is available on Linux systems it means that some people have a tendency to put 2 and 2 together and get 47.

In other words, retaining "open" in the name is communicating something about OpenGL that is (1) untrue, and (2) different to what it meant when it was first specified.

The "GL" part remains unambiguous even now: it stands for "graphics library". It's also notable that it's derivatives retain "GL" but ditch "open" - WebGL, GL ES - so the name is descriptive of the platform that the derivative runs on. Following the same convention would seem to make sense; say something like "GL DS" (desktop systems) or something like that. This would also serve to reduce the "OpenGL everywhere!" thing, which would also be a good result (misinformation, even if positive, is never a good thing).

"Open Source" means something specific, but I disagree that applies to all usages of the word "open" (or even within computing), especially when those usages predated Open Source.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

This topic is closed to new replies.

Advertisement