Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A better way to compute the number of render threads? #554

Closed
devernay opened this issue Nov 28, 2020 · 10 comments · Fixed by #651
Closed

A better way to compute the number of render threads? #554

devernay opened this issue Nov 28, 2020 · 10 comments · Fixed by #651

Comments

@devernay
Copy link
Member

By default, Natron uses as as many threads for rendering as there are available cores.

The problem is that Natron is also memory-intensive, so we should probably have an automatic setting that also depends on the available memory.

We get many bug reports of Natron running slow, and lowering the number of threads is often part of the solution.

We should probably have a formula like min(num_cores, memory/3.5GB), so that would be 4 threads max for a 16GB machine.

Any thoughts? Other ideas to compute the number of threads?

@Songtech-0912
Copy link
Contributor

Songtech-0912 commented Jun 14, 2021

@devernay I did some experimentation into the ideal numbers of threads to use, based on Natron running the spaceship test scene. Since our goal is maximum performance, the ideal number of threads would be the number that is the middle-ground between system resource usage (which includes both memory and CPU usage) and render speed.

In the course of the experiment, I made sure to use the GUI version of Natron to render, rather than NatronRender, as most users reporting slow rendering are using the GUI version of Natron. Additionally, I made sure to have quite a few applications on during the rendering process, including two resource-intensive web browsers, because most people aren't going to be running Natron exclusively on their operating system. Last, I only rendered 48 frames from each project, because otherwise it would've taken forever to do.

Experimental values were derived from the following:

  • Number of threads is the number of thread set in the Natron settings. As my machine only has 8 threads that number will vary from 1 to 8. This is the independent variable.
  • User performance is measured from a scale of 1 to 10, with 10 being lightning-fast and 1 being completely unresponsive. This does not constitute an accurate representation of actual performance, but rather a reflection of how users may perceive faster/slower rendering (e.g. if Natron freezes midway but still renders quickly).
  • Memory usage is the output of the command pid=$(pidof Natron) && top -b -n 5 -d 2 -p $pid | tail -1 | awk '{printf "%.0f%\n", $10}' (this basically gets the process ID of Natron, feeds it into top, which does the rest)
  • CPU usage is the output of the command pid=$(pidof Natron) && top -b -n 5 -d 2 -p $pid | tail -1 | awk '{printf "%.0f%\n", $9}', which checks CPU usage every 2 seconds, and measures the average over 5 times (10 seconds)
  • Render time is measured using, well, a stopwatch, for lack of any better method. For greatest consistency, all renders were directed to ~/Renders/render_# where #=[i for i in range(0, 8)]
  • The performance score is defined as the geometric mean of user performance, the inverse reciprocal of memory usage, and the inverse reciprocal of CPU usage - that is, the cube root of the product of the three values. Higher performance scores are better.
  • The speed score is defined as an index between 0 and 1 using the equation . Higher values are better as well.

Here is the raw data of the experiment (favored values in bold):

Number of threads User performance (/10) Memory usage (%, average amount) CPU usage (%)** Render time (s) Performance Score Speed score
1 5 15% (2.4 GB) 74% 100 9.61 0.07
2 6 16-17% (2.64 GB) 84% 101 11.0 0.00
3 6 16% (2.56 GB) 64% 95 9.94 0.43
4 4 16% (2.56 GB) 83% 94 9.47 0.50
5 5 14-16% (2.4 GB) 74% 101 9.61 0.00
6 4 14% (2.24 GB) 88% 92 9.23 0.64
7 6 9-10% (1.52 GB) 93% 99 9.46 0.14
8 8 9-12% (1.68 GB) > 100%* 87 11.0 1.00

*: CPU usage exceeded amount measurable by top

**: It was almost always the case that CPU would start at 40% or so, jump to 90% during the middle of the render, and then only to fall back again, so these numbers are rough averages between the minimum and maximum

Each setting of number of threads are either more fast (in terms of render time) or more performant (in terms of using less system resources). We want to find each score's relative average between performance and speed, and to do so I took the mean of the performance score and the speed score. I call this the usability index (higher values are better). Additionally, I also took the mean of the absolute difference of the usability index to the performance score and to the speed score, which I call the skew index (lower values are better). Below are the results:

Number of threads Usability index Skew index
1 4.84 4.77
2 5.50 5.50
3 5.185 4.76
4 4.99 4.49
5 4.81 4.81
6 4.94 4.30
7 4.81 4.66
8 5.50 5.50

