-
Notifications
You must be signed in to change notification settings - Fork 443
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support iOS Simulator and tvOS Simulator, plus further tvOS integration #935
Conversation
…ibraries. Create fat builds of external libraries if both iOS and simulator versions have been created from separate manual Xcode builds. Add Scripts/create_fat_libs.sh. Remove Scripts/package_ext_libs_ios.sh and Scripts/package_ext_libs_macos.sh.
fetchDependencies supports options for specifying which platform options to build for. Fix SPIRV-Tools builds to avoid code stripping warnings.
Create fat builds of static, dynamic & framework libraries if both iOS and simulator versions have been created from separate manual Xcode builds. Refactor scripts for creating fat libraries to reuse across projects. Add MVK_BUILT_PROD_DIR to replace use of BUILT_PRODUCTS_DIR in most scripts to allow flexibility across per-platform compilation.
Log ext lib build steps to provide user feedback. Add package_ext_libs_finish.sh script to separate packaging libraries from building them, to avoid build database conflicts. Travis only build macOS ext libs.
Use platform macros to conditionally build outstanding tvOS code. Log validation error message when tvOS code doesn't support expected functionality.
Add MVK_IOS_SIMULATOR and MVK_TVOS_SIMULATOR macros. MVKPixelFormats add disableMTLPixelFormatCapabilities(). MVKPixelFormats add disableAllMTLPixelFormatCapabilities().
Fix crash during creation of fat dSYMs. Travis only build macOS version of everything.
Perused the diff and it's looking really great. I appreciate you including tvOS in this effort, and all the documentation updates! I will give this a try tomorrow with my app. |
Happy to do so! tvOS is an valuable addition to MoltenVK. Thanks for taking the initiative to drive that forward and make it happen! |
@cdavis5e This is a mostly structural, rather than behavioural update, but since it affects a lot of files, I thought I'd give you a chance to review before I pull it in. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few minor things.
Minor doc fixes from PR review.
@cdavis5e Thanks for the review and feedback. Should be good to go now. Please accept changes and I'll pull it in. |
BTW, I tested this earlier with my app and it worked great on both iOS and tvOS simulators! |
This PR represents initial Simulator support.
The iOS and tvOS Simulators provide a subset of Metal functionality available on the native platforms. This results in a reduced set of Vulkan functionality, relative to that available on the actual iOS and tvOS platforms.
Making up these differences will require a combination of ongoing MoltenVK development on the simulator platforms, and app development (in apps that intend to use the simulator) to work around any outstanding differences.
For example, known issues include: