• DefederateLemmyMl
    link
    fedilink
    English
    arrow-up
    38
    arrow-down
    1
    ·
    6 months ago

    So how does that work given that most Steam games are x86/x64 and the M2 is an ARM processor? Does it emulate an x86 CPU? Isn’t that slow, given that it’s an entirely different architecture, or is there some kind of secret sauce?

    • GenderNeutralBro@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      39
      ·
      6 months ago

      Emulation.

      Definitely going to incur a performance hit relative to native code, but in principle it could be perfectly good. It’s not like the GPU is running x86 code in the first place. On macOS, Apple provides Rosetta to run x86 Mac apps, and it’s very, very good. Not sure how FEX compares.

    • dsemy@lemm.ee
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      30
      ·
      6 months ago

      Why not click the link and find out? It’s literally a Mastodon post, you don’t even have to read much.

      • DefederateLemmyMl
        link
        fedilink
        English
        arrow-up
        35
        arrow-down
        2
        ·
        6 months ago

        The post doesn’t answer the questions, it’s why I asked.

        It says:

        All running on a krun microVM with FEX and full TSO support 💪

        I was not expecting Party Animals to run! That’s a DX11 game, running with the classic WineD3D on our OpenGL 4.6 driver!

        Now I know some of these words, but it does not answer my question.

        • nxdefiant@startrek.website
          link
          fedilink
          arrow-up
          2
          ·
          6 months ago

          Man ,idk why everyone is being a dick to you. A MicroVM is a virtual machine that only emulates a small subset of an entire OS (a container basically). FEX is an x86 emulator. So yes, this is emulation.

          • DefederateLemmyMl
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            6 months ago

            Thanks.

            FEX is an x86 emulator

            So my real question is really about this: common wisdom is that emulating a whole CPU architecture is a performance killer. Does that apply here, and are they just running games that can take the hit? Or phrased differently: given that it’s emulated, could this ever have near-native (CPU) performance, or nah?

            • nxdefiant@startrek.website
              link
              fedilink
              arrow-up
              1
              ·
              6 months ago

              Probably not, but it might be good enough. I’m not an expert in architecture emulation by any stretch, but it might work best for older games where modern performance is a non issue either way.

        • Rustmilian@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          6 months ago

          To answer your question, I’m sure for the x86_64(not separate things btw) specific code it might use some sort of emulator or a translation layer. Idk WTF “microVM with FEX” is, maybe that’s it?

          But for the DX11 part, that’s just the normal DirectX to Vulkan/OpenGL translation layer e.g. WineD3D.
          There’s actually nothing that special about DirectX on ARM, it’s the same API. The translation layer just takes those API calls from DirectX11 and translates them to the equivalent in OpenGL, and then the Asahi Linux OpenGL driver takes of actually executing those commands on the GPU.

        • dsemy@lemm.ee
          link
          fedilink
          English
          arrow-up
          6
          arrow-down
          30
          ·
          edit-2
          6 months ago

          You asked how it works, the post states how it works. You also asked if it’s slow, which is clearly answered in the post (though you didn’t quote that part). You also asked if there’s some “secret sauce” allowing it to be fast, which is also a weird question since everything used is listed in the post.

          If something wasn’t clear to you, why not specifically ask about it? Even in this comment, you still don’t specify what you don’t understand. What kind of answer are you expecting to get?

        • catloaf@lemm.ee
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          37
          ·
          6 months ago

          You can Google the words you don’t know, and find out that it does in fact answer your question.