diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1079d396d95..60c09bc5b61 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,19 +28,18 @@ jobs: # and then use `include` to define their settings. name: [ - linux-gcc9, - linux-debug-gcc9, linux-gcc11, + linux-debug-gcc11, windows, ] include: - - name: linux-gcc9 + - name: linux-gcc11 os: ubuntu-20.04 buildType: RELEASE publish: true - containerImage: ghcr.io/gafferhq/build/build:2.1.2 + containerImage: ghcr.io/gafferhq/build/build:3.0.0 # GitHub container builds run as root. This causes failures for tests that # assert that filesystem permissions are respected, because root doesn't # respect permissions. So we run the final test suite as a dedicated @@ -49,11 +48,11 @@ jobs: sconsCacheMegabytes: 400 jobs: 4 - - name: linux-debug-gcc9 + - name: linux-debug-gcc11 os: ubuntu-20.04 buildType: DEBUG publish: false - containerImage: ghcr.io/gafferhq/build/build:2.1.2 + containerImage: ghcr.io/gafferhq/build/build:3.0.0 testRunner: su testUser -c testArguments: -excludedCategories performance # Debug builds are ludicrously big, so we must use a larger cache @@ -61,19 +60,6 @@ jobs: sconsCacheMegabytes: 2500 jobs: 4 - - name: linux-gcc11 - os: ubuntu-20.04 - buildType: RELEASE - publish: true - containerImage: ghcr.io/gafferhq/build/build:3.0.0 - # GitHub container builds run as root. This causes failures for tests that - # assert that filesystem permissions are respected, because root doesn't - # respect permissions. So we run the final test suite as a dedicated - # test user rather than as root. - testRunner: su testUser -c - sconsCacheMegabytes: 400 - jobs: 4 - - name: windows os: windows-2019 buildType: RELEASE @@ -83,6 +69,7 @@ jobs: testArguments: -excludedCategories performance GafferTest GafferVDBTest GafferUSDTest GafferSceneTest GafferDispatchTest GafferOSLTest GafferImageTest GafferUITest GafferImageUITest GafferSceneUITest GafferDispatchUITest GafferOSLUITest GafferUSDUITest GafferVDBUITest GafferDelightUITest GafferTractorTest GafferTractorUITest sconsCacheMegabytes: 800 jobs: 4 + dependenciesURL: https://github.com/ImageEngine/cortex/releases/download/10.5.9.1/cortex-10.5.9.1-windows.zip runs-on: ${{ matrix.os }} @@ -93,16 +80,12 @@ jobs: ARNOLD_FORCE_ABORT_ON_LICENSE_FAIL: 0 # And don't abort because the license isn't found GAFFER_BUILD_DIR: "./build" GAFFER_CACHE_DIR: "./sconsCache" - # GitHub have moved to running actions on Node20, which prevents them from - # running on CentOS 7. The below allows actions to continue running on Node16 - # until October. - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: ilammy/msvc-dev-cmd@v1.12.1 + - uses: ilammy/msvc-dev-cmd@v1.13.0 with: sdk: 10.0.17763.0 @@ -172,7 +155,7 @@ jobs: if: runner.os == 'Windows' - name: Cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ env.GAFFER_CACHE_DIR }} key: ${{ runner.os }}-${{ matrix.containerImage }}-${{env.GAFFER_DEPENDENCIES_HASH}}-${{ matrix.buildType }}-${{ github.sha }} @@ -259,10 +242,13 @@ jobs: echo "::remove-matcher owner=validateRelease::" if: matrix.publish - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: ${{ env.GAFFER_BUILD_NAME }} path: ${{ env.GAFFER_BUILD_NAME }}.${{ env.PACKAGE_EXTENSION }} + # Using compression-level 0 avoids compressing our already compressed + # package and results in a significantly faster upload. + compression-level: 0 if: matrix.publish - name: Publish Release diff --git a/.github/workflows/main/installDependencies.py b/.github/workflows/main/installDependencies.py index 81676e8dbb0..0864669e97e 100755 --- a/.github/workflows/main/installDependencies.py +++ b/.github/workflows/main/installDependencies.py @@ -49,7 +49,7 @@ # Determine default archive URL. -defaultURL = "https://github.com/ImageEngine/cortex/releases/download/10.5.9.1/cortex-10.5.9.1-{platform}{buildEnvironment}.{extension}" +defaultURL = "https://github.com/GafferHQ/dependencies/releases/download/9.0.0a1/gafferDependencies-9.0.0a1-{platform}{buildEnvironment}.{extension}" # Parse command line arguments. @@ -64,8 +64,8 @@ parser.add_argument( "--buildEnvironment", help = "The build environment of the dependencies archive to download.", - choices = [ "gcc9", "gcc11" ], - default = os.environ.get( "GAFFER_BUILD_ENVIRONMENT", "gcc9" if sys.platform == "linux" else "" ), + choices = [ "gcc11" ], + default = os.environ.get( "GAFFER_BUILD_ENVIRONMENT", "gcc11" if sys.platform == "linux" else "" ), ) parser.add_argument( diff --git a/Changes.md b/Changes.md index ad3a0fdf9d2..268c863f305 100644 --- a/Changes.md +++ b/Changes.md @@ -80,6 +80,23 @@ Breaking Changes - Renamed `element` constructor argument to `elementPrototype`. - Deprecated the passing of `element = nullptr` to the constructor. +Build +----- + +- Cycles : + - Updated to version 4.2.0. + - Disabled CUDA binary generation for Kepler and Maxwell architecture GPUs. +- Embree : Updated to version 4.3.2. +- Imath : Updated to version 3.1.11. +- LibJPEG-Turbo : Updated to version 3.0.3. +- MaterialX : Updated to version 1.38.10. +- OpenImageIO : Updated to version 2.5.10.1. +- OpenPGL : Updated to version 0.6.0. +- PySide : Updated to version 5.15.14. +- Qt : Updated to version 5.15.14. +- USD : Updated to version 24.08. +- Zstandard : Added version 1.5.0. + 1.4.x.x (relative to 1.4.11.0) ======= diff --git a/SConstruct b/SConstruct index e3913fd8037..39ea0d77c2e 100644 --- a/SConstruct +++ b/SConstruct @@ -1452,7 +1452,7 @@ if env["PLATFORM"] == "win32" : else : - libraries["GafferCycles"]["envAppends"]["LIBS"].extend( [ "dl" ] ) + libraries["GafferCycles"]["envAppends"]["LIBS"].extend( [ "dl", "zstd" ] ) # Optionally add vTune requirements diff --git a/startup/GafferCyclesUI/metadata.py b/startup/GafferCyclesUI/metadata.py index 2cd07101959..bbfcbd8f927 100644 --- a/startup/GafferCyclesUI/metadata.py +++ b/startup/GafferCyclesUI/metadata.py @@ -178,6 +178,16 @@ "label" : "Strength", "layout:index" : 29, }, + "thin_film_thickness" : { + "layout:section" : "Thin Film", + "label" : "Thickness", + "layout:index" : 30, + }, + "thin_film_ior" : { + "layout:section" : "Thin Film", + "label" : "IOR", + "layout:index" : 31, + }, }, "principled_hair_bsdf" : { "model" : { @@ -800,12 +810,16 @@ "label" : "IOR", "layout:index" : 5, }, + "subsurface_roughness" : { + "label" : "Roughness", + "layout:index" : 6, + }, "subsurface_anisotropy" : { "label" : "Anisotropy", - "layout:index" : 6, + "layout:index" : 7, }, "normal" : { - "layout:index" : 7, + "layout:index" : 8, }, }, "math" : { @@ -945,7 +959,7 @@ def metadata( plug, name ) : parameterDict = shaderDict.get( plug.getName() ) if parameterDict is None : return None - + value = parameterDict.get( name ) if callable( value ) : return value( plug ) @@ -961,9 +975,9 @@ def metadata( plug, name ) : ### tex_mapping section, indexes and labels ### -mapping = [ "parameters.tex_mapping__translation", "parameters.tex_mapping__rotation", "parameters.tex_mapping__scale", "parameters.tex_mapping__use_minmax", - "parameters.tex_mapping__min", "parameters.tex_mapping__max", "parameters.tex_mapping__x_mapping", "parameters.tex_mapping__y_mapping", - "parameters.tex_mapping__z_mapping", "parameters.tex_mapping__type", "parameters.tex_mapping__projection" +mapping = [ "parameters.tex_mapping__translation", "parameters.tex_mapping__rotation", "parameters.tex_mapping__scale", "parameters.tex_mapping__use_minmax", + "parameters.tex_mapping__min", "parameters.tex_mapping__max", "parameters.tex_mapping__x_mapping", "parameters.tex_mapping__y_mapping", + "parameters.tex_mapping__z_mapping", "parameters.tex_mapping__type", "parameters.tex_mapping__projection" ] mapping_labels = [ "Translation", "Rotation", "Scale", "Use Min Max", "Min", "Max", "X Mapping", "Y Mapping", "Z Mapping", "Type", "Projection" ] mapping_index = 89