Skip to content

meson: search for MoltenVK on macOS

Niklas Haas requested to merge januaryjp:master into master

Created by: januaryjp

This allows compilation of libplacebo on macOS with Vulkan if you have a MoltenVK.framework in /Library/Frameworks. It also seems that shaderc works out of the box from source.

Note this only enables compilation, the demo does not run entirely (see log below):

Requested swap mode unsupported by this device, falling back to VK_PRESENT_MODE_FIFO_KHR
Failed picking any compatible texture format for a plane!
Failed uploading image plane!
[mvk-debug] Initializing MoltenVK timestamping. Mach time: 507790034016576. Time period: 1 / 1 = 1.000000.
Requesting 2 additional vulkan extensions:
    VK_KHR_surface
    VK_MVK_macos_surface
[mvk-info] MoltenVK version 1.0.0. Vulkan version 1.0.69.
[mvk-info] GPU device Intel HD Graphics 5000 (vendorID: 0x8086, deviceID: 0x0a26, pipelineCacheUUID: 55DB2269-9D57-521B-9CC8-69831DDC1F3D) supports the following Metal Feature Sets:
	OSX GPU Family 1 v3
	OSX GPU Family 1 v2
	OSX GPU Family 1 v1
Probing for vulkan devices:
    GPU 0: Intel HD Graphics 5000 (integrated)
Vulkan device properties:
    Device Name: Intel HD Graphics 5000
    Device ID: 8086:a26
    Driver version: 10000
    API version: 1.0.69
Queue families supported by device:
    QF 0: flags 0x7 num 16
Using graphics queue (QF 0)
Creating vulkan device with extensions:
    VK_KHR_swapchain
[mvk-info] Compile MSL source code into a MTLLibrary performance curr: 0.804 ms, avg: 0.804 ms, min: 0.000 ms, max: 0.804 ms, count: 1
[mvk-info] Created VkDevice to run on GPU Intel HD Graphics 5000
Initializing SPIR-V compiler 'shaderc'
Memory heaps supported by device:
    heap 0: flags 0x1 size 1610612736
Memory types supported by device:
    type 0: flags 0x1 heap 0
    type 1: flags 0xf heap 0
    type 2: flags 0xb heap 0
GPU information:
    GLSL version: 450 (vulkan)
    Capabilities: 0x1
    Limits:
      max_tex_1d_dim:            16384
      max_tex_2d_dim:            16384
      max_tex_3d_dim:            2048
      max_pushc_size:            4096
      max_xfer_size:             18446744073709551615
      max_ubo_size:              1073741824
      max_ssbo_size:             1073741824
      max_buffer_texels:         1073741824
      min_gather_offset:         0
      max_gather_offset:         -1
      max_shmem_size:            32768
      max_group_threads:         1024
      max_group_size[0]:         4294967295
      max_group_size[1]:         4294967295
      max_group_size[2]:         4294967295
      max_dispatch[0]:           4294967295
      max_dispatch[1]:           4294967295
      max_dispatch[2]:           4294967295
      align_tex_xfer_stride:     1
      align_tex_xfer_offset:     256
