Adsk Contrib - Fix various Actions problems#2324
Conversation
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
|
There is this warning in the readthedocs page about using the ubuntu-lts-latest tag. I think it's fine but still wanted to mention.
|
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
The aswf/ci-ocio container images intentionally omit OpenColorIO since the whole point of the image is to build it from source. But the container's prebuilt OpenImageIO is dynamically linked against a specific OpenColorIO release that isn't present, causing link failures for ociolutimage/ocioconvert/ociodisplay whenever OCIO_USE_OIIO_FOR_APPS=ON. Fetch that matching release from the ASWF Conan remote and stage it on the linker path before configuring, so apps link against both the from-source build (used directly) and the container's expected release (used transitively via OpenImageIO). Signed-off-by: Doug Walker <doug.walker@autodesk.com>
This reverts commit fa79c58. Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Previously, requesting OCIO_USE_OIIO_FOR_APPS=ON while OpenImageIO could not be found silently fell back to OpenEXR (or skipped building ociolutimage/ocioconvert/ociodisplay entirely), with only a WARNING. This let CI silently stop exercising the OIIO code path in those apps without failing, masking the fact that OIIO wasn't actually being tested. Turn this into a hard configure-time error instead, so a missing OpenImageIO is caught immediately when it was explicitly requested. Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
|
Here's the description for the AMD processor bug from the "Revision Guide for AMD Family 19h Models 10h-1Fh Processors" 1485 If Symmetric Multi Threading Is Enabled and Single Thread Indirect Branch Prediction Is Disabled the Processor May Fetch Incorrect Instruction BytesDescriptionUnder a highly specific and detailed set of internal timing conditions, if SMT (Symmetric Multi Threading) Potential Effect on SystemUnpredictable system behavior Suggested WorkaroundSystem software may contain the workaround for this erratum. Fix PlannedNo fix planned |
This PR attempts to get our Actions back into the green. Numerous changes were required.
@num3ric, please review the DirectX fix, thank you!
Removed the pin of the Linux VFX CY2023 CI to the 2023.2 container. All Linux runs use the new containers that JF released on June 29th, based on Conan 2.
The new Linux containers broke numerous builds and exposed various long-standing undetected bugs in the CI. Apparently although we have numerous CI jobs that set use-oiio: 'ON', apparently none of these actually did that. On Linux, this was because OpenImageIO, although present, was not found and the build silently fell back to the OpenEXR path. With the new containers, OIIO is found but the link fails for the OIIO apps since it requires a dynamic OCIO library with a different version and namespace to the one being compiled. This is due to an intentional decision in the containers to delete that version of OCIO that was used to compile OIIO to avoid the possibility of it causing other problems. I'm not sure that is necessary, but claude was able to work around it by downloading that library from the public/anonymous ASWF Conan remote. (A new aswf-ocio-version variable is added when use-oiio is on to support this.) It only downloads the older OCIO if use-oiio is on, so at least with the other builds there is no risk of having two OCIO libraries on the system. This new install step is in share/ci/scripts/linux/dnf/install_aswf_opencolorio.sh.
Unfortunately, this occasionally fails with:
On Mac, the install_oiio.sh was never being run, so the build ignored use-oiio and just used OpenEXR. I removed the ability to choose an OIIO version from that installer since brew doesn't support that for OIIO other than building from source, which we don't have time for in the CI. I modified ci_workflow.yml so that it now does the brew install, if use-oiio is on. I added a timer and verified that this only takes about 30 extra seconds.
On Windows, there is no install_oiio.sh script at all and the runners don't have it, so I turned use-oiio off for all builds and added a comment. In the future, someone could investigate installing OIIO via vcpkg, though that may be more trouble than it's worth based on experience with the .bat scripts we already provide that often break related to vcpkg issues.
I modified share/cmake/modules/FindExtPackages.cmake so that if OCIO_USE_OIIO_FOR_APPS is ON but OIIO is not found, it fails immediately with an error message rather than falling back to OpenEXR. Going forward, this should prevent us from thinking we're testing OIIO when we're actually not.
The dependencies_latest.yml workflow is crashing sporadically in OpOptimizers_test.cpp:invlut_pair_identities in the CPU tests that use AVX512. I've discovered that the windows-2025-vs2026 image only occasionally runs on a CPU that supports AVX512, so these tests don't often run. I have not determined yet if it crashes every time it runs on one of the AVX512 machines. I added a test to tests/cpu/ops/lut3d/Lut3DOpCPU_tests.cpp because claude suspects that there is problem with the remainder path in LUT3D tetrahedral interpolation. The test should provide more data than the simple illegal instruction crash we're currently getting. Tagging @markreidvfx for visibility.
The new test disproved the out-of-bounds memory theory and points to a known issue with certain AMD processors, including the one used in the runner. From claude:
Given that the illegal instruction crash has been happening on multiple runs that I've done, I decided to turn off AVX512 support for the EPYC 9V45 chip. This applies even outside the context of CI. My reasoning is that I'd rather give up AVX512 performance rather than crash applications. One issue is that other chips have this problem too but apparently there is not a simple way of flagging just those chips. We should keep our ears open for reports of crashes on AMD chips and may need to widen the ones we flag. As claude wrote above, it's a shame we need to do this since STIBP may be properly enabled in many cases. But again, the priority needs to be on avoiding crashes.