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
itsmattkc
9ff9817b95
cache: use render job times to synchronize cache
...
Ensure old inaccurate jobs are never prioritized over current jobs.
2020-06-04 16:48:23 +10:00
itsmattkc
e30d278327
playbackcache: made thread-safe
...
Since this class is regularly accessed by multiple threads, it makes the
most sense to make all of its functions thread-safe.
2020-06-03 03:38:28 +10:00
itsmattkc
11bfe61208
cache: began base implementation of "shifting" the cache
...
Should be a fairly important optimization to make.
2020-06-02 01:38:12 +10:00
itsmattkc
89ae6e026f
cache: reimplemented auto-caching
...
Implemented a smarter auto-cache that's context sensitive. Caching will
automatically pause when playback begins or values are being changed and resume
when inactive.
2020-05-24 15:20:35 +10:00
itsmattkc
34fade9d81
cache: attempt to automatically re-match hashes on invalidate
...
This code is slow and unoptimized. Will require some more work.
2020-05-21 16:49:02 +10:00
itsmattkc
53a2956350
cache: added cache task that can be manually invoked
2020-05-15 18:36:02 +10:00
itsmattkc
863ae1b913
a first attempt at a new render system
2020-05-14 14:43:03 +10:00