minor render pipeline improvements

Simple flow improvements of the rendering pipeline for efficiency and
reliability.
This commit is contained in:
itsmattkc
2020-01-02 06:01:23 +11:00
parent f8839e74de
commit 31af04fc6c
4 changed files with 23 additions and 30 deletions
+13
View File
@@ -45,6 +45,8 @@ NodeValueTable VideoRenderWorker::RenderInternal(const NodeDependency& path, con
Download(path, hash, texture, frame_cache_->CachePathName(hash));
}
frame_cache_->RemoveHashFromCurrentlyCaching(hash);
// Signal that this job is complete
emit CompletedDownload(path, job_time, hash);
} else {
@@ -83,6 +85,17 @@ void VideoRenderWorker::HashNodeRecursively(QCryptographicHash *hash, const Node
// For a single frame, we only care about one of the times
rational input_time = n->InputTimeAdjustment(input, TimeRange(time, time)).in();
if (n->IsBlock()) {
const Block* b = static_cast<const Block*>(n);
// Ignore some Block attributes when hashing
if (input == b->media_in_input()
|| input == b->media_out_input()
|| input == b->length_input()) {
continue;
}
}
if (input->IsConnected()) {
// Traverse down this edge
HashNodeRecursively(hash, input->get_connected_node(), input_time);