Hacker News new | past | comments | ask | show | jobs | submit login

I guess a proper stack for doing 3D graphics, instead of the gimmicks that X has had over the years?

I lost count how many times I sat at FOSDEM X room, seeing the improvements that would eventually come (some day).




The Mesa/DRM stack is significantly better than Apple's, because the OpenGL implementation actually works, and Vulkan is supported on at least some hardware.

At the protocol level, X isn't involved that much with the 3D graphics stack anyhow these days. Xorg simply speaks DRI3, which is just a way to marshal file descriptors representing graphics buffers over the connection. It isn't involved in the rendering happening at either end (application and compositor).


At least Khronos will be creating Meta API for Metal, Directx and Vullan to address the difference, I hope that would just work and solve around Vulkan fragmentation and complexity that cant fit into all Apple SDK.


Metal is fine and supported by all relevant engines, thanks.

As the name says, DRI3 was yet another attempt to improve the whole performance stack on Linux.

As mentioned, I did my share of FOSDEM sessions.


> Metal is fine and supported by all relevant engines, thanks.

thanks for the laugh


Professional game developers have a different opinion regarding graphics APIs, even those that have been strong OpenGL apologists in the past:

"John Carmack: Its still OpenGL, although we obviously use a D3D-ish API [on the Xbox 360], and CG on the PS3. Its interesting how little of the technology cares what API you're using and what generation of the technology you're on. You've got a small handful of files that care about what API they're on, and millions of lines of code that are agnostic to the platform that they're on."

http://fd.fabiensanglard.net/doom3/pdfs/johnc-interviews.pdf

AAA studios already adopted Metal on their engines, Vulkan only matters on GNU/Linux among those having supported graphics cards.

On Android, it is only available as optional graphics API in 10% of devices available worldwide.

On Windows, it is only supported on legacy Win32, it isn't and it won't be supported on UWP.

On Nintendo Switch, there is the option to use the more lower level API NVN instead.

So laugh at will, lets see which APIs game studios care about.


I do graphics professionally, and I would much prefer to just see Vulkan everywhere. Metal has essentially nothing to recommend itself over Vulkan; it's just a worse API. Things I've dealt with:

- Tessellation is weird in Metal, as you don't have hull shaders and have to wedge it into the compute pipeline.

- I haven't found a good way to disable multisampling while rendering into a multisample texture, something that is trivial in OpenGL. This can be useful for various effects.

- Switching command encoders is really slow.

- There is no good way I have found to be able to get good timing information inside the app as opposed to the profiler. The info is available on iOS, but not macOS. This is important for telemetry, etc.

Studios are obviously just going to choose the API that's supported on the platforms they're shipping to. Usually there's only one "blessed" API, and so that's the one they pick. It doesn't say anything about the quality of those APIs.


> AAA studios already adopted Metal on their engines

Genuine question : Do AAA studio really care about metal ? Is gaming on Mac a thing now ?


Not only gaming is a thing on Mac, more than on GNU/Linux or even BSD combined, it is also a thing on iPhone, iPad and Apple TV, all with Metal support.

Also Apple's augmented reality is based on Metal, and they had Valve on stage praising it at WWDC, with native support on SteamVR SDK.

Finally, many of the frameworks that made use OpenGL, including the window manager, are now working on top of Metal.


Apple is using Metal because it's a modest improvement over OpenGL (in some areas; it's a regression in others) and, more importantly, their OpenGL implementation is extremely buggy.

You haven't said anything about Vulkan vs. Metal, and you can't, because Vulkan is a better API for the reasons I described upthread.


I can't say anything good about Vulkan, because I am not going to buy a new laptop or a Google Pixel just to try it out.


Then please stop saying it's a bad API.

Full disclosure: I have colleagues and friends on the Khronos standards group, and I don't like seeing their work bashed without specific technical reasons.


Where have I said it is a bad API?

I have said it has insignificant market share and that share won't get better outside GNU/Linux for the foreseeable future.

That has nothing to do with quality.


A good few of the major engines now support it.

Gaming on the Mac is a thing to some extent. See Steam for MacOS.


Game engine vendors also care a great deal about iOS, since they have a large number of customers who do, so that's also driving support for Metal in those engines.


But Wayland is that exact same 3d graphics stack.


Kind of, because it is built on top EGL so everything is done via the 3D stack.

On X there is a mixture of X protocol, 3D stack and the interactions among all possible combinations.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: