Results 1 to 10 of 38

Hybrid View

  1. #1
    Player
    reiichi's Avatar
    Join Date
    Sep 2013
    Posts
    264
    Character
    Franz Renatus
    World
    Balmung
    Main Class
    Astrologian Lv 100
    With Apple's recent announcement they're moving their entire platform to their custom ARM chips, this should be getting a bit more interesting.

    I imagine SE will not be making any major changes aside from waiting for WINE to ensure it's safely compatible with Rosetta 2 to translate x86 code while also running all of the DX -> OGL/Vulkan things too. I would not be surprised if we see instances of "FFXIV cannot be run on the newest Macbook" messages come the official release.
    (2)

  2. #2
    Player
    Packetdancer's Avatar
    Join Date
    Oct 2019
    Location
    Gridania
    Posts
    1,948
    Character
    Khit Amariyo
    World
    Leviathan
    Main Class
    Sage Lv 100
    Quote Originally Posted by reiichi View Post
    I imagine SE will not be making any major changes aside from waiting for WINE to ensure it's safely compatible with Rosetta 2 to translate x86 code while also running all of the DX -> OGL/Vulkan things too. I would not be surprised if we see instances of "FFXIV cannot be run on the newest Macbook" messages come the official release.
    You are probably correct. Still, I think if there was ever a time to consider a truly native app without any sort of translation wrapper a'la Crossover/WINE, it would be now.

    The engine already has to support GSMX (or maybe GSM, but I would bet on it being GSMX) for the PS4 client, and presumably once upon a time supported GCM (or PSGL?) for the PS3 client, as well as at one point supporting both DX9 and DX11 simultaneously, so there must be an abstraction layer in there for the graphics. In which case, adding support for Vulkan to that abstraction layer would mean that a) you could compile the client atop MoltenVK and have a Metal-driven native client for macOS, and b) you could theoretically target Linux systems with Vulkan support as well. Heck, you could even in theory target iOS (through the iOS version of MoltenVK) and Android (via Android's Vulkan support), and make a version that would run natively on the Apple TV or sufficiently-powerful Android TV boxes (i.e., the Nvidia Shield TV).

    The trick is that the macOS version would probably need to draw more from the PS4 version than the Windows one in other areas; PS4's "Orbis" operating system is derived from FreeBSD, and macOS's userspace derives from FreeBSD as well. But Orbis has diverged in a number of places and has custom functionality that wouldn't exist on macOS or Linux/BSD systems. Add to that the fact that while older versions had to have been processor-agnostic (i.e., back when PS3 was supported), there's no guarantee they aren't using assembly blocks in the code to speed up processing of certain tasks; the PS4 is an x86-64 architecture a'la Windows PCs (and current Mac hardware), and if they have blocks like that in there, that'd be an obstacle to porting to ARM-based systems.

    So it wouldn't be a simple task, but it's still feasible given an investment of time (and money, since time = money when it comes to paying programmers' salaries). And since Apple's making this move, it seems like it might not be a bad idea. Especially as Apple may not be the only one to take the plunge and shift to an ARM-based chipset in the long-term; the Intel x86 architecture is sort of hitting a wall when it comes to performance gains, while ARM chips are still improving efficiency at a fairly rapid pace...

    Though sadly, I imagine if there's any major new platform support to be added to the Luminous Engine, it'll be added to Luminous Engine 2.0 (i.e., what powers FFXV—and maybe the upcoming Project Athia, based on rumor) rather than the weird offshoot version of Luminous Engine 1.0 that powers FFXIV.

    So I suspect you are right, and they won't make any moves until they see whether WINE (or more specifically, Crossover) works well under Rosetta 2. :/
    (0)
    Last edited by Packetdancer; 06-23-2020 at 05:45 AM.
    Quote Originally Posted by Packetdancer
    The healer main's struggle for pants is both real, and unending. Be strong, sister. #GiveUsMorePants2k20 #HealersNotRevealers #RandomOtherSleepDeprivedHashtagsHere
    I aim to make my posts engaging and entertaining, even when you might not agree with me. And failing that, I'll just be very, VERY wordy.

  3. #3
    Player
    reiichi's Avatar
    Join Date
    Sep 2013
    Posts
    264
    Character
    Franz Renatus
    World
    Balmung
    Main Class
    Astrologian Lv 100
    Quote Originally Posted by Packetdancer View Post
    The trick is that the macOS version would probably need to draw more from the PS4 version than the Windows one in other areas; PS4's "Orbis" operating system is derived from FreeBSD, and macOS's userspace derives from FreeBSD as well. But Orbis has diverged in a number of places and has custom functionality that wouldn't exist on macOS or Linux/BSD systems. Add to that the fact that while older versions had to have been processor-agnostic (i.e., back when PS3 was supported), there's no guarantee they aren't using assembly blocks in the code to speed up processing of certain tasks; the PS4 is an x86-64 architecture a'la Windows PCs (and current Mac hardware), and if they have blocks like that in there, that'd be an obstacle to porting to ARM-based systems.
    /
    Gonna focus only on this part because I'm in general agreement with everything else.

    While Darwin does hail from BSD roots, the overlap with actual BSD when it comes to anything graphical is basically nonexistent as Apple's frameworks are nothing like what you'd get out of something more generic. It's fine for dev/cli stuff, but that's about where compatibility ends. But even on that note, the kernels are completely different and even projects like porting a BSD driver over to macOS is a monumental task, like the projects for intel wifi cards.

    I'd imagine they can probably compile for general platforms, but that there's nothing currently done to target Vulkan, let alone Metal in their Luminous-ish Crystal Tools+ fork. So at a minimum, we're likely to still see DirectX calls being converted over, but that's honestly not super horrible overhead when you consider some games on DXVK are performing better on Linux than natively on Windows.

    So there's maybe a chance we'll see a future version of the Mac port maybe being a weird amalgamation of Windows client bases compiled with WineLib. ...but most likely, we'll see WINE/Crossover getting custom x86 to ARM support if Rosetta 2 doesn't perform well enough or when it's eventually dropped in like 2 years. It wouldn't be the first time as the ancient DarWINE project had x86 to PPC for pre-Intel Macs with varying success.
    (0)

  4. #4
    Player
    Packetdancer's Avatar
    Join Date
    Oct 2019
    Location
    Gridania
    Posts
    1,948
    Character
    Khit Amariyo
    World
    Leviathan
    Main Class
    Sage Lv 100
    Quote Originally Posted by reiichi View Post
    While Darwin does hail from BSD roots, the overlap with actual BSD when it comes to anything graphical is basically nonexistent as Apple's frameworks are nothing like what you'd get out of something more generic. It's fine for dev/cli stuff, but that's about where compatibility ends. But even on that note, the kernels are completely different and even projects like porting a BSD driver over to macOS is a monumental task, like the projects for intel wifi cards.
    Sure, which is why I focused on Vulkan for the graphical stuff; you can map Vulkan to Metal (Apple's graphical API) via MoltenVK. (And the kernel is, as you rightly point out, completely separate; Darwin uses Mach as the basis of its kernel, and just takes the userspace and general library APIs from FreeBSD.) Where I meant the BSD similarities were for things like general system APIs; saving off configuration files, dealing with timers, networking APIs, etc. The Windows client likely uses Win32 APIs for that, but the PS4 Orbis system uses standard FreeBSD APIs for that and so the PS4 version likely uses those APIs, and those are available on macOS.

    I.e., a translation/port would want to take the DirectX graphics layer (since you can do DirectX -> DXVK -> Vulkan -> MoltenVK -> Metal, and there's no similar GSMX -> Metal translation path that I'm aware of) or write a native Vulkan one (longer-term) to pick up Linux and then use MoltenVK directly, but probably would have less work if it took the PS4 filesystem/networking layers. Because while the kernel drivers for WiFi would be very different between FreeBSD and macOS, the actual networking calls in a userspace application are the same.

    So I think we're actually on the same page there.
    (0)
    Quote Originally Posted by Packetdancer
    The healer main's struggle for pants is both real, and unending. Be strong, sister. #GiveUsMorePants2k20 #HealersNotRevealers #RandomOtherSleepDeprivedHashtagsHere
    I aim to make my posts engaging and entertaining, even when you might not agree with me. And failing that, I'll just be very, VERY wordy.