Rude awakening regarding Metal

  1. 2 months ago

    Sam R

    Mar 12 Pre-Release Testers, Xojo Pro Hengchun, Pingtung, Taiwan

    Today I released a beta version of my app that uses Metal, to a handful of testers; the very first response I got is from a customer who couldn't use the product. After some to-ing and fro-ing, it turns out that while the customer can run macOS 10.11 (which supports Metal); his machine doesn't actually support Metal.

    I've done some Googling and found that Metal may only support machines made in the last 6 years. While targeting macOS 10.11, supports machines upto 11 years old.

    As OpenGL and Metal are not directly interchangeable, this adds a lot of complication if I want to use both. Targeting Mojave only (so that all customers are using some Metal compatible device) limits the potential customer to just 40% of the market. Supporting both Metal and OpenGL (and targeting MacOS 10.11) opens that up to 90% of the Mac market.

    I couldn't find any stats that show the average age of Macs accessing the internet.

    So before you do what I did and rip out that OpenGL in favor of Metal (thinking it was widely adopted), you may want to consider what I know now.

  2. Tim J

    Mar 12 Pre-Release Testers, Xojo Pro Dehydrating in AZ

    The mob is getting rowdy... I'm hearing shouts of "We want Display Postscript!" from below the ramparts.

  3. Beatrix W

    Mar 12 Pre-Release Testers Europe (Germany)

    Each of us must have a hobby. I have had crashing pdfs in the last week. And this week I made Valentina kaputt.

  4. Jeff T

    Mar 12 Pre-Release Testers Midlands of England, Europe

    I'm hearing shouts of "We want Display Postscript!" from below the ramparts.

    I usually hear "Oy.. watch where you're chucking your rubbish, we're trying to sleep down here" from below the ramparts..

  5. Don L

    Mar 12 Pre-Release Testers, Xojo Pro Florence, South Carolina USA

    @Jeff T Oy.. watch where you're chucking your rubbish, we're trying to sleep down here" from below the ramparts..

    Sure we're not neighbors, Jeff? -_^

  6. Sam R

    Mar 12 Pre-Release Testers, Xojo Pro Hengchun, Pingtung, Taiwan

    Make jokes all you like; I am pissed. I found out the hard way that I've cut down my potential customer base by (possibly) half. Because Apple broke OpenGL in 10.14 and are removing it in 10.15.

  7. Beatrix W

    Mar 12 Pre-Release Testers Europe (Germany)

    Sorry, if we appeared flippant. You know you should have tested this before development. I wasted a whole day yesterday because the Valentina folks seem to have misunderstood threads in Xojo - again.

  8. Tim J

    Mar 12 Pre-Release Testers, Xojo Pro Dehydrating in AZ
    Edited 2 months ago

    @Sam R Make jokes all you like; I am pissed. I found out the hard way that I've cut down my potential customer base by (possibly) half. Because Apple broke OpenGL in 10.14 and are removing it in 10.15.

    I feel your pain and my list of RADAR reports marked as "Not a bug, that's the way it's always worked and what the users expect." make me wish that I could simply pull the plug on our macOS offerings.

    My favorite right now is the "Full Disk Access" debacle and the white listing not supporting non-bundled console tools or daemons. The only solution is to have the customer disable SIP. This new "feature" implementation occurred between the last betas and the GM (again), so we had no idea that it was coming until it bit us at customer sites.

  9. Jeff T

    Mar 12 Pre-Release Testers Midlands of England, Europe

    Sorry, if we appeared flippant.

    Seconded. We feel your pain. Especially given that you're one of our 'key people'

    In smaller ways, Apple's changes generate issues for me with nearly every release.
    Even Dark Mode has cost me months of (to me) pointless work.

    Apple broke OpenGL in 10.14 and are removing it in 10.15.

    Instead of fixing it, or reverting the changes, and then just leaving it alone for people who want to use it, (while encouraging the use of Metal.)
    Thats the thing that gets me.. there is no need to take it away
    It's not like they are short of disk space.
    Maybe this is another early sign of moving to ARM.. remove OpenGL and they don't have to recode that bit?

  10. Christian S

    Mar 13 Pre-Release Testers, Xojo Pro, XDC Speakers Germany

    Why not use higher level framework like SceneKit?
    That's what we use for MBS Xojo Plugins for 3D Graphics now.

  11. Sam R

    Mar 13 Pre-Release Testers, Xojo Pro Hengchun, Pingtung, Taiwan

    @Beatrix W You know you should have tested this before development.

    Agreed; I let my frustration with Apple cloud my judgement. I was so miffed that they broke OpenGL in Mojave, I incorrectly assumed that as 10.11 supports Metal, all the machines it runs on also supports Metal.

    @Tim J make me wish that I could simply pull the plug on our macOS offerings.

    You, I and many macOS developers feel this way. The annual updates with a general lack of care have helped to eat away at Apple's "It just works" reputation. They do themselves no favors with their current hardware either.

    @Jeff T In smaller ways, Apple's changes generate issues for me with nearly every release.

    This is how a lot of developers feel, so much work, just to keep the app alive, which takes away time from being able to make the application a better product. It's infuriating.

    @Jeff T Maybe this is another early sign of moving to ARM.. remove OpenGL and they don't have to recode that bit?

    Technically they already have it for ARM, as it was also in iOS. However they've removed it from there also. My feelings on why Apple it removing so much stuff from the OS, is to reduce the workload for the engineers, so that they can reduce the amount of engineers and therefore save costs, and increase ROI.

    @ChristianSchmitz Why not use higher level framework like SceneKit?

    Because I am not using OpenGL/Metal for 3D scene rendering. I am using it/them as a rendering destination for Core Image, which gives incredible onscreen performance increases.

    For the time being, I've cobbled together a new canvas subclass that uses CALayers, when OpenGL is selected it creates an CAOpenGLLayer and when Metal is selected it creates a CAMetalLayer. If Metal is supported, it uses Metal, otherwise OpenGL. They're not directly compatible, so I've duct taped some bridge code so that can at least both draw. I've removed some functionality, I may add it back in the future, once I can figure out a solution for both.

    I've also reverted my kernels to use GLSL (as this works on both, for the time being) instead of MTSL.

    Hopefully today or tomorrow I can send this out for testing.

    Do you want to know something funny? Our much earlier apps; which are pure Xojo & Einhugur picture effects, compiled as 32-Bit CARBON applications (back last decade), still kinda work in Mojave (although not always). Yet an app I wrote last year, using Apple's image editing API stopped working when Mojave was released. Seems like the moral here is to avoid using Apple's fancy APIs!

  12. Ivan T

    Mar 13 Pre-Release Testers

    @Jeff T Instead of fixing it, or reverting the changes, and then just leaving it alone for people who want to use it, (while encouraging the use of Metal.)
    Thats the thing that gets me.. there is no need to take it away

    Thats just apple. That is their way

  13. Brian O

    Mar 14 Pre-Release Testers, Xojo Pro Calgary, AB

    I hope you didn't use any intel optimize threading or SIMD / MMX dependant calls.. like OpenCV...
    I hope you didn't user and nVidia optimized parallelism like CUDA...

    I hope you didn't think cross platform would live for very long....
    It's just time we developers said no to this...

    In the mean time.. what about Vulkan?

  14. Sam R

    Mar 14 Pre-Release Testers, Xojo Pro Hengchun, Pingtung, Taiwan

    @Brian O'Brien I hope you didn't think cross platform would live for very long....
    It's just time we developers said no to this...

    That's the painful irony here, as I didn't go x-plat with this project. I am just targeting the macOS, but with Apple's rabid rate of change (I swear some of it is simply for changes sake), it's becoming almost impossible to rely on using Apple API for more than a couple of versions of the macOS.

    @Brian OBrien In the mean time.. what about Vulkan?

    Sadly Vulkan isn't supported by Core Image. Although if I'm honest I do question how long Apple is going to support Core Image.

    It's apparent now that I cannot trust Apple to not break things in the future, and therefore I need to come up with a solution whereby I use as little of their stuff as possible, this would also help to open it up to becoming an x-plat application. Which I think is going to be more critical in future.

  15. Brian O

    Mar 14 Pre-Release Testers, Xojo Pro Calgary, AB
    Edited 2 months ago

    I'm going back to writing for MSDOS or Turbo DOS maybe even CPM.

  16. Philip C

    Mar 15 Pre-Release Testers, Xojo Pro Cooroy, QLD, Australia
    Edited 2 months ago

    You could go back even further and write for Tandy TRSDos or Z80 assembler!

  17. Brian O

    Mar 16 Pre-Release Testers, Xojo Pro Calgary, AB

    @Philip C You could go back even further and write for Tandy TRSDos or Z80 assembler!

    6502 and Z80!
    #ASM

    I learned assembler on this AIM 6502 at Mt. A.

    -image-

  18. Tim J

    Mar 16 Pre-Release Testers, Xojo Pro Dehydrating in AZ

    Forth FTW!

  19. Brian O

    Mar 16 Pre-Release Testers, Xojo Pro Calgary, AB
    Edited 2 months ago

    @Tim J Forth FTW!

    You're gonna pop my stack!
    Laboratory Microsytems Inc Forth. (Ray Duncan) Anyone remember him?!
    http://www.forth.org/Definitions/V1N2.pdf

  20. Tim J

    Mar 16 Pre-Release Testers, Xojo Pro Dehydrating in AZ
    Edited 2 months ago

    I primarily used TurboForth for the TI-99/4A and JForth on the Amiga. Forth was so much more productive than TMS ASM. The TMS9900 was on par with the later Motorola 68000, but had far more extensible features - Need a new set of registers - create 'em. Too bad TI botched that chip. I'd love to see where that architecture ended up by modern standards.

  21. Newer ›

or Sign Up to reply!