Skip to content
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

BUG: M1 builds failing on M3 and with Imath 3.19? #1750

Open
ggarra13 opened this issue May 18, 2024 · 1 comment
Open

BUG: M1 builds failing on M3 and with Imath 3.19? #1750

ggarra13 opened this issue May 18, 2024 · 1 comment

Comments

@ggarra13
Copy link
Contributor

ggarra13 commented May 18, 2024

Required:


[x ] I believe this isn't a duplicate topic
[ x] This report is not related to an adapter

Select One:

[ ] Build problem
[x ] Incorrect Functionality or bug
[ ] New feature or functionality

Description

I don't own any Apple Silicon machines. I build my program on GitHub Actions which builds with:

Building with Apple clang version 15.0.0 (clang-1500.0.40.1), 3 cores
Building on MacOS Brand Apple M1 (Virtual)

The code:

        const otio::Timeline* createTimelineFromString(const std::string& s)
        {
            auto timeline = dynamic_cast<otio::Timeline*>(
                otio::Timeline::from_json_string(s));
            if (!timeline)
            {
                LOG_ERROR("Could not crete timeline object from this "
                          ".json string:");
                LOG_ERROR(s);
                return nullptr;
            }
            return timeline;
        }

Returns a nullptr when passed a valid json string (which was retrieved from another otio::Timeline->to_json_string()).
It seems it is a compiler issue (or a very subtle bug on OTIO).
The code works perfectly on macOS Intel, macOS M3 with Intel build under Rosseta2, Windows and Linux.

Optional


Environment

Operating System: macOS Sonoma - M3 chip (Built on GitHub Actions M1 build).
OTIO version: v0.16.0
Imath version: v3.19
Python version if appropriate: N/A

Reproduction Steps

Binary reproduction (for the lazy one):

  1. For a quick check on M1 binaries (run it on an M3 box), you can check:
    https://sourceforge.net/projects/mrv2/files/beta/mrv2-beta-Darwin-arm64.dmg/download
  2. Load a Movie File (Open->Movie or Sequence)
  3. Open the Panel->Files Panel (F4 key).
  4. Open the Panel->Playlist (Ctrl + P)
  5. Drag the clip from the Files Panel to the Playlist. You should get an error when the timeline function fails and the .otio string that it failed with in the Logs (Panel->Logs).

Source code reproduction (cannot verify):

I've created a small stand-alone test which I am unable to test as I don't own an M1/M3 combo. You should try to compile it on an M1 box and run it on an M3 one to see if it fails.
If it fails, but it should allow you to hopefully reproduce the issue (and fix the OTIO issue or report the clang bug to Apple):

m1_to_m3_otio_bug.zip

Log output if appropriate

See the output of my program when the user tried to run it on an M3 machine:
ggarra13/mrv2#238

@ggarra13
Copy link
Contributor Author

Improved source test, printing out the OTIO failure.

m1_to_m3_otio_bug.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant