[Regression] Linking errors with the new Molten VK 0.19.0


This topic contains 1 reply, has 2 voices, and was last updated by  Bill Hollings 1 month, 4 weeks ago.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #1347

    GolDDranks
    Participant

    Hi, the Molten 0.18.2 builds and links fine with my Rust build (Using the Vulkano library). I simply have dropped the MoltenVK.framework in /Library/Frameworks, and it works beautifully. However, when I replace the 0.18.2 Framework with 0.19.0, the build breaks. Switching back to 0.18.2 fixes it again. Here’s the error:

    Undefined symbols for architecture x86_64:
    “_kIOSurfaceWidth”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_kIOSurfaceHeight”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_kIOSurfaceElementWidth”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_kIOSurfaceElementHeight”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_kIOSurfaceIsGlobal”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_kIOSurfaceBytesPerElement”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_IOSurfaceGetBytesPerElement”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_IOSurfaceGetElementWidth”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_IOSurfaceGetHeight”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_IOSurfaceCreate”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_IOSurfaceGetWidth”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    “_IOSurfaceGetElementHeight”, referenced from:
    MVKImage::useIOSurface(__IOSurface*) in MoltenVK(MoltenVK-x86_64-master.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    So there seems to be something in the new version that breaks the linking.

    Judging from the error message and the changelog, “Add support for VkImage underlaid by IOSurface.” looks highly suspect. Using MacBook Pro (Retina, 15-inch, Late 2013) with Intel Iris Pro. The OS is macOS 10.13.1 High Sierra.

    #1348

    Bill Hollings
    Keymaster

    @golddranks

    With v0.19.0, MoltenVK supports using IOSurfaces for VkImages…and requires access to the IOSurface framework during compilation.

    You need to link the IOSurface framework into your app. See the Installing MoltenVK in Your Vulkan Application section in the README_MoltenVK_UserGuide.md document in your Molten distribution package for more info. You will need to build using Xcode 9.0 to include this framework for iOS.

    You do not need to have this framework available in order to run your application…but you do need it to build your application.

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.