Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenGL ES is deprecated on iOS #1567

Closed
bio1712 opened this issue Apr 17, 2020 · 4 comments
Closed

OpenGL ES is deprecated on iOS #1567

bio1712 opened this issue Apr 17, 2020 · 4 comments
Labels
change Change to existing functionality iOS
Milestone

Comments

@bio1712
Copy link

bio1712 commented Apr 17, 2020

Screenshot 2020-04-17 at 23 42 30

All LÖVE should use Metal instead of OpenGL ES.
Apple could drop OpenGL ES support soon.

"Games and graphics-intensive apps that previously used OpenGL ES should now adopt Metal."

@bio1712 bio1712 changed the title OpenGL ES deprecated on iOS OpenGL ES is deprecated on iOS Apr 17, 2020
@slime73
Copy link
Member

slime73 commented Apr 17, 2020

I've already started work on a Metal backend for love, however it's still in its early stages: slime73/love-experiments@12.0-development...slime73:metal

Whether that ends up in 12.0 or a new 11.x release depends on whether Apple removes OpenGL ES from its SDKs this year or not.

@slime73 slime73 added change Change to existing functionality 12.0 labels Apr 18, 2020
@slime73
Copy link
Member

slime73 commented Jul 1, 2020

Whether that ends up in 12.0 or a new 11.x release depends on whether Apple removes OpenGL ES from its SDKs this year or not.

Apple will be continuing support for OpenGL / OpenGL ES in their new macOS and iOS releases, according to their new documentation. So if a Metal backend is completed, it will be for 12.0 rather than 11.x.

@slime73 slime73 removed the 12.0 label Nov 21, 2021
@slime73 slime73 added this to the 12.0 milestone Nov 21, 2021
@slime73
Copy link
Member

slime73 commented Jan 15, 2022

I've merged my metal branch into the 12.0-development branch (see #1761). But the OpenGL renderer has priority over the metal renderer by default for now, because there are still some things to resolve and improve with the metal backend (edit: it's in good enough shape these days that it has priority over OpenGL):

  • Figure out a workaround or wait for an OS-side fix for discrete GPUs not fully activating (https://developer.apple.com/forums/thread/675411).
  • Test and fix the Metal backend on iOS.
  • Fix font texture compatibility on older systems.
  • Fix clamp_one blend mode potentially crashing instead of erroring on older systems.
  • Profile and investigate Buffer update performance.
  • Test and fix texel buffers when they're sent to shaders.
  • Clean up shader creation/reflection code.
  • Fix triangle fan meshes by emulating the draw mode via an internal index buffer.
  • Fix render pipeline creation when love's automatic depth/stencil settings are used in setCanvas.
  • Fix color masks/stencil state to match the OpenGL backend, when stenciling is used.
  • Decide whether to fall back to better supported depth/stencil formats if an unsupported 16 or 24 bit format is requested.
  • Make sure pixel format support tables are correct.
  • Fix shaders having stale sampler state if a Texture's sampler changes after it has been used with that shader.
  • Test and fix texture MSAA.
  • Fix textures not being initialized to transparent black in certain situations.
  • Fix Texture:generateMipmaps to either error or work correctly when the format isn't filterable.
  • Profile various scenarios to make sure there aren't unexpected performance issues.

The Metal backend currently requires macOS 10.15+ or iOS 13.0+.

@slime73 slime73 added the iOS label Jun 18, 2023
@slime73
Copy link
Member

slime73 commented Jan 10, 2024

There's one major known bug but it has a separate tracked issue (#1975), so I'll close this as solved now.

@slime73 slime73 closed this as completed Jan 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
change Change to existing functionality iOS
Projects
None yet
Development

No branches or pull requests

2 participants