Fix #31697: Blender crashes when using several viewer nodes in tile
Issue was caused by fact that viewer node might re-size ImBuf used for viewer node result, so if several viewer nodes are running for inputs with different resolutions it'll result in a crash, Now copied behavior or pre-tile compositor -- execute viewer node which has NODE_DO_OUTPUT flag, so no several nodes would be calculated at once. Should be pretty ok because calculation of several viewers doesn't actually make sense because there's only one buffer they might use and it's getting re-calculated when changing active viewer node.
This commit is contained in:
@@ -36,8 +36,8 @@ void ViewerNode::convertToOperations(ExecutionSystem *graph, CompositorContext *
|
||||
InputSocket *alphaSocket = this->getInputSocket(1);
|
||||
Image *image = (Image*)this->getbNode()->id;
|
||||
ImageUser * imageUser = (ImageUser*) this->getbNode()->storage;
|
||||
if (imageSocket->isConnected()) {
|
||||
bNode *editorNode = this->getbNode();
|
||||
bNode *editorNode = this->getbNode();
|
||||
if (imageSocket->isConnected() && (editorNode->flag & NODE_DO_OUTPUT)) {
|
||||
ViewerOperation *viewerOperation = new ViewerOperation();
|
||||
viewerOperation->setColorManagement(context->getScene()->r.color_mgt_flag & R_COLOR_MANAGEMENT);
|
||||
viewerOperation->setColorPredivide(context->getScene()->r.color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE);
|
||||
|
||||
Reference in New Issue
Block a user