Seems MS has had a change of heart over the name of its nextgen API, previously called “Windows Graphic Foundation”, and has decided on the more logical name “DirectX 10”.
Seems MS has had a change of heart over the name of its nextgen API, previously called “Windows Graphic Foundation”, and has decided on the more logical name “DirectX 10”.
Yes they said Visa opposed to Vista,.
Only in the land of the monumentally stupid (ie: the Windows developer press) would a name that actually describes a software product (Windows Graphics Foundation — gee, I wonder what that does?) be considered less logical than a catchy but completely unrelated and technically inaccurate name. For god’s sake, “Direct” X doesn’t even make sense anymore! They haven’t given you direct access to the graphics card for several versions!
At first I was thinking that calling it DX10 was good for continuity, but after reading the article I realized that it doesn’t have backwards compatibility so a name change would be in order.
Rayiner, I’m not sure this Inq article is totally accurate. At the very least, it’s confusing. For one, WGF doesn’t map to DirectX, only to part of DirectX (Direct3D), so you can still have DirectX 10 while also having WGF.
The part about backward compatibility via a software layer is also confusing. I can only guess that they’re referring to things like fixed-function shader pipelines being emulated using shader programs on programmable GPUs.
Also, the DWM (and other things) currently uses WGF 1.0 (DirectX 9.0c with additional features like interprocess resource sharing, GPU scheduling, GPU virtual memory) for composition, shading, surface management, etc.
WGF 2.0 is Direct3D 10.
For more clarity on my first post. WGF 2.0/Direct3D 10 is also included in Vista. The DWM just doesn’t currently use it.
1. You are clueless.
2. X, Gnome, Gimp, Emacs, Vi,…
3. D3D is a lot closer to hardware than OpenGL.
1) Perhaps, but the Windows developer press really is monumentally stupid. Just pick up one of their magazines and read it sometime. The asnine stuff in there makes me want to hurt myself. They just sit there and gobble up any crap that comes out of Redmond. They trumpet stupid APIs as the second coming, but never hold them up to their hype. MFC was supposed to change the world. Then it was ATL. Now, it’s .NET. It’s a pitiful morass feeding up on its hype.
2) Most program names are stupid. Of your examples, only X is a stupid name however. All of the other ones stand for something that relates to what the program does. Eg: GIMP = GNU Image Manipulation Program. Gee, isn’t that descriptive?
3) ‘Direct’ does mean “close”. It means, well, ‘direct’. Direct3D is, well, not direct. Direct X has been getting farther away from the hardware ever since version 7, because Microsoft realized (like the OpenGL folks did years ago), that you could get far better performance by letting the GPU and driver optimize the command steam without letting the programmer mess things up by directly accessing the GPU memory. These days, Direct3D gives you more flexibility with regards to stuff like memory management, but its no more “direct” than OpenGL.
rayiner: GIMP = GNU Image Manipulation Program. Gee, isn’t that descriptive?
Yes, if you understand what GIMP means. No if you don’t. It doesn’t mean a darn thing at first glance. (Like a lot of names)
Compare GIMP to say… Paint Shop or Photoshop. (Not the actual programs, just the names) Which one is more descriptive? I’d say that the later two convey more meaning at first glance. (You can tell that the later two have SOMETHING to do with art/graphics. With GIMP… Well… It could be anything like maybe a text editor.)
GIMP only conveys any meaning once you already “understand” what it means. And if you have to “figure it out” it doesn’t really matter TOO much what you call it, at that point it’s a matter of preference for whoever is naming it. Some people for example either don’t like acronyms, find naming the program after what it does lame, or can’t come up with what they feel is a good acronym.
I’m not saying that GIMP is a horrible name or that DirectX is a perfect name. I’m just saying that it’s not as clear cut as you make it out to be, that it really isn’t that big of a deal for educated users, and for uneducated users GIMP and DirectX are equally bad.
The naming issue comes up so frequently, but I really think it’s silly. What kind of name is Microsoft? Oracle? What the hell is Excel?
The product makes the name; the name never makes the product, unless you call your product “crappity crap crap” or “never works,” but even then, if your product is awesome, it still may succeed.
Oh please. GIMP tells me what the acronym means every time it starts up. If you’ve ever used the program, you know what it means. Besides, why are you bringing uneducated users into this? We’re talking about developer APIs, remember? As a programmer, something called “Windows Graphics Foundation” is a whole lot more informative than something called “Direct X”.
rayiner: Oh please. GIMP tells me what the acronym means every time it starts up. If you’ve ever used the program, you know what it means.
Yes and that counts as having to figure it out. You can’t start up, look up, or what have you for every single program in existance to determine whether its useful to you. That’s the point. GIMP conveys no meaning until you have already decided to find out what it is.
When someone is looking for something it is usually important to either convey some understanding at a glance or to have a “catchy” name. Otherwise people will pass by your application, library, or what have you. (Unless it’s the only one there or comes recommended.)
rayiner: Besides, why are you bringing uneducated users into this?
Because the discussion is entirely about personal preference otherwise. Only by discussing “uneducated users” does it give this discussion any REAL purpose at all. We all have our own feelings as to what makes a “good name to us”. If you don’t understand that, then there’s nothing more to say.
rayiner: As a programmer, something called “Windows Graphics Foundation” is a whole lot more informative than something called “Direct X”.
No it’s not. Every Windows programmer on Earth (most likely) knows what DirectX is. Many have never heard of WGF. As a result, despite WGF being self explanatory more programmers will know what DirectX is automatically and will have to still lookup WGF before they’ll have a good idea of what exactly it is.
In fact, that’s probably the point of why MS named it what they did. To make sure all the current programmers “understand” automatically what this is.
Not only that… But it’s helpful for slightly educated end users as well. When they look at games (for example) and they see “DirectX 9 required” (or whatever) they’ll be able to say, “Cool. Vista has DirectX 10. So I’m fine.” If they knew that Vista has WGF, they’d have to wonder a bit more.
It’s not a huge deal, but it does make things easier for some people. And for truly educated users it makes no difference either way. None whatsoever.
“It gave some details to the developers officially about its upcoming API and we know that it plans to release this API together with Longhorn. Or Visa, as we must learn to call it.”
Why Visa?
… because it’s a mispelling of “Vista”
It doesn’t look like the previous versions… actually, no compatibility besides a software layer, why not a new product name them?
There must be a reason for they changing it back, no articles with real details?
…it won’t matter what they call the damn thing, ’cause they’re planning to kill OpenGL performance anyway (by wrapping it over the DirectX API). M$ is resuming its same old business practices again… 🙁
http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cg…
Myth, its only if you use MS’s drivers, if you use your graphics vendors drivers you are fine.
Bullshitter.
..or rather another prick in the clumsy wall?
Will DirectX10 be in Ubuntu Breezy?
I really hope that your joking…
i guess that any directx 7-8-9 games running in backward compatibility mode under directx 10 will be snappier then any linux desktop (gnome, kde, ect) :]
anyway, seriously now… i doubt directx 10 will be a performance killer. the backward compatibility mode will probably be a thin layer mapping old function calls to new function calls… nothing more than that.
and if directx 10 is faster as they claim you wont see a difference.
It’s a good thing they are wrapping OGL around DX because if you are using stock drivers you get unaccelerated OGL performance… it’s horrible to say the least. This way if you use stock windows drivers you get good performance in games and if you are using your graphics card companies drivers you will get excellent OGL performance. I do not understand at all why you ppl keep bringing this up. It’s a good thing all around. Just install the latest nvidia or ati drivers for true OGL in Vista….
because people like blaiming microsoft all the time without any good reason. its a known issue… they should make a knowledge base article about that 😉
This reminds me of the Slashdot zealots trashing MS Services For Unix and saying how much Cygwin is better while Microsoft won the award for best integration solution at Linuxworld for (?)2 years in a row…
Some people are just clueless.
http://en.wikipedia.org/wiki/Ignoratio_elenchi
Then again, most games out there are DirectX; I mean, for any gaming aficionado with a video card fetish; their main concern has always been DirectX performance.
If you’re concerned with OpenGL performance for work, 9/10, you’d be using a FireGL or a 3DLabs Wildcat.
No, for years a gamer’s main concern was OpenGL performance. Quake 1, 2, 3, Unreal 1 etc those games were the benchmark for performance.
But then DX actually became pretty good around DX 7/8 and things started to change.
Besides REALLY high standards apps (usually with dedictated hardware), FireGL and wildcats aren’t a reality for everyone working with 3D and 3D composition outsite 1st world countries…
About OpenGL and gaming… most of current games just use DirectX (for a number of reasons I won’t discuss as I’m don’t want a DX vs OGL discussion…), but a high number of them, usually the ons using iD engines, use OpenGL as primary render… but this OpenGL games usually target hardcore gamers, and they usually have common 3d hardware with good OGL drivers (as ATi and nVidia VPUs).
From the top of my head I can’t think anyone besides id (yes, it’s spelled lowercase) and Croteam that use OpenGL. And with the recent Carmack’s announcement that Xbox 360 will be id’s top priority, I think it’s pretty clear which is the superior API. Gamers tended to preffer better OpenGL performance than DX, but that was a long time ago. The only “serious” OGL engine today is the Doom 3 engine and I don’t see many future games using it, while there are a lot of HL2 and UE3 engine-powered games announced.
Epic Games also has supported (and is continuing with UE3) OpenGL as a secondary render. Now they don’t always get all of the features ported over, but its actually in the works for UT2004’s OpenGL render to have all the features that the Direct X one does.
Just because one is too dense to understand the issue doesn’t mean it isn’t there. Of course one can install OGL from nVidia or whoever. The issue is that when nVidia OGL 2.0 is used, Aero Glass will be disabled.
Joe User to software vendor (of some windowed OGL app): “your app breaks my windows.” Vendor, sick of hearing this, might just consider not using OGL.
I’ve done my best to translate the issue to duh. Good luck grasping it.
The “problem” with OpenGL isn’t really that big of a deal.
First of all… In the past companies have had games that supported multiple APIs (for example, I have some games that support DirectX, Glide, and OpenGL). I’m not sure how common this is now (since I’m not that big of a gamer anymore or a graphics artist) but they can always go back to doing that.
Second… Even if all games and applications switch to DirectX for Windows it doesn’t mean the end of these programs for Linux and Macintosh. There have been applications and games in the past that had to change APIs when they switched platforms. They can always do the same again.
Third… Not every OpenGL game or application needs the maximum number of features or speed and as result Microsoft’s wrapper will be more than sufficient for these programs. (Remember… Doom 3 is not everything.)
Fourth… A number of games and applications can always go into full screen mode if they need to use OpenGL 2.0. For a lot of people this isn’t that big of a deal. (For example… A lot of “serious gamers” I know for example use two computers at one time if they want to do something while they’re playing a game anyway. So nothing has changed.)
Fifth… You aren’t going to die without Aero Glass if you use an OpenGL 2.0 program in windowed mode. In fact, I’d say the number of people who will run into this problem will ultimately be pretty darn small.
Really… Even if this ends up being a “serious” problem there’s no reason why in the end OpenGL won’t go on if the software industry wishes to support it. Or in other words… OpenGL, Linux, and the Macintosh will not come to an end because of this. As a result, if Microsoft was planning to use this to hurt them they weren’t really thinking it through IMHO.
The reason this wrapping of OGL to DX10 is done is to provide basic OGL support even when Aero Glass is running, as the hardware can’t support both OGL and DX running in the same context.
It’s up to the hardware vendors to supply drivers that can support OGL 2.0 when AG is running, or they might have to fix their hardware so that both can run at the same time.
Hardware is perfectly capable of supporting both OGL and DX at the same time – the problem has nothing to do with hardware and everything to do with software (namely Windows).
Hardware vendors can’t do anything to make AG run when the OGL ICD is active if Microsoft doesn’t want them to.
I propose using roman numerals and calling this Direct X X.
(Sorry… but I don’t find the selection of a name for Direct X / WGF / whatever, worth of so much coverage)
They can call their “products” whatever they want to, but it doesn’t change the fact that Microsoft is hurting severely. It is not all obvious at this moment, but if I’m right, you’ll begin to see Ballmer blow up a lot more over the next few years. This man has been holding back his tantrums for years — yes, he throws them, but this man can dish out much more; I’ve seen it in his eyes, and felt it in his hand shake. He reminds me of a Colonel who is behind his time and still making up for it by being abusive in the wake of everyone’s bitterness toward him. That is Microsoft’s image; a bitter old man, willing to destroy anyone with whatever it takes, and do so within protocol. Changing back to “Direct X” is Microsoft’s way of gloating with their decision to kill GL, plain and simple; this is how Microsoft deals with their pain. Obviously they feel some of their failures in gaming has much to do with GL’s successes.
Microsoft didn’t even manage to get OpenGL natively supported in Vista but they are using OpenGL over DirectX which is painfully slow. How can they even talk about any additional obscure stuff if they can’t even write OpenGL support for Vista?
Seems Microsoft are about to shoot themselves in the foot, again. Thank God I am not using their stuff.
Slower? Yes. Painfully slow? I think not.
A bigger problem is that OGL wrapper in Vista is going to be built on top of DX9 as opposed to DX10, will be limited to OGL 1.4 and you can forget about any other extensions.
The last time Microsoft had an excuse for code bloat was the switch to Unicode, a decided improvement on ASCII.
I remember a developer friend running Windows 3.1 on a laptop that had 1MB of memory (so that he could alt-tab among his DOS development programs). I think the only thing still under 1MB in size is an MS Office document of 10 bytes or less.
Still, you have to hand it to MS. They correctly figure that home (i.e. gamer) users will drive Vista sales — separate screen buffers has to help game performance big time. But will that eat into Xbox sales?
Well, that the API changed a lot again is no surprise – the hardware has changed a lot, too.
Or does the very high end of OpenGL Code using the latest extensions have anything in common with glVertex3f (…) code?
glVertex3f()’s semantics are the same as vertex buffers (or whatever the newest extension is), and you can use it just fine even inside a cutting-edge pixel/vertex shader-based engine. The only difference is that its a little slower, because of function call overhead. Display lists are still the best way to get high-performance for static geometry, and they’ve been around since the beginning of OpenGL.
The continuity between OpenGL 2.0 and OpenGL 1.0 is remarkable. The core API has changed relatively little for the enormous amount of functionality that has been added. There is a reason for that: OpenGL was designed by graphics professionals, while DirectX was designed by game programmers. OpenGL was designed properly the first time, while Direct X, like most Microsoft APIs, was broken by design the first several iterations.
glVertex calls are not a little slower but painfully slow.
And as for the core API not changing much, this is just plain wrong. For starters 2.0 took a whole bunch of extensions and made them part of the core.
The only reason for things like glVertex still being in OGL 2.0 is not because glVertex functions are good or useful but simply for the sake of backwards compatibility. In fact many (if not most) OGL developers would have been far happier if OGL 2 got rid of all the legacy functions and extensions.
glVertex calls are not “painfully” slow. Maybe 50% slower, if that. Still very useful for a lot of cases. In any case, that’s somewhat tangential. glVertex*() (and glColor*(), etc) are still first-class components of the API. They expose the same features (the ability to denote the position, color, and texture coordinates of vertices) as more modern extensions, and when used inside display lists, which are also as old as dirt, will still get you near the maximum performance of the card.
And the core API *hasn’t* changed a lot. 2.0 did take a lot of extensions and put them in the core, but have you ever looked at an OpenGL extension? It’s usually a single function call, and except for a few big ones like pixel and vertex shaders, don’t make huge changes to the basic pipeline. OpenGL extensions generally make small changes to the core command set (eg: the texture rectangle extension loosens restrictions on the range of texture coordinates). Meanwhile, since DirectX 1.0, vast swaths of the API of been deprecated, replaced, and redeprecated.
Your comment about most OpenGL developers being happier of OGL 2.0 got rid of legacy stuff is asnine. Most OpenGL developers do Real Work with serious applications. They do not need the entire API changing on them every week. Especially in the scientific computing and engineering worlds, where a lot of the OGL 2.0 features (pixel shaders, mainly), aren’t terribly useful anyway.
Only 50%? You’re kidding right? glVertex calls can get far slower then that…
And the core API has changed. Changed to the extent that the new functionality (such as shaders) replaces a great deal of the old functionality and render it obsolete.
And guess what: DirectX also has legacy interfaces!!
So if you insist on using old functions, extensions and interfaces, you can do that with both OpenGL and DirectX (why anyone would ever want to use DirectX prior to version 8 is beside the point here, they could if they wanted to – last time I checked DX3 apps still worked fine under XP).
And OGL developers who do use OGL a lot would have been happier with the legacy features dropped and the interface steamlined to support newer hardware. You do realize OpenGL is 13 years old? Have you checked the extension registry lately? Do you know how many useless legacy extensions there are in there? How many redundant extensions there are? Wouldn’t it be nicer if all that stuff was just cut out and we were left with a small, elegant and streamlined new version of OpenGL that would be easier to extend, easier for hardware vendors to implement drivers for?
And how would changing the interface in version 2 be “changing the entire API every week”?? Furthermore this is not a problem for people who use OpenGL on a daily basis – they could easily pick up the new interface in the time it takes them to learn a new extension – this is only a (minor) problem for casual OGL programmers.
I highly doubt that anyone who needs to use the features provided by version 2 needs any of the legacy functions as there is a better way to do the same thing using the new extensions.
And casual OGL developers who don’t feel like learning new extensions can just use OGL1.x.
Yes, OpenGL coding of today is “load this extension”, “load that one”, and another one (unless you stick to what your .h .lib files already define).
And then you find out – oh that extension doesn’t work that well together with another one after implementing it, and this combination is a problem etc.
Some clean up IS necessary in OpenGL, not just more extensions.
glVertex() is a very useful call.
In the case of per-triangle drawing this is what the doctor ordered.
Tool writer usually doesn’t have a time to optimize batching to make it run fast enough.
OpenGL does it automatically.
Probably it does with a display list.
For dynamic stuff, glVertex() is useless, as it is just slow.
because like all microsoft products, it’s gonna cost you. once for the software and then once again for new hardware…
It seems quite a few people don’t understand what is the deal with Vista and OpenGL. If you read the thread on the OpenGL board from 3DLabs, you’d find:
Aero Glass goes through DX10. Currently, anything that bypasses DX would cause corruption to the AG compositing. To avoid this, MS makes an OGL wrapper that also uses DX. The OGL driver from the manufacturer of your video card would bypass DX, so MS automatically disables AG if you aren’t using their OGL driver. The problem – their driver is based on OGL 1.4, while the current standard is 2.0 and advancing.
Your options: Use MS’s driver and settle for old 1.4 standard graphics and some slow down due to the driver wrapping functions to DX; in this mode, you can use Aero Glass for your desktop. Or, you can use the OpenGL driver that comes for your video card and get great looking graphics and top speed; in this mode, Aero Glass is disabled.
Hardcore gamers will install OpenGL for their card and not worry about losing AG. People wanting a “pretty” looking desktop will have to stick with the MS wrapper, then complain about their games not looking as good and running slower. This will encourage game developers to quit using OGL… which is why MS is doing it. As games quit using OGL, ports to Mac and linux will become more scarse, increasing Windows dominance in the games arena… which is why MS is doing it.
No one is shocked about this. It’s what we’ve come to expect over the years from MS. It’s why the government has twice prosecuted (successfully) MS for illegal monopolistic actions.
Glass uses DX 9 not 10. Glass would only be disabled while running an OpenGL app if you have the ICD installed. Just the act of installing the ICD does not disable Glass. This is still preliminary and could change. It has nothing to do with killing OpenGL. OpenGL routing through D3D is included so you have something faster than software rendering with default drivers or cards that only support D3D. Routing OpenGL through D3D already occurs in XP under these same circumstances and XP is limited to OpenGL 1.1 w/o an ICD.
Most games are not even affected by this as they run full screen and would use the ICD if available. When exited, you go back to a desktop running Glass.
The current situation isn’t even limited to OpenGL. The fact is that the DWM can currently be disabled under certain circumstances, including running windowed OpenGL apps, apps that use overlays (Videos in WMP or similar in some cases for instance), and anything that renders directly to the front-buffer.
Hmm..why don’t they call it if marketing is calling all the shots at MS:
.NET-X
or
.XNET
or .NEXT
or YAFPGA (yet ANOTHER FUCKING propeitary graphics API)