AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

unit test numeric failures in test_metal and test_gpu

Open
#2,211 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
2.1k
Forks
503
PR merge metrics
No merged PRs in 30d

Description

macOS Sequoia 15.7.1 (i.e. fully up to patch level for Sequoia)

GL Vendor: Apple
GL Renderer: Apple M4 Max
GL Version: 2.1 Metal - 89.4
GLSL Version: 1.20

> [202/241] [Lut1DOp / lut1d_file2_disallow_tex1D_test ] - FAILED -
> Maximum error: 1 at pixel: 43691 on component 1 larger than epsilon.
> src = {1.000015259, 1.000026703, 1.000038147, 1.000049591}
> cpu = {0, 1, 0, 1.000049591}
> gpu = {0, 0, 0, 1.000049591}
> absolute tolerance=9.999999747e-05

If the tolerance is 0.0001, and the failure magnitude is 1.0, this feels like a rounding error in the LUT somewhere.

As an example of a more typical error, as it turns out there are two failures in `test_metal`, the other being this one:

> [ 56/241] [FixedFunction / style_aces2_rgb_to_jmh_fwd ] - FAILED -
> Maximum error: 0.000244140625 at pixel: 13 on component 2 larger than epsilon.
> src = {0.2668400109, 0.2460400015, 0.4093199968, 1}
> cpu = {53.46554947, 13.12156677, 285.6588745, 1}
> gpu = {53.4655571, 13.12158012, 285.6591187, 1}
> absolute tolerance=0.0001999999949

Over in `test_gpu`, there's this:

> [ 69/241] [FixedFunction / style_RGB_TO_HSV_inv_custom ] - FAILED -
> Maximum error: 7.629394531e-06 at pixel: 7 on component 1 larger than epsilon.
> src = {0.5, 2.5, 0.03999999911, 0}
> cpu = {-39.95812988, 39.9981308, 39.9981308, 0}
> gpu = {-39.95812988, 39.99812317, 39.99812317, 0}
> absolute tolerance=9.999999975e-07

As I am trying to get `ctest` to run without failure to satisfy the MacPorts CI system, I'd appreciate insight on the first one here, and would ask if there's a workaround (perhaps a way to relax the tolerances for just one test?) on the second and third ones.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.