If we finally find the dividend (by subtracting the skew index from 50% of the usability index), we arrive at a final experience score, which measures the value that offers the best of performance and system resources while not sacrificing either too heavily. Here are the experience scores for all thread numbers:

image

Number of threads Experience score
1 2.46
2 2.75
3 2.80
4 2.75
5 2.40
6 2.79
7 2.48
8 2.75

Based on these results, the ideal number of threads to use on my computer, at least, would be 6 threads. Your equation would give a result of just 4 threads, so perhaps a better equation would be min(num_cores, memory/2.5)

So, based on this research, I have 3 suggestions:

  • Run some sort of benchmark right after Natron runs for the first time after installation, which automatically finds the ideal number of threads based on the experimental process I did
  • Use the other equation I proposed
  • Run mass benchmarks via a community effort, then use that to find a default based on community benchmark data

I would like to know your thoughts on this.

@devernay
Copy link
Member Author

Nice!
did you activate "turbo" mode from the Gui to do your renders?
image

Does your CPU have 4 cores / 8 threads?
It seems like using 4 threads gives slightly slower render time (94s vs 92s), so it seems like there is a sweet spot there too, what do you think?

@Songtech-0912
Copy link
Contributor

Did you activate "turbo" mode from the Gui to do your renders?

Nope, in fact I've mostly ignored the button's existence until you've brought that up! There will definitely be a difference that way.

Does your CPU have 4 cores / 8 threads?

My CPU has 8 cores, so max of 8 threads.

It seems like using 4 threads gives slightly slower render time (94s vs 92s), so it seems like there is a sweet spot there too, what do you think?

I agree, at least based on raw stats. There does need some more testing, because the rendering behavior is somewhat erratic, and render times were unfortunately counted by the age-old method of using a stopwatch...needless to say the reliability of these results were doubtful. If you know of a way to accurately benchmark render times in Natron, it would be great.

devernay added a commit that referenced this issue Jul 7, 2021
…651)

* Settings: use a reasonable thread count value for multi-core systems

Closes #554

* Update CHANGELOG.md
@rodlie
Copy link
Contributor

rodlie commented Jul 8, 2021

4 threads max for a 16GB machine

I run 8 threads on 16GB and have no problems. I also have a 12 thread computer with 16GB, not seen any issues there either.

@Songtech-0912
Copy link
Contributor

4 threads max for a 16GB machine

I run 8 threads on 16GB and have no problems. I also have a 12 thread computer with 16GB, not seen any issues there either.

@rodlie That may very well be true and it's great that it works for you. However, I can very much guarantee that isn't true for me. Users will always have the ability to tweak it up, but our job is to set sensible defaults, ones that make it hard (if not impossible) for users to run into issues without intentionally tampering with the settings.

@devernay
Copy link
Member Author

devernay commented Jul 9, 2021

