My father-in-law is a monitor engineer. He is insanely gifted. We were in a Korean factory together years ago and I asked him what it would cost to build the Pro Display XDR today. I will never forget his answer…
I'm surprised by that. I use ChatGPT for communication with Japanese clients and I was mistaken for a native speaker more than once. I make almost no corrections other than changing the punctuation from western to fullwidth, although to be fair it's mostly simple and technical language.
It's not just popularity, Epic has been trying really hard to solve it in Unreal Engine.
The issue is that, because of monolithic pipelines, you have to provide the exact state the shaders will be used in. There's a lot of that, and a large part of it depends on user authored content, which makes it really hard to figure out in advance.
It's a fundamental design mistake in D3D12/Vulkan that is slowly being corrected, but it will take some time (and even more for game engines to catch up).
Trying to fit both mobile and desktop in the same API was just a mistake. Even applications that target both desktop and mobile end up having significantly different render paths despite using the same API.
I fully expect it to be split into Vulkan ES sooner or later.
The shader stutter issues are non-existent on console because consoles have one architecture and you can ship shaders as compiled machine code.
For PC you don't know what architecture you will be targeting, so you ship some form of bytecode that needs to be compiled on the target machine.
Closer to AMD and mobile hardware. We got abominations like monolithic pipelines and layout transition thanks to the first, and render passes thanks to the latter.
Luckily all of these are out or on their way out.
A long time ago I did some contract work writing firmware for a major hardware manufacturer in Taipei. I quickly learned to ignore bugs, because reporting them would get me reprimanded for doing things other than the task I was assigned. Even worse, the hardware team saw the firmware/driver/software devs as lowly servants and dismissed any feedback outright.
My issue with Unreal is that Epic puts little effort into improving the developer experience, focusing instead on churning out tech demos, flashy visuals and half baked features that only become usable after several major releases (if ever).
The artists at my company love it, the developers not so much.
I agree with the author that protobuf is bad and I ran into many of the issues mentioned. It's pretty much mandatory to add version fields to do backwards compatibility properly.
Recently, however, I had the displeasure of working with FlatBuffers. It's worse.
“A lot less than you paid for it.”