mach icon indicating copy to clipboard operation
mach copied to clipboard

docs: clarify hardware compatibility goals of the project

Open MetalMaxMX opened this issue 2 years ago • 1 comments

Hey! I've noticed on an older issue (https://github.com/hexops/mach/issues/195) that Mach's support for OpenGL seems to extend up to 4.5, which is a bit high for some devices (specially mobile ones where they can't get there)

Are there plans to have a backend that supports (as a fallback, or an alternative) at least OpenGL 3.3 for maximum compatibility? Or is better that the engine sticks with what it has now? Just curious.

Cheers! MetalMaxMX.

MetalMaxMX avatar Aug 22 '23 19:08 MetalMaxMX

  • We aim to support most desktop/laptop hardware that was released in the last 5 years (see also #989)
  • We will support Android and iOS in the near future, and will require Vulkan and Metal support respectively. We do not have a defined 'last N years' target for mobile hardware yet, and expect to require more modern mobile hardware in general.

Most Windows and macOS hardware released in the last 5 years has DirectX 12 support (or an equivalent version of Metal), while Linux is a more complex topic-primarily because many users there actually do not have fully functioning graphics drivers (many think they do, but in reality find they are actually broken in subtle ways.)

My aim is for Mach to also be usable for developing the next generation of desktop/mobile apps too, not just games. So we will aim to support best-effort OpenGL fallbacks specifically for Linux users who may be suffering in the next few years. But the world is moving on quickly, and in a few years time I expect only embedded devices to be the outlier in terms of not having modern graphics APIs. We won't be supporting embedded devices, and will probably move on from supporting OpenGL fallbacks at all in say 3-5 years.

Are there plans to have a backend that supports (as a fallback, or an alternative) at least OpenGL 3.3 for maximum compatibility?

OpenGL 3.3 is over 12 years old, and is lacking very important modern functionality - even if you exclude things like compute shaders which dramatically change what you can do with the GPU - we won't ever be supporting OpenGL versions earlier than 4.5 or what Dawn supports. By the time someone releases an actually valuable application/game with Mach (say 2-3 years from now), OpenGL 3.3 will be ~15 years old.

Similarly, the Thinkpad X220 mentioned in https://github.com/hexops/mach/issues/195 was released over 12 years ago, so we can't support it.

Hope that answers your questions! I'll leave this issue open as a reminder for myself to document this on the website.

emidoots avatar Aug 23 '23 06:08 emidoots