-
Notifications
You must be signed in to change notification settings - Fork 751
gui: speedup handling of bpins #9148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Peter Gadfort <[email protected]>
Signed-off-by: Peter Gadfort <[email protected]>
Signed-off-by: Peter Gadfort <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request significantly improves the performance of handling and rendering bpins by leveraging an r-tree for spatial queries, which is a great enhancement. The new feature to allow bpin selection is also a valuable addition. The code changes are generally well-structured. However, I've identified a critical performance and logic issue in setupIOPins concerning font size calculation, and another bug in drawIOPins that incorrectly prevents pin markers from being drawn. I have provided detailed comments and suggestions to address these points. With these fixes, the PR will be in excellent shape.
| if (!viewer_->options_->areIOPinsVisible() | ||
| || !viewer_->options_->areIOPinNamesVisible()) { | ||
| return; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This check incorrectly prevents IO pin markers from being drawn if pin names are not visible. The visibility of pin markers is controlled by areIOPinsVisible(), while the visibility of names is handled by the pin_draw_names_ flag later in the code. The || !viewer_->options_->areIOPinNamesVisible() part of the condition should be removed to ensure markers are drawn whenever IO pins are set to be visible, regardless of the name visibility setting.
if (!viewer_->options_->areIOPinsVisible()) {There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
Signed-off-by: Peter Gadfort <[email protected]>
7d543e4
into
The-OpenROAD-Project:master
Changes:
Before:
After: