kakashidinho / metalangle

MetalANGLE: OpenGL ES to Metal API translation layer
Other
461 stars 65 forks source link

Forcing MetalAngle/MGLKit to resolve to opengl ES 2.0 (for debugging). #59

Closed mb12 closed 3 years ago

mb12 commented 3 years ago

Is there some way to force MetalAngle to always call / pass through calls to opengl ES 2.0?

I have integrated an application with MetalAngle using MGLKit classes, but its not rendering as expected (in addition to errors). I want to force all calls to opengl ES2.0 instead of metal to resolve any issues in the changes I have done for integration using MGLKit. Once the application works using MGLKit and opengl ES2.0, I will switch over to metal.

kakashidinho commented 3 years ago

Currently there is no built-in support for forcing using native OpenGL ES as driver yet, but you can manually change the source code and compile a custom MetalANGLE framework. For example, change this function to return false and re-compile MetalANGLE framework. https://github.com/kakashidinho/metalangle/blob/4ccacad6cffac142f7b0162685a839a7c3d5c431/src/libANGLE/renderer/metal/DisplayMtl.mm#L29

This will trick MetalANGLE into thinking that Metal is not available and falling back to use native OpenGL ES as driver.

mb12 commented 3 years ago

@kakashidinho Thank you very much. I was able to use this to find the bug in our application and fix it.