
Three Years of Metal (2019) - pjmlp
https://zeux.io/2019/12/12/three-years-of-metal/
======
gnachman
I use it for a fairly simple task and I often run in to compiler bugs. Const
buffers over 64k get truncated on NVidia gpus, using half4 broke the optimizer
on some iMac gpus, and sometimes I have to split up functions until the
optimizer on some gpu I don’t own stops doing crazy things. I am terrified of
writing MSL because of this.

~~~
pcwalton
Yeah, to add to that, I've hit bugs in blending where certain blend modes just
don't work and silently render transparent black. Also, the Metal debugger
crashes most of the time and tells me "file a Radar". I'm likewise dealing
with reported segfaults on hardware I don't own. And there are missing
features: timer queries, for instance, aren't really supported and you have to
hack them up in an unreliable way, useful extensions supported by the hardware
like conservative rasterization are unavailable (Vulkan has this problem too),
etc.

I suspect things are better on iOS, but Metal has not been a great experience
on macOS for me. There's an argument to be made for proprietary APIs if
they're _better_ than the alternatives, but not if they're _worse_...

------
Geeflow
After reading the title I was really looking forward to some musical
discussions on HN... :)

------
barnyfried
While Im not a graphics pipeline dev, Im curious given the foundational nature
of these technologies like DirectX, openGL and Metal, besides platform lock in
and bug/performance counting, do these technologies provide any lasting
benefit outside of the inherent peculiarities of a given OS/graphics card
combination?

At what point should this have been built into the OS vs creating a
monopolistic os-driver-driven platform. Or as an improvement remove the OS
from the picture entirely if possible.

Creating your own graphics pipeline based on OS and graphics card permitted
integrations sounds alot like creating a proprietary bitcoin wallet for
oneself.

~~~
gameswithgo
>do these technologies provide any lasting benefit

While there are downsides to having these different targets, there are upsides
as well. For instance on any given platform, be it Metal for IOS or DirectX
for Windows, the "native" options has usually been the most bug free and best
performing option. It helps when you can build something like DirectX and know
that this will only run in windows. Making something cross platform like
Vulkan is more effort and complexity.

The other benefit is you have different groups exploring this space. While
things might have been simpler in some ways if there had only been OpenGL,
OpenGL might not have been forced to evolve as much as it did. vulkan might
not have happened as soon as it did, etc.

~~~
jfkebwjsbx
Making a graphics API cross-platform is definitely not where complexity comes
from.

Apple wants to have vendor lock-in, but that is not news.

~~~
tinus_hn
Obviously the statement is about building your application using a cross-
platform library like Vulkan or OpenGL versus using a native library like
Metal or DirectX. This has nothing to do with Microsoft or Apples vendor
locks.

