zlacker

[parent] [thread] 22 comments
1. flohof+(OP)[view] [source] 2023-03-05 10:36:12
Microsoft pushing D3D was a good thing, OpenGL drivers were an even bigger mess back then than today, and drivers for popular 3D accelerators only implemented the 'happy path' needed for running GLQuake but were either very slow or sloppily implemented for the rest of the API.

D3D was a terribly designed API in the beginning, but it caught up fast and starting at around DX7 was the objectively better API, and Microsoft forced GPU vendors to actually provide conforming and performant drivers.

replies(6): >>TazeTS+M5 >>nekoas+Lo >>jbvers+nu >>taeric+Yv >>ChuckM+U61 >>BearOs+hs1
2. TazeTS+M5[view] [source] 2023-03-05 11:48:08
>>flohof+(OP)
Even today, DirectX has stricter quality/precision/behaviour requirements for hardware. On the other hand Vulkan is a lot better specified in other areas and thus better documented. So even if a vendor doesn't officially support one or the other, they will care about both…
replies(2): >>pjmlp+yv >>nspatt+eJ2
3. nekoas+Lo[view] [source] 2023-03-05 14:39:11
>>flohof+(OP)
It wasn't just graphics, it was audio as well. People have it nice now but back then you were still fighting audio driver issues. AC'97 support made that situation livable but it took forever for everyone to support it.
replies(1): >>rodger+Am1
4. jbvers+nu[view] [source] 2023-03-05 15:17:46
>>flohof+(OP)
Well, Microsoft kind of deceived sgi during Fahrenheit
replies(1): >>pjmlp+av
◧◩
5. pjmlp+av[view] [source] [discussion] 2023-03-05 15:22:09
>>jbvers+nu
Mostly, SGI also did their own part of the overall failure.
◧◩
6. pjmlp+yv[view] [source] [discussion] 2023-03-05 15:24:13
>>TazeTS+M5
Kind of, not only Vulkan keeps trailing behind DirectX, where vendors collaborate with Microsoft on DirectX, and eventually they might come to Vulkan.

There is also the issues of development experience in provided SDKs versus what others provide, and apparently now Khronos rather adopt HLSL than trying to improve GLSL.

replies(2): >>skoczn+AN1 >>TazeTS+Xs5
7. taeric+Yv[view] [source] 2023-03-05 15:26:10
>>flohof+(OP)
This implies that they could not have pushed OpenGL to be less of a mess. Feels bad faith to argue, when you consider how bad all drivers were back then.
replies(1): >>Jasper+x61
◧◩
8. Jasper+x61[view] [source] [discussion] 2023-03-05 18:50:59
>>taeric+Yv
Everybody wanted this. There was even an attempt at this, called "Long's Peak", that was ultimately voted down by the OpenGL committee after a long development road. Nobody else needed to sabotage OpenGL, Khronos was more than happy to do it themselves.
replies(1): >>david-+yY2
9. ChuckM+U61[view] [source] 2023-03-05 18:54:00
>>flohof+(OP)
I see it a bit differently, but there is a lesson in here.