GPU texture formats:
    NAME       TYPE   CAPS   SIZE COMP DEPTH         BITS          GLSL_TYPE  GLSL_FMT  
    r8         UNORM  0x1fb  1    R    {8  0  0  0 } {8  0  0  0 } float      r8        
    r8i        SINT   0x1fb  1    R    {8  0  0  0 } {8  0  0  0 } int        r8i       
    r8s        SNORM  0x1fb  1    R    {8  0  0  0 } {8  0  0  0 } float      r8_snorm  
    r8u        UINT   0x1fb  1    R    {8  0  0  0 } {8  0  0  0 } uint       r8ui      
    rg8        UNORM  0x1fb  2    RG   {8  8  0  0 } {8  8  0  0 } vec2       rg8       
    rg8i       SINT   0x1fb  2    RG   {8  8  0  0 } {8  8  0  0 } ivec2      rg8i      
    rg8s       SNORM  0x1fb  2    RG   {8  8  0  0 } {8  8  0  0 } vec2       rg8_snorm 
    rg8u       UINT   0x1fb  2    RG   {8  8  0  0 } {8  8  0  0 } uvec2      rg8ui     
    rgba8      UNORM  0x1fb  4    RGBA {8  8  8  8 } {8  8  8  8 } vec4       rgba8     
    rgba8i     SINT   0x1fb  4    RGBA {8  8  8  8 } {8  8  8  8 } ivec4      rgba8i    
    rgba8s     SNORM  0x1fb  4    RGBA {8  8  8  8 } {8  8  8  8 } vec4       rgba8_snorm
    rgba8u     UINT   0x1fb  4    RGBA {8  8  8  8 } {8  8  8  8 } uvec4      rgba8ui   
    r16        UNORM  0x1fb  2    R    {16 0  0  0 } {16 0  0  0 } float      r16       
    r16hf      FLOAT  0x1fb  2    R    {16 0  0  0 } {16 0  0  0 } float      r16f      
    r16i       SINT   0x1fb  2    R    {16 0  0  0 } {16 0  0  0 } int        r16i      
    r16s       SNORM  0x1fb  2    R    {16 0  0  0 } {16 0  0  0 } float      r16_snorm 
    r16u       UINT   0x1fb  2    R    {16 0  0  0 } {16 0  0  0 } uint       r16ui     
    rg16       UNORM  0x1fb  4    RG   {16 16 0  0 } {16 16 0  0 } vec2       rg16      
    rg16hf     FLOAT  0x1fb  4    RG   {16 16 0  0 } {16 16 0  0 } vec2       rg16f     
    rg16i      SINT   0x1fb  4    RG   {16 16 0  0 } {16 16 0  0 } ivec2      rg16i     
    rg16s      SNORM  0x1fb  4    RG   {16 16 0  0 } {16 16 0  0 } vec2       rg16_snorm
    rg16u      UINT   0x1fb  4    RG   {16 16 0  0 } {16 16 0  0 } uvec2      rg16ui    
    rgba16     UNORM  0x1fb  8    RGBA {16 16 16 16} {16 16 16 16} vec4       rgba16    
    rgba16hf   FLOAT  0x1fb  8    RGBA {16 16 16 16} {16 16 16 16} vec4       rgba16f   
    rgba16i    SINT   0x1fb  8    RGBA {16 16 16 16} {16 16 16 16} ivec4      rgba16i   
    rgba16s    SNORM  0x1fb  8    RGBA {16 16 16 16} {16 16 16 16} vec4       rgba16_snorm
    rgba16u    UINT   0x1fb  8    RGBA {16 16 16 16} {16 16 16 16} uvec4      rgba16ui  
    r32f       FLOAT  0x1fb  4    R    {32 0  0  0 } {32 0  0  0 } float      r32f      
    r32i       SINT   0x1fb  4    R    {32 0  0  0 } {32 0  0  0 } int        r32i      
    r32u       UINT   0x1fb  4    R    {32 0  0  0 } {32 0  0  0 } uint       r32ui     
    rg32f      FLOAT  0x1fb  8    RG   {32 32 0  0 } {32 32 0  0 } vec2       rg32f     
    rg32i      SINT   0x1fb  8    RG   {32 32 0  0 } {32 32 0  0 } ivec2      rg32i     
    rg32u      UINT   0x1fb  8    RG   {32 32 0  0 } {32 32 0  0 } uvec2      rg32ui    
    rgba32f    FLOAT  0x1fb  16   RGBA {32 32 32 32} {32 32 32 32} vec4       rgba32f   
    rgba32i    SINT   0x1fb  16   RGBA {32 32 32 32} {32 32 32 32} ivec4      rgba32i   
    rgba32u    UINT   0x1fb  16   RGBA {32 32 32 32} {32 32 32 32} uvec4      rgba32ui  
    a2bgr10    UNORM  0x1bb  4    ABGR {2  10 10 10} {2  10 10 10} vec4       rgb10_a2  
    a2bgr10u   UINT   0x1bb  4    ABGR {2  10 10 10} {2  10 10 10} uvec4      rgb10_a2ui
    bgra8      UNORM  0x1bb  4    BGRA {8  8  8  8 } {8  8  8  8 } vec4       rgba8     
    rgb8       UNORM  0x40   3    RGB  {8  8  8  0 } {8  8  8  0 } vec3                 
    rgb8i      SINT   0x40   3    RGB  {8  8  8  0 } {8  8  8  0 } ivec3                
    rgb8s      SNORM  0x40   3    RGB  {8  8  8  0 } {8  8  8  0 } vec3                 
    rgb8u      UINT   0x40   3    RGB  {8  8  8  0 } {8  8  8  0 } uvec3                
    rgb16      UNORM  0x40   6    RGB  {16 16 16 0 } {16 16 16 0 } vec3                 
    rgb16hf    FLOAT  0x40   6    RGB  {16 16 16 0 } {16 16 16 0 } vec3                 
    rgb16i     SINT   0x40   6    RGB  {16 16 16 0 } {16 16 16 0 } ivec3                
    rgb16s     SNORM  0x40   6    RGB  {16 16 16 0 } {16 16 16 0 } vec3                 
    rgb16u     UINT   0x40   6    RGB  {16 16 16 0 } {16 16 16 0 } uvec3                
    rgb32f     FLOAT  0x40   12   RGB  {32 32 32 0 } {32 32 32 0 } vec3                 
    rgb32i     SINT   0x40   12   RGB  {32 32 32 0 } {32 32 32 0 } ivec3                
    rgb32u     UINT   0x40   12   RGB  {32 32 32 0 } {32 32 32 0 } uvec3                
    a1rgb5     UNORM  0x0    2    ARGB {1  5  5  5 } {1  5  5  5 }                      
    a2rgb10    UNORM  0x0    4    ARGB {2  10 10 10} {2  10 10 10}                      
    a2rgb10i   SINT   0x0    4    ARGB {2  10 10 10} {2  10 10 10}                      
    a2rgb10s   SNORM  0x0    4    ARGB {2  10 10 10} {2  10 10 10}                      
    a2rgb10u   UINT   0x0    4    ARGB {2  10 10 10} {2  10 10 10}                      
    a2bgr10i   SINT   0x0    4    ABGR {2  10 10 10} {2  10 10 10}                      
    a2bgr10s   SNORM  0x0    4    ABGR {2  10 10 10} {2  10 10 10}                      
    rg4        UNORM  0x0    1    RG   {4  4  0  0 } {4  4  0  0 }                      
    rgba4      UNORM  0x0    2    RGBA {4  4  4  4 } {4  4  4  4 }                      
    bgra4      UNORM  0x0    2    BGRA {4  4  4  4 } {4  4  4  4 }                      
    rgb5a1     UNORM  0x0    2    RGBA {5  5  5  1 } {5  5  5  1 }                      
    rgb565     UNORM  0x0    2    RGB  {5  6  5  0 } {5  6  5  0 }                      
    bgr5a1     UNORM  0x0    2    BGRA {5  5  5  1 } {5  5  5  1 }                      
    bgr565     UNORM  0x0    2    BGR  {5  6  5  0 } {5  6  5  0 }                      
    bgr8       UNORM  0x0    3    BGR  {8  8  8  0 } {8  8  8  0 }                      
    bgr8i      SINT   0x0    3    BGR  {8  8  8  0 } {8  8  8  0 }                      
    bgr8u      UINT   0x0    3    BGR  {8  8  8  0 } {8  8  8  0 }                      
    bgra8i     SINT   0x0    4    BGRA {8  8  8  8 } {8  8  8  8 }                      
    bgra8u     UINT   0x0    4    BGRA {8  8  8  8 } {8  8  8  8 }                      
    abgr8      UNORM  0x0    4    ABGR {8  8  8  8 } {8  8  8  8 }                      
    abgr8i     SINT   0x0    4    ABGR {8  8  8  8 } {8  8  8  8 }                      
    abgr8s     SNORM  0x0    4    ABGR {8  8  8  8 } {8  8  8  8 }                      
    abgr8u     UINT   0x0    4    ABGR {8  8  8  8 } {8  8  8  8 }                      
    r64df      FLOAT  0x0    8    R    {64 0  0  0 } {64 0  0  0 }                      
    r64i       SINT   0x0    8    R    {64 0  0  0 } {64 0  0  0 }                      
    r64u       UINT   0x0    8    R    {64 0  0  0 } {64 0  0  0 }                      
    rg64df     FLOAT  0x0    16   RG   {64 64 0  0 } {64 64 0  0 }                      
    rg64i      SINT   0x0    16   RG   {64 64 0  0 } {64 64 0  0 }                      
    rg64u      UINT   0x0    16   RG   {64 64 0  0 } {64 64 0  0 }                      
    rgb64df    FLOAT  0x0    24   RGB  {64 64 64 0 } {64 64 64 0 }                      
    rgb64i     SINT   0x0    24   RGB  {64 64 64 0 } {64 64 64 0 }                      
    rgb64u     UINT   0x0    24   RGB  {64 64 64 0 } {64 64 64 0 }                      
    rgba64df   FLOAT  0x0    32   RGBA {64 64 64 64} {64 64 64 64}                      
    rgba64i    SINT   0x0    32   RGBA {64 64 64 64} {64 64 64 64}                      
    rgba64u    UINT   0x0    32   RGBA {64 64 64 64} {64 64 64 64}                      
Requested swap mode unsupported by this device, falling back to VK_PRESENT_MODE_FIFO_KHR
Failed picking any compatible texture format for a plane!
Failed uploading image plane!

Merge request reports