Refactor: Simplify mesh edit mode modifier evaluation #108637

Merged
Hans Goudey merged 38 commits from HooglyBoogly/blender:cleanup-modifier-edit-mode-eval into main 2023-07-07 13:07:22 +02:00
2 changed files with 33 additions and 22 deletions
Showing only changes of commit e87f3a9718 - Show all commits

View File

@ -198,38 +198,49 @@ void ShaderCreateInfo::validate_merge(const ShaderCreateInfo &other_info)
}
};
auto print_error_msg = [&](const Resource &res) {
std::cout << name_ << ": Validation failed : Overlapping ";
auto print_error_msg = [&](const Resource &res, Vector<Resource> &resources) {
auto print_resource_name = [&](const Resource &res) {
switch (res.bind_type) {
case Resource::BindType::UNIFORM_BUFFER:
std::cout << "Uniform Buffer " << res.uniformbuf.name;
break;
case Resource::BindType::STORAGE_BUFFER:
std::cout << "Storage Buffer " << res.storagebuf.name;
break;
case Resource::BindType::SAMPLER:
std::cout << "Sampler " << res.sampler.name;
break;
case Resource::BindType::IMAGE:
std::cout << "Image " << res.image.name;
break;
default:
std::cout << "Unknown Type";
break;
}
};
switch (res.bind_type) {
case Resource::BindType::UNIFORM_BUFFER:
std::cout << "Uniform Buffer " << res.uniformbuf.name;
break;
case Resource::BindType::STORAGE_BUFFER:
std::cout << "Storage Buffer " << res.storagebuf.name;
break;
case Resource::BindType::SAMPLER:
std::cout << "Sampler " << res.sampler.name;
break;
case Resource::BindType::IMAGE:
std::cout << "Image " << res.image.name;
break;
default:
std::cout << "Unknown Type";
break;
for (const Resource &_res : resources) {
if (&res != &_res && res.bind_type == _res.bind_type && res.slot == _res.slot) {
std::cout << name_ << ": Validation failed : Overlapping ";
print_resource_name(res);
std::cout << " and ";
print_resource_name(_res);
std::cout << " at (" << res.slot << ") while merging " << other_info.name_ << std::endl;
}
}
std::cout << " (" << res.slot << ") while merging " << other_info.name_ << std::endl;
};
for (auto &res : batch_resources_) {
if (register_resource(res) == false) {
print_error_msg(res);
print_error_msg(res, batch_resources_);
print_error_msg(res, pass_resources_);
}
}
for (auto &res : pass_resources_) {
if (register_resource(res) == false) {
print_error_msg(res);
print_error_msg(res, batch_resources_);
print_error_msg(res, pass_resources_);
}
}
}

View File

@ -768,7 +768,7 @@ class GeoNodesSimulationTest(MeshTest):
raise Exception("The object has no modifiers.")
scene = bpy.context.scene
for frame in range(1, self.frames_num+1):
for frame in range(1, self.frames_num + 1):
scene.frame_set(frame)
for modifier in modifiers_list: