@@ -20,18 +20,42 @@ index 7572769e0e6f280391668c6797d67e37e2dea30f..e6109987a3d38025a5eede04441c03ee
2020 features += {'vk-khr-display': vulkan.type_name() == 'internal' or
2121 cc.has_function('vkCreateDisplayPlaneSurfaceKHR', prefix: '#include <vulkan/vulkan_core.h>',
2222 dependencies: [vulkan])}
23- diff --git forkSrcPrefix/meson.options forkDstPrefix/meson.options
24- index dae0a333ef71b75a6bb36a236de7feebd99bda40..6ed28af20a09501b4997ca81e86bb198e75327fd 100644
25- --- forkSrcPrefix/meson.options
26- +++ forkDstPrefix/meson.options
27- @@ -101 ,6 +101 ,7 @@ option('gl-dxinterop-d3d9', type: 'feature', value: 'auto', description: 'OpenGL
28- option('ios-gl', type: 'feature', value: 'auto', description: 'iOS OpenGL ES interop support')
29- option('videotoolbox-gl', type: 'feature', value: 'auto', description: 'Videotoolbox with OpenGL')
30- option('videotoolbox-pl', type: 'feature', value: 'auto', description: 'Videotoolbox with libplacebo')
31- + option('moltenvk', type: 'feature', value: 'auto', description: 'Moltenvk context')
23+ diff --git forkSrcPrefix/video/out/gpu/context.c forkDstPrefix/video/out/gpu/context.c
24+ index 75dd804005ba3a1e36375b47dcc9d9bb756ab867..299841cb256372a04c3d1603f856695ce246ec01 100644
25+ --- forkSrcPrefix/video/out/gpu/context.c
26+ +++ forkDstPrefix/video/out/gpu/context.c
27+ @@ -50 ,6 +50 ,7 @@ extern const struct ra_ctx_fns ra_ctx_vulkan_xlib;
28+ extern const struct ra_ctx_fns ra_ctx_vulkan_android;
29+ extern const struct ra_ctx_fns ra_ctx_vulkan_display;
30+ extern const struct ra_ctx_fns ra_ctx_vulkan_mac;
31+ + extern const struct ra_ctx_fns ra_ctx_vulkan_moltenvk;
3232
33- # macOS features
34- option('macos-10-15-4-features', type: 'feature', value: 'auto', description: 'macOS 10.15.4 SDK Features')
33+ /* Direct3D 11 */
34+ extern const struct ra_ctx_fns ra_ctx_d3d11;
35+ @@ -93,6 +94,9 @@ static const struct ra_ctx_fns *contexts[] = {
36+ #if HAVE_X11
37+ &ra_ctx_vulkan_xlib,
38+ #endif
39+ + #if HAVE_SWIFT && HAVE_MOLTENVK
40+ + &ra_ctx_vulkan_moltenvk,
41+ + #endif
42+ #if HAVE_COCOA && HAVE_SWIFT
43+ &ra_ctx_vulkan_mac,
44+ #endif
45+ diff --git forkSrcPrefix/video/out/vulkan/common.h forkDstPrefix/video/out/vulkan/common.h
46+ index e75cb228f8d99462ccecf7780098ea97ae7cfe02..afc17284773204563f4c90b4860758e61068d460 100644
47+ --- forkSrcPrefix/video/out/vulkan/common.h
48+ +++ forkDstPrefix/video/out/vulkan/common.h
49+ @@ -22,6 +22,9 @@
50+ #if HAVE_WIN32_DESKTOP
51+ #define VK_USE_PLATFORM_WIN32_KHR
52+ #endif
53+ + #if HAVE_MOLTENVK
54+ + #include <MoltenVK/mvk_vulkan.h>
55+ + #endif
56+ #if HAVE_COCOA
57+ #define VK_USE_PLATFORM_METAL_EXT
58+ #endif
3559diff --git forkSrcPrefix/video/out/vulkan/context_moltenvk.m forkDstPrefix/video/out/vulkan/context_moltenvk.m
3660new file mode 100644
3761index 0000000000000000000000000000000000000000..445b907f795b24b8df80389394d4ae7b3f94c6e5
@@ -134,39 +158,15 @@ index 0000000000000000000000000000000000000000..445b907f795b24b8df80389394d4ae7b
134158+ .init = moltenvk_init,
135159+ .uninit = moltenvk_uninit,
136160+ };
137- diff --git forkSrcPrefix/video/out/vulkan/common.h forkDstPrefix/video/out/vulkan/common.h
138- index e75cb228f8d99462ccecf7780098ea97ae7cfe02..afc17284773204563f4c90b4860758e61068d460 100644
139- --- forkSrcPrefix/video/out/vulkan/common.h
140- +++ forkDstPrefix/video/out/vulkan/common.h
141- @@ -22,6 +22,9 @@
142- #if HAVE_WIN32_DESKTOP
143- #define VK_USE_PLATFORM_WIN32_KHR
144- #endif
145- + #if HAVE_MOLTENVK
146- + #include <MoltenVK/mvk_vulkan.h>
147- + #endif
148- #if HAVE_COCOA
149- #define VK_USE_PLATFORM_METAL_EXT
150- #endif
151- diff --git forkSrcPrefix/video/out/gpu/context.c forkDstPrefix/video/out/gpu/context.c
152- index 75dd804005ba3a1e36375b47dcc9d9bb756ab867..4ab72a00b3dd3539a06129702e41796fd00a8af3 100644
153- --- forkSrcPrefix/video/out/gpu/context.c
154- +++ forkDstPrefix/video/out/gpu/context.c
155- @@ -50,6 +50,7 @@ extern const struct ra_ctx_fns ra_ctx_vulkan_xlib;
156- extern const struct ra_ctx_fns ra_ctx_vulkan_android;
157- extern const struct ra_ctx_fns ra_ctx_vulkan_display;
158- extern const struct ra_ctx_fns ra_ctx_vulkan_mac;
159- + extern const struct ra_ctx_fns ra_ctx_vulkan_moltenvk;
160-
161- /* Direct3D 11 */
162- extern const struct ra_ctx_fns ra_ctx_d3d11;
163- @@ -126,6 +127,9 @@ static const struct ra_ctx_fns *contexts[] = {
161+ diff --git forkSrcPrefix/meson.options forkDstPrefix/meson.options
162+ index dae0a333ef71b75a6bb36a236de7feebd99bda40..6ed28af20a09501b4997ca81e86bb198e75327fd 100644
163+ --- forkSrcPrefix/meson.options
164+ +++ forkDstPrefix/meson.options
165+ @@ -101,6 +101,7 @@ option('gl-dxinterop-d3d9', type: 'feature', value: 'auto', description: 'OpenGL
166+ option('ios-gl', type: 'feature', value: 'auto', description: 'iOS OpenGL ES interop support')
167+ option('videotoolbox-gl', type: 'feature', value: 'auto', description: 'Videotoolbox with OpenGL')
168+ option('videotoolbox-pl', type: 'feature', value: 'auto', description: 'Videotoolbox with libplacebo')
169+ + option('moltenvk', type: 'feature', value: 'auto', description: 'Moltenvk context')
164170
165- // Vulkan contexts (fallbacks):
166- #if HAVE_VULKAN
167- + #if HAVE_MOLTENVK
168- + &ra_ctx_vulkan_moltenvk,
169- + #endif
170- #if HAVE_ANDROID
171- &ra_ctx_vulkan_android,
172- #endif
171+ # macOS features
172+ option('macos-10-15-4-features', type: 'feature', value: 'auto', description: 'macOS 10.15.4 SDK Features')
0 commit comments