Skip to content
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

make gui_grt with latest ORFS no longer opens the GUI #6172

Open
oharboe opened this issue Nov 17, 2024 · 14 comments
Open

make gui_grt with latest ORFS no longer opens the GUI #6172

oharboe opened this issue Nov 17, 2024 · 14 comments
Labels
gui GUI

Comments

@oharboe
Copy link
Collaborator

oharboe commented Nov 17, 2024

Describe the bug

Check out latest ORFS, run ./build_openroad.sh --local --latest, then use nangate/gcd/config.mk:

diff --git a/flow/scripts/open.tcl b/flow/scripts/open.tcl
index ac756c69..0a34630c 100644
--- a/flow/scripts/open.tcl
+++ b/flow/scripts/open.tcl
@@ -66,5 +66,7 @@ fast_route
 if {[env_var_equals GUI_SHOW 1]} {
   # Show the GUI when it is ready; it is unresponsive(with modal requesters
   # saying it is unresponsive) until everything is loaded
+  puts "Unminimize GUI..."
   gui::unminimize
+  puts "Unminimized GUI..."
 }
$ make clean_all grt
$ make gui_grt
ODB_FILE=./results/nangate45/gcd/base/5_1_grt.odb GUI_SHOW=1 /home/oyvind/OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad -gui  -minimize /home/oyvind/OpenROAD-flow-scripts/flow/scripts/open.tcl
QSocketNotifier: Can only be used with threads started with QThread
OpenROAD v2.0-17042-g8a24d74d8 
Features included (+) or not (-): +Charts +GPU +GUI +Python
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
GUI_TIMING=1 reading timing, takes a little while for large designs...
estimate_parasitics -global_routing
Populating timing paths...
Unminimize GUI...
Unminimized GUI...
[nothing more happens, the GUI is not opened]

I can see that OpenROAD is running and using 0% CPU, if I click on the icon, it opens normally:

image

Expected Behavior

make gui_grt should open the GUI after timing has been loaded

Environment

Git commit: 8a24d74d8f961a4a1e12b985162b2b12f7973b9d
kernel: Linux 6.8.0-48-generic
os: Ubuntu 24.04.1 LTS (Noble Numbat)
cmake version 3.28.3
-- The CXX compiler identification is GNU 13.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenROAD version: v2.0-17042-g8a24d74d8
-- System name: Linux
-- Compiler: GNU 13.2.0
-- Build type: RELEASE
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- The C compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test C_COMPILER_SUPPORTS__-Wall
-- Performing Test C_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- PerformingCMake Error at /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR) (Required is at
  least version "4.0")
Call Stack (most recent call first):
  /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.28/Modules/FindSWIG.cmake:153 (find_package_handle_standard_args)
  src/CMakeLists.txt:169 (find_package)


 Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive - Success
-- Performing Test C_COMPILER_SUPPORTS__-x
-- Performing Test C_COMPILER_SUPPORTS__-x - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-x
-- Performing Test CXX_COMPILER_SUPPORTS__-x - Failed
-- Performing Test C_COMPILER_SUPPORTS__c++
-- Performing Test C_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__c++
-- Performing Test CXX_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17 - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17 - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu
-- Configuring incomplete, errors occurred!

To Reproduce

See above

Relevant log output

No response

Screenshots

No response

Additional Context

No response

@oharboe
Copy link
Collaborator Author

oharboe commented Nov 17, 2024

Tried make OR_ARGS=-no_init gui_grt, no difference.

@oharboe
Copy link
Collaborator Author

oharboe commented Nov 17, 2024

Tried QT_QPA_PLATFORM=xcb make OR_ARGS=-no_init gui_grt, no difference.

@maliberty
Copy link
Member

It opens for me. On what OS? Under docker?

@maliberty
Copy link
Member

gui::minimize work when the gui is showing?

@gadfort
Copy link
Collaborator

gadfort commented Nov 17, 2024

@maliberty I get the same behavior on Ubuntu24.
Ie. showNormal doesn't seem to do anything.

If I run with:

gui::minimize
gui::unminimize

Nothing happens to open the window again.

@oharboe
Copy link
Collaborator Author

oharboe commented Nov 17, 2024

It opens for me. On what OS? Under docker?

No docker, Ubuntu 24.04 (as per logs).

@maliberty
Copy link
Member

Does showMaximized() work? Does show() help?

@maliberty
Copy link
Member

Or w->setWindowState((w->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); (https://doc.qt.io/qt-5/qwidget.html#setWindowState)

@gadfort
Copy link
Collaborator

gadfort commented Nov 17, 2024

@maliberty I tried, no. I think it's an issue with the Wayland driver that Qt5 has. I am going to try and compile with Qt6 since that seems to show some promise based on a few messages board posts I saw

@gadfort
Copy link
Collaborator

gadfort commented Nov 17, 2024

@maliberty short answer is Qt6 gets rid of some warnings I see related to Wayland. If I disable Wayland temporarily it seems to work, but this appears to be an issue in Qt.

@maliberty
Copy link
Member

@gadfort does qt6 solve the issue?

@gadfort
Copy link
Collaborator

gadfort commented Nov 18, 2024

@maliberty no it did not.

@oharboe
Copy link
Collaborator Author

oharboe commented Nov 21, 2024

@maliberty short answer is Qt6 gets rid of some warnings I see related to Wayland. If I disable Wayland temporarily it seems to work, but this appears to be an issue in Qt.

How do I disable Wayland in Qt?

@oharboe
Copy link
Collaborator Author

oharboe commented Nov 22, 2024

@maliberty If this will take a while, can we add a workaround to ORFS meanwhile?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gui GUI
Projects
None yet
Development

No branches or pull requests

3 participants