--- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -3460,13 +3460,25 @@ done: static struct wined3d_adapter *wined3d_adapter_create(unsigned int ordinal, DWORD wined3d_creation_flags) { + struct wined3d_adapter *adapter = NULL; + if (wined3d_creation_flags & WINED3D_NO3D) return wined3d_adapter_no3d_create(ordinal, wined3d_creation_flags); if (wined3d_settings.renderer == WINED3D_RENDERER_VULKAN) return wined3d_adapter_vk_create(ordinal, wined3d_creation_flags); - return wined3d_adapter_gl_create(ordinal, wined3d_creation_flags); + if (wined3d_settings.renderer == WINED3D_RENDERER_OPENGL) + return wined3d_adapter_gl_create(ordinal, wined3d_creation_flags); + + /* CW HACK 18311: Use the Vulkan renderer on macOS. */ + if ((adapter = wined3d_adapter_vk_create(ordinal, wined3d_creation_flags))) + ERR_(winediag)("Using the Vulkan renderer for d3d10/11 applications.\n"); + + if (!adapter) + adapter = wined3d_adapter_gl_create(ordinal, wined3d_creation_flags); + + return adapter; } static void STDMETHODCALLTYPE wined3d_null_wined3d_object_destroyed(void *parent) {}