Page MenuHome

Fix T92682: EEVEE motion blur crash with curve objects
ClosedPublic

Authored by Hans Goudey (HooglyBoogly) on Nov 18 2021, 3:30 PM.

Details

Summary

After rBb9febb54a492, the evaluated mesh from a curve is now presented
to render engines as a separate mesh object. This code still assumed that a
curve object itself could have an evaluated mesh. That is still true for
surface objects and metaballs, which don't use geometry sets yet.

Diff Detail

Repository
rB Blender
Branch
fix-eevee-motion-blur-crash (branched from master)
Build Status
Buildable 18758
Build 18758: arc lint + arc unit

Event Timeline

Hans Goudey (HooglyBoogly) requested review of this revision.Nov 18 2021, 3:30 PM
Hans Goudey (HooglyBoogly) created this revision.

There are two other tests like this, I think all can be changed?

source/blender/draw/engines/eevee/eevee_engine.c:    if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL)) {
source/blender/draw/engines/eevee/eevee_render.c:    if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL)) {
source/blender/draw/engines/eevee/eevee_materials.c:  if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL)) {

Also perhaps this one?

source/blender/draw/engines/workbench/workbench_engine.c:  if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_POINTCLOUD)) {
  • Fix more assumptions that curve objects have meshes

Thanks, I found a more too, by searching OB_CURVE in eevee* and workbench* files.
I'll say, this was easier to fix in Cycles, the distance from Blender code probably helped.

EDIT: Oops, I only saw an email from your second comment. Thanks for finding those.

This revision is now accepted and ready to land.Nov 18 2021, 3:51 PM