@rodlie it really depends on the graph complexity. Try something like Baymax or Spaceship in 4K (that's the standard now), and I'm pretty sure it won't hold 12 threads or even 8 on a 16Gb machine. Each thread will need memory for all inputs and output of the effect.

@rodlie
Copy link
Contributor

rodlie commented Jul 9, 2021

  • Spaceship maxed out at 15GB, no issues (also tested 4k)
  • Baymax maxed out at 14,5GB, no issues (also tested 4k)

i7-4770k (4c/8t), 16GB RAM on macOS 10.13. This is on Natron 2.4, no settings changed.

@devernay
Copy link
Member Author

What we want is a default setting that gives smooth performance and safety of execution. We should avoid using the disk cache as much as possible.
If you use many threads, it will result in disk caching, and when you say "maxed out at 15GB" it most certainly means it uses disk caching, thus less CPU, thus you think you can add more threads, but what you really get in the end is lower performance.
Users still have the ability to play with the maxThreads setting, but users should understand that if you want to get more performance, adding threads don't work unless you also add RAM.

@rodlie
Copy link
Contributor

rodlie commented Jul 12, 2021

it most certainly means it uses disk caching

Just tested at work, and no. No disk cache is used.

I'm not fighting against this change, just want to document what works or not, and for me in general no issues (else I would have done something or said something a long time ago).

@devernay
Copy link
Member Author

devernay commented Jul 13, 2021

OK, I noticed that with the conservative approach implemented here, CPU ramps up more slowly than when using all logical cores, because of dependencies in the node graph. So I'm OK to raise it a bit, but I still think that there is a minimum RAM we should allocate to each thread, especially on high-end workstation, which may have 128 logical cores per CPU:

  • A 4K frame takes 64MB
  • There are around 30 nodes in a typical graph (more when using pyplugs), that makes 2GB to store all the intermediate frames.
    We could change the formula to use 2GB instead of 3.5GB, would that seem right?

devernay added a commit that referenced this issue Oct 24, 2021
commit 30f2da6
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Oct 24 12:17:47 2021 -0700

    AboutWindow: better macOS version info

commit 2a8e5aa
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Sun Oct 24 21:09:41 2021 +0200

    tools/MINGW-packages: update

    fix hooks in glib2 and add two patches for qt4

commit e5f051e
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Oct 24 11:34:52 2021 -0700

    update pri files

commit 9a4aef4
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Oct 24 10:49:13 2021 -0700

    Update SequenceParsing

commit ad9d563
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Oct 24 10:30:06 2021 -0700

    MacPorts update

commit bdc8cca
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Oct 23 14:28:33 2021 -0700

    linux sdk fixes

commit 38d3e8b
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Oct 23 12:31:48 2021 -0700

    docker: compress (rather than delete) the build logs

commit 2511470
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Oct 23 12:20:56 2021 -0700

    fix whitespace

commit d46c86c
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Oct 23 12:11:41 2021 -0700

    Linux SDK: add full Python 3 support

commit 9819ec5
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Oct 22 15:22:17 2021 -0700

    Update openimageio.sh

    potential fix for #685

commit 9213a20
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Oct 22 12:55:37 2021 -0700

    Linux SDK: update qtwebkit + bison

    found a patch in Fedora to compile qtwebkit with bison 3.7

commit c59d12e
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Oct 22 10:17:20 2021 -0700

    Linux SDK: update Qt4 from latest Fedora patches

    Qt 4.8.7 is still being maintained by Fedora

commit caa6c74
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Wed Oct 20 22:01:30 2021 +0200

    tools/jenkins: fix genDllVersions.sh

    libaom is now shared.

commit f04d76e
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Oct 20 12:49:35 2021 -0700

    Update build-Linux-sdk.sh

commit 637fa02
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Oct 20 12:44:06 2021 -0700

    linux sdk: update python

commit 027b255
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Mon Oct 18 09:41:36 2021 -0700

    Update CHANGELOG.md

commit 77b61c3
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Oct 17 16:50:05 2021 -0700

    update macOS configs

commit b379f0e
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Oct 16 11:58:34 2021 -0700

    linux sdk update

commit a7b12cf
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Oct 16 11:51:55 2021 -0700

    Update NodeGraph10.cpp

commit 9f7d420
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Oct 16 11:51:09 2021 -0700

    qmake: remove spurious includes

commit 10cbaa6
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Sun Oct 17 00:56:29 2021 +0200

    tools/MINGW-packages: update

commit f144b2a
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Sat Oct 16 20:46:16 2021 +0200

    tools/MINGW-packages: rebuild librsvg

    fixes GNUVolador failed unit test

commit 615ea88
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Oct 15 17:23:44 2021 -0700

    MacPorts update

commit 5e51622
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Fri Oct 15 23:25:39 2021 +0200

    tools/MINGW-packages: update harfbuzz/pango

    also rebuild all packages that depends on freetype, since some might use
    static libs.

commit 60676e5
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Tue Oct 12 23:31:19 2021 +0200

    tools/MINGW-packages: update glib

    update glib and rebuild, might need some more updates.

commit b68ed08
Author: Ole-André <ole.andre.rodlie@gmail.com>
Date:   Mon Oct 11 22:50:39 2021 +0200

    Engine/Project: reset auto save timestamp on knob changes (#679)

    Reset the auto save timestamp on project knob changes. This marks the project as modified and will prompt users to save when closing the project.

commit ba2e346
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Sun Oct 10 02:06:27 2021 +0200

    tools/MINGW-packages: update openexr/openimageio

commit 8e75fd9
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Sat Oct 9 20:39:25 2021 +0200

    tools/MINGW-packages: openssl fix for DST Root CA X3 Expiry

    This works for anything that links against mingw64-openssl (Natron), but not for
    msys2-openssl, so we need to add a workaround in .curlrc for pacman to
    work.

commit 55d1b10
Author: Ole-André <ole.andre.rodlie@gmail.com>
Date:   Fri Oct 8 19:19:49 2021 +0200

    Gui/Resources/Images: groupbox/treeview black => gray (#678)

commit 49bb561
Author: Alexandre Bon <61953166+bonalex01dev@users.noreply.github.com>
Date:   Fri Oct 8 02:18:11 2021 +0200

    Cleanup links, Nuke Transition guide (early) , Install community scri… (#669)

    * Cleanup links, Nuke Transition guide (early) , Install community scripts and plugins recomend , bugs and workaround updated

    Co-authored-by: Frédéric Devernay <devernay@users.noreply.github.com>

commit 7551cc3
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Oct 7 15:32:47 2021 -0700

    update plugin docs

commit a1cbb64
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Oct 5 17:27:43 2021 -0700

    GuiApp: doc

commit cdbeae1
Author: Alexandre Bon <61953166+bonalex01dev@users.noreply.github.com>
Date:   Wed Oct 6 02:18:05 2021 +0200

    create guiApp.pasteNodes(optional group) python function (#674)

    * create GuiApp.pasteNodes() python function

    This function paste the nodes in the clipboard.
    It will be used to reconnect the pasted nodes to the previously selected node as Nuke does. (good time saver)

    Known limitation: the nodes are pasted in a very random place probably related to cursor position.

    Improvements to be done: ability to paste inside a group

commit d31abad
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Oct 5 17:10:11 2021 -0700

    Update PyGuiApp.cpp

commit 7629a47
Author: Alexandre Bon <61953166+bonalex01dev@users.noreply.github.com>
Date:   Wed Oct 6 02:05:18 2021 +0200

    GuiApp: create guiapp.copySelectedNodes( optional group) python function (#675)

    * create guiapp.copySelectedNodes( optional group) python function

    This function allows to copy nodes even when multiple node graphs are opened. App1 should be passed as argument to make sure the copy is made from  the top level of the comp and not from the last active window

commit 0277bee
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Oct 5 14:59:15 2021 -0700

    Update INSTALL_MACOS.md

commit 12f6e38
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Oct 5 14:59:01 2021 -0700

    Update CHANGELOG.md

    see NatronGitHub/openfx-io@b127c6d

commit ff041e4
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Oct 1 19:20:28 2021 -0700

    MacPorts: downgrade libomp

    fixes #672

commit 08bb412
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Oct 1 11:04:26 2021 -0700

    better names for the installers

commit 3ac7b02
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Sep 30 16:33:34 2021 -0700

    Glow: disable masking if not connected

    Related to #671 (which was already fixed by previous commit NatronGitHub/openfx-misc@82f5f5d )
    see also https://benmcewan.com/blog/2019/10/21/back-to-basics-common-errors-when-creating-a-gizmo/

commit 07cd222
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Sep 28 18:30:39 2021 -0700

    Update CHANGELOG.md

commit b52506d
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Sep 28 18:27:09 2021 -0700

    update MacPorts

commit 7eabdc1
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Sep 24 19:11:30 2021 -0700

    doc update

commit 72ad3d1
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Sep 23 17:29:19 2021 -0700

    Update yaml-cpp.sh

commit 3246839
Author: Frédéric Devernay <frederic.devernay@m4x.org>
Date:   Thu Sep 23 16:50:59 2021 -0700

    MacPorts update

commit b8703c6
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Sep 23 16:50:37 2021 -0700

    Update CHANGELOG.md

commit 4700eb6
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Sep 23 16:50:34 2021 -0700

    Update INSTALL_MACOS.md

commit 5b032be
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Sep 23 16:50:26 2021 -0700

    linux sdk update

commit ad903fc
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Sun Sep 19 16:49:58 2021 +0200

    tools/MINGW-packages: update dav1d

commit 1f7ee32
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Fri Sep 17 18:38:04 2021 +0200

    Docs: fix warnings

    Still 3 left:

    * guide/file_browser.rst: WARNING: document isn't included in any toctree
    * guide/fromNuke_01.rst: WARNING: document isn't included in any toctree
    * guide/thenodes-merge.rst: WARNING: document isn't included in any toctree

commit 00f58a9
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Sep 15 18:51:15 2021 -0700

    build-OSX-installer.sh: fix window size

commit ac542e6
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Sep 15 18:50:55 2021 -0700

    update linux DSK

commit 41ace3a
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Sep 14 07:47:41 2021 -0700

    update MacPorts

commit cd1ff55
Author: Frédéric Devernay <frederic.devernay@m4x.org>
Date:   Mon Sep 13 14:20:17 2021 -0700

    macports update

commit a8b40b4
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Sep 10 16:12:53 2021 -0700

    fix OpenGL font issues on HiDPI displays

commit 157cf66
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Fri Sep 10 14:35:00 2021 -0700

    Fix histogram smoothing (was 5 times too strong)

commit 763cbb6
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Sep 5 23:11:15 2021 -0700

    add a few homebrew formulas

commit b246ad1
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Sep 5 11:05:43 2021 -0700

    sdk update

commit c72ac10
Author: Frédéric Devernay <frederic.devernay@m4x.org>
Date:   Sat Aug 28 10:57:02 2021 -0700

    MacPorts update

commit ee433e4
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Jul 22 15:14:08 2021 -0700

    ColorSelector: add support for RGB knobs (no A)

    See #210 @rodlie

commit 42b8a84
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Jul 22 09:23:33 2021 -0700

    linux SDK update

commit a49ecef
Author: Henry Wilkinson <henry@wilkinson.graphics>
Date:   Tue Jul 20 02:23:43 2021 -0400

    Update bug.yml (#658)

    * Update bug.yml

    Removes line with brackets

    * Update bug.yml

    Adds quotes to special characters

commit 50c808c
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Mon Jul 19 20:10:08 2021 -0700

    fix a few bugs when drawing Beziers

    - points were not smoothed
    - firs CP was missing tangent handles
    - CP being moved, drawn in cyan, was not reverted to its original color if no mouse motion
    - Issue #653 is still to be fixed (see comment "continue editing the tangent")

commit b7d8a02
Author: Ole-André <ole.andre.rodlie@gmail.com>
Date:   Tue Jul 20 03:19:19 2021 +0200

    KnobGuiColor: replace QColorDialog with ColorSelector (#657)

    * Gui: Added QtColorTriangle from Qt Solutions

    Maintained in Natron under the GNU Lesser General Public 2.1 license.

    Updated to work in Qt4 and Qt5.

    * Gui/ScaleSliderQWidget: support custom slider color

    * Gui: added ColorSelectorWidget

    * Gui/KnobGuiColor: replace QColorDialog with ColorSelectorWidget

    * Gui/ColorSelectorWidget: added tooltips

    * Gui/ColorSelectorWidget: added hsv sliders

    * Gui/ColorSelectorWidget: minor ui

    * Gui/ColorSelectorWidget: ui changes

    * Gui/ColorSelectorWidget: hsv slider fix

    forgot to set slider value when spinbox changed.

commit f064207
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Mon Jul 19 18:16:08 2021 -0700

    ASCII curve export: better defaults

    see #656

commit 41a3a50
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Mon Jul 19 17:40:44 2021 -0700

    Fix ASCII curve import

    fixes #656

commit 4b3e108
Author: Jacky Song <61605733+Songtech-0912@users.noreply.github.com>
Date:   Wed Jul 14 18:57:01 2021 -0400

    Update contributor templates [2] (#652)

    * Update pull request template

    * Add issue tracker dashboard

    * Update issue templates as 2 separate templates

    * Wording fixes in feature.yml

    * Content fixes in bug.yml

    * Added placeholder to system info section of form

    * Removed unnecessary units and duplicate information in sysinfo placeholder

commit 1f6fe3d
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Tue Jul 13 20:29:45 2021 +0200

    Tests: win build fix

commit 8cce05d
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Mon Jul 12 16:22:20 2021 -0700

    fix unit test

commit 5f21870
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Jul 11 19:33:34 2021 -0700

    Update wmain.cpp

commit c37664e
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sun Jul 11 10:10:50 2021 -0700

    CLArgs: fix TestCMD

commit b2cd4e2
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Jul 10 19:26:04 2021 -0700

    Python: expand variables in app.saveProject and app.saveProjectAs

commit 20f56dc
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Jul 10 19:24:04 2021 -0700

    Settings: do not save settings if a CLI arg instructed to use defaults

commit 43d7930
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Jul 10 18:55:45 2021 -0700

    AppManager: add open to clear OFX Plugin cache at launch

commit 5f25abe
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Jul 10 18:54:28 2021 -0700

    OfxHost: do not use Natron and Nuke plugins if useStdOFXPluginsLocation=false

commit a13b1ac
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Sat Jul 10 18:53:18 2021 -0700

    CLArgs: finally fixed

    The problem was that the command-line option "-w" optionally takes TWO arguments!
    Left it for backward compat, but I had to do a hack to avoid taking positional arguments (which have to be parsed last).

commit 95fdcac
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Jul 8 20:27:48 2021 -0700

    macOS: use the proper LLVM version

commit ee60fd5
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Thu Jul 8 15:15:39 2021 -0700

    Update CLArgs.cpp

commit b901a3c
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Jul 7 20:50:19 2021 -0700

    Update CHANGELOG.md

commit ab12fc2
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Jul 7 20:23:58 2021 -0700

    fix macOS build

commit 61bb44e
Author: Frédéric Devernay <devernay@users.noreply.github.com>
Date:   Wed Jul 7 15:55:34 2021 -0700

    Settings: use a reasonable thread count value for multi-core systems (#651)

    * Settings: use a reasonable thread count value for multi-core systems

    Closes #554

    * Update CHANGELOG.md

commit a9610ab
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Jul 7 15:44:30 2021 -0700

    MacPorts update

commit c0e4f3c
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Jul 7 12:43:43 2021 -0700

    Linux SDK docker: add Rocky Linux support

commit e940684
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Wed Jul 7 12:21:52 2021 -0700

    Linux SDK update

commit e2557c8
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Jul 6 16:47:57 2021 -0700

    AppManager: fix Python interpreter

    - GIL must be acquired before calling Py_Main
    - Py_Main releases it for us
    - Py_Main calls Py_Finalize for us

commit 66c12a0
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Jul 6 16:26:19 2021 -0700

    AppManager: Python interpreter needs the Python GIL

    fixes segfault

commit f93038f
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Tue Jul 6 16:25:56 2021 -0700

    CLArgs: better handling of arguments

    - "--" marks the end of positional arguments
    - Do not use the executable name (argv[0]) as a potential argument
    - Parse positional arguments after all other options
    - Error when some arguments are not parsed

commit f530695
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Mon Jul 5 14:52:48 2021 -0700

    CLArgs: Parse frame ranges last, clarify doc

    frameRanges is a positional argument, and should thus be parsed last.
    Should fix #644

commit 9d1b500
Author: Frederic Devernay <frederic.devernay@m4x.org>
Date:   Mon Jul 5 14:26:10 2021 -0700

    CLArgs: avoid mistaking an argument for a list of frame ranges when part of it may look like a frame range

    see #644 (partially fixes it)

commit 2e71f8f
Author: Frédéric Devernay <devernay@users.noreply.github.com>
Date:   Mon Jul 5 14:04:59 2021 -0700

    Update CHANGELOG.md

    #647

commit 3b779be
Author: Alexandre Bon <61953166+bonalex01dev@users.noreply.github.com>
Date:   Thu Jul 1 04:46:33 2021 +0200

    Doc update 2.4 Documentation Draw Nodes  (#645)

    * Read Node doc to DocUpdate-2.4 (3rd attempt)

    * Documentation Write node

    * Documentation Nodes NodeGraph

    * FileBrowser improved ( Project relative path) + links corrections

    * Update getstarted-environment-fileselect.rst

    * Update getstarted-environment-fileselect.rst

    * Documentation: Checkerboard-Colorwheel-Ramp-Common Properrties - Draw nodes

    * nodes - draw -Lightwrap node

    * Draw Nodes documentation

    Co-authored-by: Frédéric Devernay <devernay@users.noreply.github.com>

commit c4c06b6
Author: Jacky Song <61605733+Songtech-0912@users.noreply.github.com>
Date:   Wed Jun 30 19:46:07 2021 -0700

    Refactor README and Arch Linux Install Instructions [2] (#643)

    * Added emacs and vim artifacts to gitignore

    * Modified Arch Linux build instructions for custom tested config.pri

    * Removed unneccesary instructions for gitignore and added source comments

    * Added template Arch Linux build instructions

    * Added mention of template archlinux config in install instructions

commit cf38f48
Author: Ole-André Rodlie <ole.andre.rodlie@gmail.com>
Date:   Sat Jun 26 19:25:58 2021 +0200

    tools/MINGW-packages: fixes

    https://discuss.pixls.us/t/wrong-resolution-when-reading-dng-file-from-still-camera/25557/5

    also downgraded OIIO due to unit test issues.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants