V5 beta Apr-13-2023 available now

 From:  Michael Gibson
11056.133 In reply to 11056.132 
Hi Marco,

re:
> As far as I know, OpenGL hasn't been supported (natively) on Apple computers, for years now.

That's incorrect. OpenGL.framework is implemented in native arm64 code on all Apple Silicon operating systems so far at least.


> How is it possible that Metal can't deliver as much, if not more, as power
> compared to the OLD OpenGL?

It's because in kind of typical Apple fashion they've prioritized API "elegance" over functionality.

The way the Metal API is designed, you assemble a full list of instructions and then submit that entire instruction set to the GPU which then executes it on the GPU.

To get CPU/GPU parallel processing they advocate using a triple buffering mechanism which works fine for a game that is constantly animating in a render loop but MoI is rather different than a game. Instead of trying to have a constant FPS on a preplanned scene MoI is more focused on generating just the current frame using both the CPU and GPU in parallel. Metal is not able to use both CPU and GPU in parallel within the scope of a single frame unlike OpenGL or Direct3D using dynamic vertex buffers.

Basically there is a thing in OpenGL and Direct3D called "dynamic vertex buffers" which allows data to be streamed from the CPU to the GPU while the current frame is being generated. Metal does not have this function.

- Michael