Page MenuHome

Fix T83267: Crash prefetching scene strip in meta strip
ClosedPublic

Authored by Richard Antalik (ISS) on Jan 5 2021, 7:17 AM.

Details

Summary

Scene strips can't be prefetched and seq_prefetch_do_skip_frame()
should check if scene strip is in timeline. But it did not recurse into
meta strips, which resulted in crash.

Diff Detail

Repository
rB Blender
Branch
arcpatch-D9999 (branched from master)
Build Status
Buildable 12242
Build 12242: arc lint + arc unit

Event Timeline

Richard Antalik (ISS) requested review of this revision.Jan 5 2021, 7:17 AM
Richard Antalik (ISS) created this revision.

Scene strips can't be prefetched

Is it explained somewhere why scene strips are so special?

This function did not recurse into meta strips, which resulted in crash.

This sounds unrelated to the scene strip case. Are both changes required to fix crash or can they be split into 2 separate ocmmits?

Richard Antalik (ISS) edited the summary of this revision. (Show Details)Jan 18 2021, 1:57 PM

Scene strips can't be prefetched

Is it explained somewhere why scene strips are so special?

Not really directly, in seq_render_scene_strip() it is kinda explained, that rendering 3D scene requires main lock or setting up render job that doesn't have API to do openGL renders which can be used for sequencer.
I will add such comment.

This function did not recurse into meta strips, which resulted in crash.

This sounds unrelated to the scene strip case. Are both changes required to fix crash or can they be split into 2 separate ocmmits?

There is only one issue being solved - it crashed, because scene strip was inside of meta strip. Updated commit msg to make this more clear.

  • Explain, why 3D scene strips can not be prefetched
This revision is now accepted and ready to land.Jan 18 2021, 2:40 PM