

Vulkan Officially Released - No Mac Support
#41
Posted 28 February 2018 - 05:36 AM
The hardware situation remains uncertain due to the push for thin and long waits between revisions. The option of external GPUs may help overcome this to some degree.
Unknown is the effect of the 32-bit purge - will titles get patched or will work arounds appear? It may also kill off WINE on Macs which removes a way of getting access to many classics.
Both consoles have recent updates so should present a reasonably static target hardware level for game developers today so Macs that can offer this level of gaming performance should be OK for a while I would guess. Also the currency miners have put GPU upgrades out of reach for many average PC gamers so the rate of progress there may be slower until (or even if) this can be resolved.
#42
Posted 28 February 2018 - 05:59 AM
mattw, on 28 February 2018 - 05:36 AM, said:
"We do what we must, because we can."
"Gaming on a Mac is like women on the internet." — "Highly common and totally awesome?"
#43
Posted 28 February 2018 - 09:18 AM
G_Player, on 28 February 2018 - 02:22 AM, said:
Is there more hope now?
iMac 2011, quad 3,4Ghz i7, 1TB Samsung EVO 840, 8GB RAM, 2GB Radeon 6970m. + 2016 Macbook m3 + iPad 2 64GB + iPhone 4S 64GB + Girlfriend + Daughter
#45
Posted 28 February 2018 - 10:34 AM
Spike, on 28 February 2018 - 10:33 AM, said:
MacBook Pro (13-inch, Late 2016, 4 TBT3) — 3.1 GHz i5-6287U | Iris 550 | 16 GB RAM | 512 GB Flash | Space Gray
iMac (27-inch, Late 2012) — 3.4 GHz i7-3770 | GTX 680MX | 32 GB RAM | 1 TB Fusion Drive
iMac (Flat Panel) — 700 MHz PPC 7450 (G4) | GeForce2 MX | 640 MB RAM | 40 GB HDD
iMac (5 Flavors) — 333 MHz PPC 750 (G3) | ATI Rage Pro | 512 MB RAM | 6 GB HDD | Tangerine
iPhone X — 256 GB | Silver
iPhone 5s — 32 GB | Space Gray
iPad Pro (10.5-inch) — 256 GB | Space Gray
iPad Air 2 — 64 GB | Space Gray
iPad — 16 GB
iPod touch (3rd generation) — 32 GB
iPod touch — 8 GB
Apple Watch (1st generation) — 42 mm | Stainless Steel (Yes, there's games for watchOS)
#46
Posted 28 February 2018 - 12:12 PM
#47
Posted 28 February 2018 - 12:13 PM
Janichsan, on 28 February 2018 - 05:59 AM, said:
Yes there are betas etc. but the last point they note is the problem:
"Current Wine includes support for 64 bit Wine on Mac OS X; however, this has not been tested very much, and some applications may never work due to an ABI incompatibility between Win64 and OS X".
#48
Posted 01 March 2018 - 01:17 AM
Spike, on 28 February 2018 - 10:33 AM, said:
But the main point here is more that MoltenVK is not supporting the full set of Vulkan features, making it unuseable for many modern AAA games.
iMac 2011, quad 3,4Ghz i7, 1TB Samsung EVO 840, 8GB RAM, 2GB Radeon 6970m. + 2016 Macbook m3 + iPad 2 64GB + iPhone 4S 64GB + Girlfriend + Daughter
#49
Posted 21 January 2019 - 06:03 AM
Changes noted on their GitHub changelog;
- Support runtime config via runtime environment variables
- Add full ImageView swizzling to config, and disable it by default.
- Add GPU switching to config, and enable it by default.
- Add queue family specialization to config, and disable it by default.
- Enable synchronous queue submits as config default.
- Support 4 queue families.
- Pad fragment shader output to 4 components when needed.
- Add support for copying to and from PVRTC images.
- Log Vulkan versions in human readable form when reporting version error.
- Update VK_MVK_MOLTENVK_SPEC_VERSION to 16.
- Update copyright to 2019.
- Advertise the VK_AMD_gpu_shader_half_float extension.
- Support the VK_KHR_variable_pointers extension.
- MoltenVKShaderConverter tool exit with fail code on any file conversion fail.
- Update to latest dependency libraries for Vulkan SDK 1.1.97.
- Update to latest SPIRV-Cross version:
- MSL: Support SPV_KHR_variable_pointers.
- MSL: Workaround missing gradient2d() on macOS for typical cascaded shadow mapping.
- MSL: Fix mapping of identity-swizzled components.
- MSL: Support composites inside I/O blocks.
- MSL: Fix case where we pass arrays to functions by value.
- MSL: Add option to pad fragment outputs.
- MSL: Fix passing a sampled image to a function.
- MSL: Support std140 packing rules for float[] and float2[].
- MSL: Fix image load/store for short vectors.
- Performance improvements on iterating internal constructs.
- Update copyright to 2019.
- MSL: Support SPV_KHR_variable_pointers.
(my 'world of hurt' that my kids built in a day & is easier to maintain than Windows)
#50
Posted 21 January 2019 - 06:55 AM
Anyway, the more interesting question would be if the so far very limited feature set supported by MoltenVK has been in any way extended to match the Windows/Linux Vulkan desktop feature set. From this change log, it doesn't really look that way.
And another thing: "…so far the likes of Feral Interactive and Aspyr have been quiet on whether they plan to use MoltenVK to ease their porting burden." That is wrong, though. Feral has made very clear that they won't use MoltenVK, as they have an existing and well-working Metal development pipeline.
"We do what we must, because we can."
"Gaming on a Mac is like women on the internet." — "Highly common and totally awesome?"
#51
Posted 21 January 2019 - 10:52 PM
Janichsan, on 21 January 2019 - 06:55 AM, said:
Anyway, the more interesting question would be if the so far very limited feature set supported by MoltenVK has been in any way extended to match the Windows/Linux Vulkan desktop feature set. From this change log, it doesn't really look that way.
And another thing: "…so far the likes of Feral Interactive and Aspyr have been quiet on whether they plan to use MoltenVK to ease their porting burden." That is wrong, though. Feral has made very clear that they won't use MoltenVK, as they have an existing and well-working Metal development pipeline.
Regarding the "…so far the likes of Feral Interactive and Aspyr have been quiet on whether they plan to use MoltenVK to ease their porting burden."
It's simply the fantasies of what's mainly a Linux site... As you said, Feral have been very clear about it.
On another note.. MoltenVK still sucks (looks at ESO).
#52
Posted 17 February 2019 - 12:57 PM
At >4k (4096*something), it's ~25% faster than openGL
Vulkan/DX11 on Windows is ~55% faster than moltenVK at 1080p. Clearly, the translation layer comes at a CPU cost.
The openGL windows version appears bugged. Too bad, it would have been nice to compare to macOS openGL.
#53
Posted 07 April 2019 - 01:15 AM
That also means a lot for Linux gaming since Stadia games will be Vulkan-Linux games running on Google's servers. It remains to be seen whether these games will be released to Linux users. That's not a given. What's clear is that developers will have to port their games to Vulkan and Linux if they want them on Stadia.
In the end, Apple may end up being even behind Linux in terms of gamers and Metal might effectively become limited to iOS/tvOS. If that's the case, not having Vulkan on macOS is going to hurt us a lot more than initially thought.
It's unclear whether Apple actually forbids Vulkan on macOS or just does nothing particular to support it. But given the current nVidia affaire, I can see Apple not signing Vulkan drivers.
With the ban of 32-bit games, Apple really makes it harder for gamers every day.

#54
Posted 07 April 2019 - 01:36 AM
jeannot, on 07 April 2019 - 01:15 AM, said:
Quote
This is not a new thing, but is part of its design since Mac OS X 10.0. It's the same reason why third-party developers couldn't simply add support for more modern versions of OpenGL, as they do under Windows.
"We do what we must, because we can."
"Gaming on a Mac is like women on the internet." — "Highly common and totally awesome?"
#55
Posted 07 April 2019 - 05:32 AM
I fail to see why a GPU vendor couldn't develop a Vulkan/OpenGL driver for macOS on its own, especially considering that the Darwin kernel is open source,. Would you care to explain?
#56
Posted 08 April 2019 - 11:29 AM
jeannot, on 07 April 2019 - 05:32 AM, said:
I fail to see why a GPU vendor couldn't develop a Vulkan/OpenGL driver for macOS on its own, especially considering that the Darwin kernel is open source,. Would you care to explain?

First of all, that macOS's kernel is open source has absolutely no consequence for this whole matter. Aside the fact that (as you might have noticed) you can't simply modify macOS's kernel, the graphics interfaces such as OpenGL, Metal, and Vulkan are part of the OS's user space, which is a whole step remote from the kernel space. The components of the user space are closed source under macOS.
The user space would also be were the major differences between macOS, Windows, and Linux lie. The diagrams I mentioned above would have clearly shown that.
Windows and Linux offer interfaces to add certain features such as newer versions of OpenGL or Vulkan to the user space as so called "Installable Client Drivers" (which – despite the name – are something very different than device drivers such as GPU drivers).
macOS has no such interfaces.
In the end, it's as simple as that: you can't add your own Vulkan/OpenGL driver to macOS because Apple does not give you a way to do so.
"We do what we must, because we can."
"Gaming on a Mac is like women on the internet." — "Highly common and totally awesome?"
#57
Posted 10 April 2019 - 12:21 AM
I know that GPU vendors don't provide their own OpenGL implementation in macOS drivers, as opposed to what's available on Windows. What I've never heard, though, is that macOS does not support installable client drivers.
The fact that Nvidia provides CUDA on macOS (when Apple approves their drivers, that is) suggests that GPU vendors can implement their own APIs... If it's possible for CUDA, why not Vulkan? What's the fundamental difference between a compute API and a 3D API?
#58
Posted 10 April 2019 - 07:41 AM
jeannot, on 10 April 2019 - 12:21 AM, said:
Quote

Quote
But as you mention it: there is in fact a fundamental difference between a compute API and a graphics API. Simply put, in a compute API you shove numbers in and get nothing but numbers out. The results you get from the compute API are pretty much completely independent from any other component of the operating system. They are just numbers.
This is very different in a graphics API: if you want to get the graphics your API spits out on the screen, you will have to interact with other parts in the user space, such as the windowing system. Basically, you are dependent on some kind of interfaces between your API and the rest of the OS. This is not really the case for pure compute APIs.
"We do what we must, because we can."
"Gaming on a Mac is like women on the internet." — "Highly common and totally awesome?"
#59
Posted 10 April 2019 - 09:09 AM
The user graphics of OS X is handled by the `WindowServer` process along with I/O Kit. User graphics combined with kernel graphics could be considered the analogue of `win32k.sys` on Windows. The user graphics part of macOS is handled in a separate process while Windows provides the GDI32 APIs which calls “win32k.sys` directly. Apple’s approach could be considered more secure as user memory is not shared between processes. Anyone who disagree's should look at the hundreds of vulnerabilities and exploits involving GDI over the years.
Enterprise (iMac18,2): i7 @ 3.6 GHz || 16 GB RAM || Radeon Pro 560 || 2TB Micron + 6TB Toshiba
Defiant (MacBookPro 9,1): Core i7 @ 2.3ghz || 8GB RAM || nVidia GT 650M 512MB || 512GB Toshiba SSD
#60
Posted 10 April 2019 - 10:09 AM
macdude22, on 10 April 2019 - 09:09 AM, said:
I just wonder if the reasons behind all this relate to Apple wanting absolute control and no competition, or whether there are technical justifications.