You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Inconsistent run-time library usage for locale handling breaks GPU code generation on some systems. #2351
Several GPU code paths format float constants with std::to_string(), which follows the C runtime locale (LC_NUMERIC). All other float formatting in OCIO follows the C++ global locale, for example via std::ostringstream. These are independent settings, so on comma-decimal systems (e.g. fr_FR, sv_SE) the two mechanisms can produce different decimal separators in the same shader. The affected call sites emit literals such as 100 000000 instead of 100.0, while neighboring constants from getFloatString() remain correct. The resulting GLSL/HLSL fails to compile or produces incorrect output.
This is most visible with ACES 2.x fixed-function GPU paths (gamut compress / tone scale), but the same pattern exists in grading-tone GPU code.
changed the title [-]Inconsistent run-time usage for locale handling breaks GPU code generation on some systems.[/-][+]Inconsistent run-time library usage for locale handling breaks GPU code generation on some systems.[/+]on Sep 24, 2026
Sounds like something we want to fix in OCIO 2.6, is there a way to update the CI so that at least one job force a locale triggering these issues (as it's not the first time we run into this)? I assume the GPU CI could be 2 jobs with / without the locale change if that is the only place where we test the GPU path.
Activity
[-]Inconsistent run-time usage for locale handling breaks GPU code generation on some systems.[/-][+]Inconsistent run-time library usage for locale handling breaks GPU code generation on some systems.[/+]remia commentedon Sep 28, 2026
Sounds like something we want to fix in OCIO 2.6, is there a way to update the CI so that at least one job force a locale triggering these issues (as it's not the first time we run into this)? I assume the GPU CI could be 2 jobs with / without the locale change if that is the only place where we test the GPU path.
doug-walker commentedon Sep 28, 2026
@remia , I think it will be too tight to fix this for 2.6.0, but we will commit to fixing it for 2.6.1.