Microsoft pushed D3D to support their own self interest (which is totally an expected/okay thing for them to do), the way they evolved it made it both Windows only and ultimately incredibly complex (a lot of underlying GPU design leaks through the API into user code (or it did, I haven't written D3D code since DX10).

The lesson though, is that APIs "succeed", no matter what the quality, based on how many engineers are invested in having them succeed. Microsoft created a system whereby not only could a GPU vendor create a new feature in their GPU, they could get Microsoft to make it part of the "standard" (See the discussion of the GeForce drivers elsewhere) and that incentivizes the manufacturers to both continue to write drivers for Microsoft's standard, and to push developers to use that standard which keeps their product in demand.

This is an old lesson (think Rail Gauge standards as a means of preferentially making one company's locomotives the "right" one to buy) and we see it repeated often. One of the places "Open Source" could make a huge impact on the world would be in "standards." It isn't quite there yet but I can see inklings of people who are coming around to that point of view.

replies(1): >>deafpo+TD2
◧◩
10. rodger+Am1[view] [source] [discussion] 2023-03-05 20:32:18
>>nekoas+Lo
My opinion on this one, for games authors anyway, was changed by reading an early 2000s piece by someone rebutting a lot of the noise Carmack was making on the topic, focusing on exactly this point: by DirectX 6, you got an API that was a suite which gave you, yes, the graphics, but also the sound, the input handling, media streaming for cutscenes and so on. OpenGL vs Direct3D was a sideshow at that point for most developers: it was "solves one part of their problem" vs "solves all of their problems". And no-one involved in OpenGL showed any sign of being interested in those other problems.
replies(3): >>jamesf+hf2 >>rob74+eD2 >>animal+dE2
11. BearOs+hs1[view] [source] 2023-03-05 21:14:51
>>flohof+(OP)
I agree. D3D7 was the first version actually widely used, and it came about as a glut of 3D card manufacturers appeared. Microsoft was willing to change it drastically to appease developers. OpenGL is still held back by the CAD companies. We're lucky Vulkan is here as an alternative now.
◧◩◪
12. skoczn+AN1[view] [source] [discussion] 2023-03-05 23:22:45
>>pjmlp+yv
Standarization of features might lag behind D3D, but availability of features usually comes first on Vulkan because of the extension system. For example NVidia brought raytracing to Vulkan long before DXR was a thing.
replies(1): >>pjmlp+5t2
◧◩◪
13. jamesf+hf2[view] [source] [discussion] 2023-03-06 02:59:54
>>rodger+Am1
I haven't played much with either OpenGL or DirectX but I remember wanting to render some text using a 3D API - DirectX supports it out of the box (need to pick the font etc - lots of settings) but at least when I last looked, OpenGL didn't offer that functionality, so I'd need to find a library that handles font loading and everything else associated with printing text.
◧◩◪◨
14. pjmlp+5t2[view] [source] [discussion] 2023-03-06 05:50:32
>>skoczn+AN1
Nö it didn't, check your timelines with more care.

Here is tip, start with the Star Wars presentation from Unreal engine.

◧◩◪
15. rob74+eD2[view] [source] [discussion] 2023-03-06 07:56:07
>>rodger+Am1
Well yeah, I mean, OpenGL (to quote Wikipedia) is "a cross-language, cross-platform API for rendering 2D and 3D vector graphics" - nothing more, nothing less. Whereas DirectX (which includes and is often conflated with Direct3D) was specifically designed by Microsoft to attract game developers to their platform (and lock them in) by taking care of all their needs. So it's kind of an apples to oranges comparison...
◧◩
16. deafpo+TD2[view] [source] [discussion] 2023-03-06 08:02:53
>>ChuckM+U61
Should they have evolved it to be cross-platform? What about Apple's Metal API? I don't get why people expect Microsoft to do things that would benefit their competitors.

> The lesson though, is that APIs "succeed", no matter what the quality, based on how many engineers are invested in having them succeed.

Exactly. Microsoft was willing to make things work for them. Something other vendors wouldn't do (including those who are ostensibly "open source").

◧◩◪
17. animal+dE2[view] [source] [discussion] 2023-03-06 08:07:25
>>rodger+Am1
Input handling was pretty basic back in the day, there wasn't that many different hardware options to support.

For audio everyone was using 3rd party tools like Miles Sound System etc., but even OpenAL launched around 2000 already as an OpenGL companion. Video had the same thing happen with everyone using Bink which launched around 1999.

In comparison using OpenGL was a lot nicer than anything before probably DirectX 9. At that time in DX you needed pages and pages of boilerplate code just to set up your window, nevermind to get anything done.

Advanced GPU features of the time were also an issue, OpenGL would add them as extensions you could load, but in DirectX you were stuck until the next release.

replies(1): >>tubs+ZV2
◧◩
18. nspatt+eJ2[view] [source] [discussion] 2023-03-06 08:54:33
>>TazeTS+M5
if this is an argument about MS forcing DX and killing OGL, I remind you that Vulkan had/has Apple's support.
replies(1): >>TazeTS+Bs5
◧◩◪◨
19. tubs+ZV2[view] [source] [discussion] 2023-03-06 11:13:20
>>animal+dE2
You can't make a window in open gl itself at all...
replies(1): >>kingbo+Ls3
◧◩◪
20. david-+yY2[view] [source] [discussion] 2023-03-06 11:39:10
>>Jasper+x61
> Khronos was more than happy to do it themselves.

I was involved in a few of those committees, and sadly I have to agree.

The reason Khronos is often so slow to adopt features is because how hard it is for a group of competitors to agree on something. Everybody has an incentive to make the standard follow their hardware.

A notable exception to this was the OpenCL committee, which was effectively strongarmed by Apple. Everybody wanted Apple's business, so nobody offered much resistance to what Apple wanted.

◧◩◪◨⬒
21. kingbo+Ls3[view] [source] [discussion] 2023-03-06 14:57:27
>>tubs+ZV2
Yeah... you need egl.
◧◩◪
22. TazeTS+Bs5[view] [source] [discussion] 2023-03-06 23:33:30
>>nspatt+eJ2
I'm not arguing any such thing, just pointing to the strengths of the two standards.
◧◩◪
23. TazeTS+Xs5[view] [source] [discussion] 2023-03-06 23:35:06
>>pjmlp+yv
Vulkan trails on some things, leads on others. DirectX doesn't exist on mobile for instance, so innovations with particular relevance to mobile GPUs tend to come to Vulkan first.

Also, its extensions make it an interesting laboratory for various vendors' experiments.

[go to top]