Three minor requests..
just some comments I found with testing updated MoltenVK with DXVK & Wolfenstein II Vulkan under Wine:
Wolfenstein II with MoltenVK was launching up to in game gameplay altough with glitches a while ago and now don't even launch up to menu.. upon inspection things that have changed since then: *more VK extensions have been exposed in MoltenVK and Wine also passthrough more of it so request #1 is if it would be possible to control exposed MoltenVK exts. much like Mesa 3D MESA_EXTENSION_OVERRIDE .. *also I have hackintosh with 2 GPUs: Nvidia GPU and AMD Vega.. a while ago even booting Mojave with AMD Vega (as no NV Web drivers for Mojave) MoltenVK device name reported "AMD Radeon RX Vega 64" but vendorID & deviceID shown in mvk-info logs were from Nvidia GPU.. now vendorID & deviceID are correctly from AMD GPU so I'm affraid Wolfenstein II may be checking vendorID to ask different features/exts. to Vulkan drv (in that case MoltenVK).. so request #2: allow overriding vendorID, deviceID and even device name much like DXVK offers for example
also one thing I found it changes using newer MoltenVK builds is Wolfenstein II keeps requiring one thing that before didn't even ask for..
from log I see:
[mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCreateDevice(): Requested feature is not available on this device.
and a screenshot:
So request #3 is if MoltenVK logging can be improved to show why vkCreateDevice fails i.e. the missing requested feature (and extension also)..
was painful, but finally was able to find Wolfenstein II now requires depth bounds test feature.. don't know wild guess: perhaps before checked VendorId was NV and now is AMD and DBT enhances perf better on AMD? just a question to @cdavis5e : please, can you open, if not already requested, an Apple bug (radar), requesting Metal depth bounds test support.. as Wolfenstein II now seems to require.. anway was to find the feature missing & able to bypass: by using similar hacks as DXVK MoltenVK support i.e. by enabling _feature.depthboundstest=true on initfeatures function program doesn't show any more: [mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCreateDevice(): Requested feature is not available on this device.
I've already filed rdar://45346278, which was duped to rdar://31389797, so this is a known problem to Apple. I guess I could inform them that Wolfenstein II needs this and won't start up without it.
@cdavis5e thanks for info.. another interesting use case you may know of depth bounds test is in dxvk-ags (https://github.com/doitsujin/dxvk-ags) as RE2 game (in DX11 mode at least) use AGS depth bounds extension and dxvk-ags provides a map to Vulkan depth bounds test feature.. so in theory once DXVK is better supported on MacOS that kind of games would also take advantage of.. finally you know also useful for VKD3D as D3D12 has builtin optional support (https://github.com/microsoft/DirectX-Graphics-Samples/blob/master/Samples/UWP/D3D12DepthBoundsTest/src/D3D12DepthBoundsTest.cpp)
Adding another request of similar nature here: *Overriding V-sync on/off via environment variable: seeing code I assume setDisplaySyncEnabledMVK could check some env variable getenv(MVK_VSYNC) and act accordingly..
noting depth bounds test availabe on Metal 4 for Apple devices at least so some testing should be done on MoltenVK suports it..