AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Make the environment section of the config mandatory

Open
#1,083 0 comments 0 reactions 0 assignees View on GitHub
Feature Request Needs Discussion
Dominant language
C++
Stars
2.1k
Forks
503
PR merge metrics
No merged PRs in 30d

Description

In PR #322 (and discussed in Issue #149), Malcolm Humphreys implemented a nice feature that adds an optional environment section at the top of a config file to declare the context variables used in the config. This serves several purposes:

1. It allows the config author to specify default values
2. It makes the config easier to understand since one may see at a glance which context vars are used
3. It makes it easy for OCIO to only load the necessary environment variables into the Context object
4. It allows additional validation options.

Point 3 has performance implications. In sophisticated studio setups, there may be 100 or more variables in the environment (with the vast majority not being used by the config). Nevertheless, if the environment section is not present, OCIO currently loads all of these into the Context object and this slows down the generation of the cacheIDs. The slowdown may be significant for timeline-based applications that need to update the context rapidly.

Given the many benefits, we propose making the environment section mandatory for OCIO v2.

When this was proposed at a recent OCIO v2 working group meeting, there were people both for and against the proposal, so I'm creating this issue to get feedback from a wider audience.

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.