Merge branch 'blender-v3.6-release'
This commit is contained in:
@@ -483,16 +483,26 @@ void GPUCodegen::generate_library()
|
||||
GPUCodegenCreateInfo &info = *create_info;
|
||||
|
||||
void *value;
|
||||
/* Iterate over libraries. We need to keep this struct intact in case
|
||||
* it is required for the optimization pass. */
|
||||
blender::Vector<std::string> source_files;
|
||||
|
||||
/* Iterate over libraries. We need to keep this struct intact in case it is required for the
|
||||
* optimization pass. The first pass just collects the keys from the GSET, given items in a GSET
|
||||
* are unordered this can cause order differences between invocations, so we collect the keys
|
||||
* first, and sort them before doing actual work, to guarantee stable behavior while still
|
||||
* having cheap insertions into the GSET */
|
||||
GHashIterator *ihash = BLI_ghashIterator_new((GHash *)graph.used_libraries);
|
||||
while (!BLI_ghashIterator_done(ihash)) {
|
||||
value = BLI_ghashIterator_getKey(ihash);
|
||||
auto deps = gpu_shader_dependency_get_resolved_source((const char *)value);
|
||||
info.dependencies_generated.extend_non_duplicates(deps);
|
||||
source_files.append((const char *)value);
|
||||
BLI_ghashIterator_step(ihash);
|
||||
}
|
||||
BLI_ghashIterator_free(ihash);
|
||||
|
||||
std::sort(source_files.begin(), source_files.end());
|
||||
for (auto &key : source_files) {
|
||||
auto deps = gpu_shader_dependency_get_resolved_source(key.c_str());
|
||||
info.dependencies_generated.extend_non_duplicates(deps);
|
||||
}
|
||||
}
|
||||
|
||||
void GPUCodegen::node_serialize(std::stringstream &eval_ss, const GPUNode *node)
|
||||
|
||||
@@ -7037,6 +7037,11 @@ static void rna_def_modifier_nodes(BlenderRNA *brna)
|
||||
RNA_def_property_flag(prop, PROP_EDITABLE);
|
||||
RNA_def_property_update(prop, 0, "rna_NodesModifier_node_group_update");
|
||||
|
||||
prop = RNA_def_property(srna, "simulation_bake_directory", PROP_STRING, PROP_DIRPATH);
|
||||
RNA_def_property_ui_text(
|
||||
prop, "Simulation Bake Directory", "Location on disk where the bake data is stored");
|
||||
RNA_def_property_update(prop, 0, NULL);
|
||||
|
||||
RNA_define_lib_overridable(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -1922,6 +1922,8 @@ static void internal_dependencies_panel_draw(const bContext * /*C*/, Panel *pane
|
||||
PointerRNA *ptr = modifier_panel_get_property_pointers(panel, nullptr);
|
||||
NodesModifierData *nmd = static_cast<NodesModifierData *>(ptr->data);
|
||||
|
||||
uiItemR(layout, ptr, "simulation_bake_directory", 0, "Bake", ICON_NONE);
|
||||
|
||||
geo_log::GeoTreeLog *tree_log = get_root_tree_log(*nmd);
|
||||
if (tree_log == nullptr) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user