renderer: rewrote frame compression algorithm

This function was noticeably lagging the main thread while caching. The
cause was OpenEXR's internal thread pool competing with our main
thread. Since we have our own system of worker threads, its thread pool
was unnecessary for caching, however for normal playback it was a useful
optimization. Unfortunately OIIO (which we were using to save EXRs)
didn't provide quite enough control over OpenEXR's threading behavior
(only providing control for over the global thread pool and not on
a per-image basis), so for caching we've switched to using OpenEXR
directly. This has noticeably sped up the main thread while causing no
noticeable slowdown to the caching process.
This commit is contained in:
itsmattkc
2020-02-29 01:00:17 +11:00
parent 2ec160525c
commit 163ad76456
3 changed files with 84 additions and 27 deletions
+1 -1
View File
@@ -31,9 +31,9 @@ extern "C" {
#include <libavfilter/avfilter.h>
}
#include <csignal>
#include <QApplication>
#include <QSurfaceFormat>
#include <csignal>
#include "core.h"
#include "common/crashhandler.h"