blender-v3.6-release backports #112373

Merged
Philipp Oeser merged 3 commits from lichtwerk/blender:blender-v3.6-release into blender-v3.6-release 2023-09-14 14:10:40 +02:00
4 changed files with 16 additions and 7 deletions

View File

@ -2577,6 +2577,10 @@ void BKE_view_layer_verify_aov(RenderEngine *engine, Scene *scene, ViewLayer *vi
viewlayer_aov_make_name_unique(view_layer);
GHash *name_count = BLI_ghash_str_new(__func__);
LISTBASE_FOREACH (ViewLayerAOV *, aov, &view_layer->aovs) {
/* Disable conflict flag, so that the AOV is included when iterating over all passes below. */
aov->flag &= ~AOV_CONFLICT;
}
RE_engine_update_render_passes(
engine, scene, view_layer, bke_view_layer_verify_aov_cb, name_count);
LISTBASE_FOREACH (ViewLayerAOV *, aov, &view_layer->aovs) {

View File

@ -1271,14 +1271,18 @@ static void node_file_output_socket_draw(bContext *C,
static bool socket_needs_attribute_search(bNode &node, bNodeSocket &socket)
{
if (node.runtime->declaration == nullptr) {
const nodes::NodeDeclaration *node_decl = node.declaration();
if (node_decl == nullptr) {
return false;
}
if (node_decl->skip_updating_sockets) {
return false;
}
if (socket.in_out == SOCK_OUT) {
return false;
}
const int socket_index = BLI_findindex(&node.inputs, &socket);
return node.declaration()->inputs[socket_index]->is_attribute_name;
return node_decl->inputs[socket_index]->is_attribute_name;
}
static void std_node_socket_draw(

View File

@ -1828,11 +1828,8 @@ void rna_ViewLayer_pass_update(Main *bmain, Scene *activescene, PointerRNA *ptr)
{
Scene *scene = (Scene *)ptr->owner_id;
if (scene->nodetree) {
ntreeCompositUpdateRLayers(scene->nodetree);
}
ViewLayer *view_layer = NULL;
if (ptr->type == &RNA_ViewLayer) {
view_layer = (ViewLayer *)ptr->data;
}
@ -1857,6 +1854,10 @@ void rna_ViewLayer_pass_update(Main *bmain, Scene *activescene, PointerRNA *ptr)
}
}
if (scene->nodetree) {
ntreeCompositUpdateRLayers(scene->nodetree);
}
rna_Scene_render_update(bmain, activescene, ptr);
}

View File

@ -494,7 +494,7 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
for (; j; j--, orig_corner_i++, dst_corner_i++) {
corner_verts[dst_corner_i] = orig_corner_verts[orig_corner_i] + (p_skip * totvert);
corner_edges[dst_corner_i] = orig_corner_edges[orig_corner_i] + (p_skip * totedge);
const int vert = corner_verts[orig_corner_i];
const int vert = corner_verts[dst_corner_i];
if (mloopcols_index != nullptr) {
const int part_index = vert_part_index[vert];
store_float_in_vcol(&mloopcols_index[dst_corner_i],