Metal for new, OpenGL for old macOS X versions?

  • We have an application developed under Qt 5.14 which works fine on OS X 10.13 or later using out-of-the-box defaults. Documentation indicates that it is a risk to set QMAKE_MACOSX_DEPLOYMENT_TARGET lower than this default, but it's no good limiting our users to such new OS X versions if we can help it; in any case, though, Qt's use of Metal would limit us to OS X 10.11 or later, and only then if those early Metal implementations were "good enough".

    It'd be nice to have Qt able to switch to OpenGL at all layers where it uses Metal, if Metal is absent or insufficient. I cannot find anything about how this might be done after an awful lot of Google searching; docs just say, "hey, rendering uses Metal now" with reasons about why it's better. While doubtless true, it would still be good to support older OS X versions - before moving it up to Qt 5.14, the much older app ran on 10.6 fine and we use no special OS X features that ought to prohibit at least running a little further back.

    Is there any variable / configuration switch available which would make Qt 5.14 auto-select the rendering backend on macOS to choose Metal or OpenGL automatically?

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    That's the kind of question your should bring to the interest mailing list. Note however that beside the Metal VS OpenGL issue at hand, AFAIK, the current policy is to follow Apple support plan which means the three last version of macOS. Therefore, depending on what version of macOS you'd like to support, you will have to use an older version of Qt or rebuild it yourself with the "oldest enough" macOS version that still works.

Log in to reply