Commit Graph
57 Commits
Author SHA1 Message Date
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 48adb159b8 various: consolidated dir exists+mkpath into one function 2022-04-07 17:11:50 -07:00
itsmattkc 006d42ecf1 framehashcache: use two relationally linked maps for optimization 2021-10-09 14:09:58 -07:00
itsmattkc 7e884b55e7 if frame is corrupt, delete and try caching again 2021-09-30 14:14:10 -07:00
itsmattkc 5485ea5750 cache: added try/catch to exr reading/writing 2021-09-30 13:54:32 -07:00
itsmattkc 59e228439f cache: ignore shifts beyond map size
Fixes crash
2021-07-18 11:05:33 -07:00
itsmattkc 4bbc75392a nodes: rewrote and simplified length signaling system 2021-07-15 21:00:18 -07:00
itsmattkc c374a03e9d render: further simplified job times
Outside of silly mistakes, this should be significantly faster and more stable.
2021-07-12 15:14:37 -07:00
itsmattkc 310fd3541a various: greatly simplified job times
Hopefully this doesn't break everything
2021-07-11 23:33:21 -07:00
itsmattkc d18f650034 framehashcache: disabled reserve 2021-07-11 17:20:50 -07:00
itsmattkc 8a58ee2bdb renderer: use iterator rather than creating vectors
Creating vectors from the FrameHashCache was one of the slowest functions in the program, this should be significantly faster.
2021-07-11 16:47:12 -07:00
itsmattkc 38c38daf8a framehashcache: use timestamp based vector internally
I think this will be significantly faster, but I guess we'll find out!
2021-07-10 15:37:06 -07:00
itsmattkc 0c04bcf045 timecode: allow specific rounding routines 2021-07-08 11:39:29 -07:00
itsmattkc dce8ebdf01 framehashcache: remove definition for removed function 2021-06-16 17:22:26 -07:00
itsmattkc 33f71d7548 framehashcache: use static const string rather than function
Should be mildly faster
2021-06-16 14:29:43 -07:00
itsmattkc 37915d1c8c framehashcache: improve time list function
Old implementation was particularly slow, this is significantly faster and should be identical in output.
2021-05-14 00:11:20 +10:00
itsmattkc db237d3bd4 update for openexr 3.x 2021-05-09 17:08:06 +10:00
itsmattkc bba23c1589 cache: don't create directories unless necessary 2021-05-05 11:38:27 +10:00
itsmattkc b07e132dbb framehashcache: allow access to frames being saved
Minor optimization and crash fix. If a frame is currently being
saved, it's still technically available in memory and can be
returned faster than loading from EXR. This also prevents
OpenEXR from trying to load a frame that we're midway through
saving.
2021-04-24 18:21:33 +10:00
itsmattkc 74ad4110be transform: hash the generated matrix
Making an exception for the transform node, we use a slightly
heavier hash to save more rendering time later.

Fixes #1560
Addresses some of #1360
2021-04-22 18:01:26 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 22b2d08baf rational: implement NaN mode
Also clarify code where 0 is used as a rational.
2021-04-17 15:04:03 +10:00
itsmattkc 157da658a5 renderer: prevent cache saving/loading with empty path 2021-04-13 15:53:33 +10:00
itsmattkc 6c30f8cf46 nodes: implemented infrastructure for caching any node
Not accessible through UI yet, but ported Footage node to it
(previously we used a hack to ensure Footage textures were
cached, now it's a formal infrastructure).
2021-04-11 18:56:39 +10:00
itsmattkc 4584d62def removed debug lines 2021-04-08 08:00:16 +10:00
itsmattkc bb32048c65 use frame rate and timebase less interchangeably 2021-04-07 13:08:25 +10:00
itsmattkc cfbf563b2e ensure cache modified time is accurate 2021-02-22 00:23:34 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc c81bb003d3 framehashcache: minor code cleanup 2020-11-16 01:35:52 +11:00
itsmattkc 0d0766e4fb improved render channel count system 2020-11-15 22:16:40 +11:00
itsmattkc 1d61f89920 large scale renderer rework
- Abstracts all OpenGL functionality including UI objects
- Cleans up several rendering codepaths
- Improves threading functionality
- Removes old code and problematic functions
2020-11-10 11:24:51 +11:00
itsmattkc 07dc7104c5 made timerangelist a encapsulation rather than a derivation
Locks off functionality that really shouldn't be used.
2020-10-29 02:18:41 +11:00
itsmattkc 9a46fc5891 cache: invalidate AFTER iterating map
Fixes #1183
2020-09-21 12:28:47 +10:00
itsmattkc cabcd49b25 renderer: copy cache path before render to avoid race conditions 2020-09-05 18:48:54 +10:00
itsmattkc f86ab6a965 renderer: prevent infinite loop occurring on some time invalidations 2020-08-26 17:38:16 +10:00
itsmattkc f6760386ce renderer: improved handling of pixel aspect ratio and footage cache 2020-08-21 14:43:13 +10:00
itsmattkc d85089f71a cache: improved setting manual cache path on a per project basis 2020-08-07 13:41:09 +10:00
itsmattkc df14c2aaa7 cache: better implemented changing disk cache folders
Not complete yet, but getting there.
2020-08-07 02:31:46 +10:00
itsmattkc fa02430d48 cache: reimplemented disk manager to enforce limit in preferences 2020-08-06 01:30:51 +10:00
itsmattkc c8def73b95 cache: mild auto-cache overhaul
Shifted from CacheTask to functionality built into RenderBackend. It was
a lot easier to control behavior this way without having to juggle a ton
of threads and race conditions.

Could likely be multithreaded further.
2020-08-05 02:19:04 +10:00
itsmattkc ce486f6b84 cache: null check on saving frames
Includes a warning since I'm not sure yet if this is problematic behavior
or not yet.
2020-07-23 18:46:47 +10:00
itsmattkc c3c26a8e24 cache: use openexr directly
OIIO lacks fidelity over OpenEXR's threading. Using it directly gives us
a little more control.
2020-06-17 17:49:54 +10:00
itsmattkc cbbf1c9149 framehashcache: use correct linesize when saving EXR
Fixes stride issues on non-standard frame sizes.
2020-06-16 15:38:23 +10:00
itsmattkc 2e3072623a renderer: use qvectors instead of qlists
Should be much more efficient for large-scale projects.
2020-06-16 02:45:16 +10:00
itsmattkc dd7af0e6bd nodes: minor overhaul to functionality
The nodes now have more control over how their accelerated shaders/sample
functions are run, as well as how items are popped off the value tables.
This allows for various optimizations that we didn't have access to before.
2020-06-12 00:54:15 +10:00
itsmattkc a9a13c4b0c framehashcache: remove code for saving integer-based frames to cache
Since we don't allow non-float cached frames now, there's no need to have
this code complicating the codebase.
2020-06-10 14:12:26 +10:00
itsmattkc 52ca18d5e1 viewer: moved cached frame loading code so that more classes have access to it 2020-06-09 02:35:13 +10:00
itsmattkc 430561e2ac sequence: made divider a sequence parameter rather than a viewer parameter
Doing this makes the preview resolution an explicit project setting rather
than a temporary UI setting. This will allow more consistency when caching.
2020-06-08 14:41:35 +10:00
itsmattkc 7609754103 playbackcache: more intelligent job matching
Ensures audio ranges can be anticipated and accurately ignored if they're
old or acknowledged if they're current.
2020-06-05 15:23:16 +10:00