coffeeaddict1 2 days ago

This is nice, but what I really would like is for someone to make the Zink + MoltenVK/KosmicKrisp combo so that we can have OpenGL 4.1+ support on macOS. It's somewhat disappointing that the only way to utilise the latest OpenGL on Macs is to use Asahi Linux.

wmf 2 days ago

The announcement is pretty confusing since Mesa is used on Linux but Metal only exists on macOS/iOS. I guess this is only for Linux VMs running on macOS such as the Android emulator. Maybe it could also be used to run desktop Linux in a VM.

  • jchw 2 days ago

    Mesa is also usable on other platforms, including Windows and macOS.

    It's even theoretically possible to use the Asahi Linux hardware Mesa drivers on macOS, though actually doing so would involve hacking around undocumented APIs. I actually thought this was demonstrated before (during early testing) but I can't find it.

    Someone else managed to get the RADV AMD driver working on Windows[1]. It is not fully merged upstream yet, but I think they would like to get it merged upstream eventually.

    Windows 10 on ARM (maybe Windows 11?) also use Mesa with Microsoft and Collabora's d3d12 backend to run OpenGL and OpenCL applications on top of d3d12, for hardware that does not have proper OpenGL and OpenCL drivers[2].

    And of course, it ought to be possible to use llvmpipe/lavapipe with off-screen rendering pretty much anywhere you can get Mesa to build, although in practice I believe SwiftShader usually nets you a lot better performance if it's applicable.

    So Mesa is actually not used only on Linux, it can be used pretty much anywhere, actually ships with Windows, and of course many other free software operating systems also ship Mesa.

    [1]: https://www.phoronix.com/news/RADV-Windows-XDC-2024

    [2]: https://devblogs.microsoft.com/directx/announcing-the-opencl...

  • lights0123 2 days ago

    Mesa can be used on other operating systems. See https://www.phoronix.com/news/Zink-Windows-Kopper-Progress for an example of using its OpenGL-to-Vulkan translator on Windows.

    • justsid a day ago

      Not just that, we actually ship Zink with our Vulkan based game because for absolutely insane reasons many years ago the decision was made to expose a GL context to plugins for graphics work. The hardest part was to provide a couple of required extensions and massaging Zink to use our Vulkan device with our extensions and also stub out its memory allocator for ours. Oh, and making sure we get to get dibs on loading opengl32.dll/libgl.so that translates into Zink.

      It weirdly sounds crazier than it is. Mike is an absolute legend for all of his work on Zink.

      Edit: Clicked on your link and they are directly talking about work there. Serves me right for not reading it first.

  • pjmlp a day ago

    Mesa has taken a middleware role for quite some time now.

    • wmf a day ago

      What macOS apps use Mesa?

      • pjmlp a day ago

        Probably some FOSS stuff, as usual.

shmerl 2 days ago

People jumping through hoops with smart tricks, because Apple are too stuck up to support Vulkan natively.

  • justsid a day ago

    I would rather Apple actively maintains Metal than halfheartedly support Vulkan the way they supported OpenGL. If you have a relatively good graphics abstraction layer in your engine already, implementing a Metal backend isn't super hard, especially if you already support Vulkan or D3D12. Metal is a lot like diet Vulkan/D3D12, except for a couple of really odd decisions.

    The hardest part about supporting Apple systems is honestly everything else and no amount of Vulkan drivers is going to help with that.

    • shmerl a day ago

      Apple aren't some resource lacking entity. They can support Vulkan properly and there is no excuse not to.

      • justsid a day ago

        Sure but in the meantime some of us have to actually keep shipping products and in that world I'd rather see Apple support their own thing that they are at least mildly interested in pushing forward.

        • shmerl a day ago

          In the end Apple doesn't care about what anyone but Apple needs. So who knows, they might kill Metal tomorrow because they'll think their new NIH will serve their lock-in needs better (especially after Vulkan on Metal will get better through this kind of efforts). Point is they are a very bad industry player damaging things for everyone.

          They surely don't care about making things better for developers.

  • pjmlp a day ago

    Just wait when they hear about game consoles.

    Apparently game devs have been doing just fine with middleware solution since the days of Atari.

    • shmerl a day ago

      Apple doesn't care about gamers, so gamers shouldn't care about Apple.

      • pjmlp a day ago

        Apple does surely care about gamers, people keep forgetting about iDevices.

        "- Mobile games generated $81 billion revenue in 2023 across both platforms

        - iOS was responsible for $47.7 billion of that revenue, Google Play generated $33.3 billion

        - Mobile was responsible for 49% of total game revenues, close to PC and console totals combined"

        https://www.businessofapps.com/data/mobile-games-revenue/

        • shmerl 16 hours ago

          No, they care about telling gamers what they should do, not about enabling gamers what they want to play. That's very much not the same thing.

          That's a general thing with Apple - they act as if they know better than the user what user needs and they force it on their user base.

          Someone keeps forgetting they literally dropped OpenGL and 32-bit support, making a lot of existing games on their own systems unplayable. Not supporting Vulkan is just another example of the above.

lawlessone 2 days ago

Are metal GPU's good? I've admit for purely ideological reasons i've never really looked into how powerful they are

  • pjmlp a day ago

    Yes, it is the best next generation API, and the only one that fully supports C++ (C++14 with extensions) on the GPU.

    It is also the only native 3D API designed for managed languages, in Objective-C with Swift bindings.

    DirectX is the land of COM, C++, write your own bindings, HLSL isn't quite C++, although is getting there.

    Vulkan is the second coming of extension spaghetti, GLSL is stagnant to the point everyone was using HLSL instead, now there is Slang, still outside C and C++, write your own bindings.

    LibGNM and LibGMX are basically C and C++ land, and PSGL is an evolution from HLSL.

    NVN is a mix of OpenGL and Vulkan, and equally C and C++ land.

    Then there are all the MetalKits, that no OS vendor has similar offerings.

  • bigyabai 2 days ago

    For raster, they're pretty good and fabbed on dense nodes. For compute, nothing special.