AR# 72614

|

2018.3 Vivado - Cannot start the vivado GUI Multiple Display Issue: IllegalArgumentException: Window must not be zero

描述

On some Linux OSs, Vivado 2018.3 and newer releases exit on launch after start_gui with the following message:

****** Vivado v2018.3 (64-bit)
  **** SW Build 2405991 on Thu Dec  6 23:36:41 MST 2018
  **** IP Build 2404404 on Fri Dec  7 01:43:56 MST 2018
    ** Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.

start_gui
java.lang.reflect.InvocationTargetException
    at java.desktop/java.awt.EventQueue.invokeAndWait(Unknown Source)
    at java.desktop/java.awt.EventQueue.invokeAndWait(Unknown Source)
    at java.desktop/javax.swing.SwingUtilities.invokeAndWait(Unknown Source)
    at ui.PlanAhead.i(SourceFile:1505)
    at ui.PlanAhead.eq(SourceFile:585)
    at ui.PlanAhead.ex(SourceFile:881)
    at ui.PlanAhead.a(SourceFile:1609)
    at ui.frmwork.b.l.d(SourceFile:41)
    at ui.frmwork.HTclEventBroker.i(SourceFile:255)
    at ui.frmwork.HTclEventBroker.fireTclEvent(SourceFile:350)
Caused by: java.lang.IllegalArgumentException: Window must not be zero
    at java.desktop/sun.awt.X11.XAtom.checkWindow(Unknown Source)
    at java.desktop/sun.awt.X11.XAtom.getAtomData(Unknown Source)
    at java.desktop/sun.awt.X11.XToolkit.getWorkArea(Unknown Source)
    at java.desktop/sun.awt.X11.XToolkit.getInsets(Unknown Source)
    at java.desktop/sun.awt.X11.XToolkit.getScreenInsets(Unknown Source)
    at java.desktop/sun.java2d.SunGraphicsEnvironment.getUsableBounds(Unknown Source)
    at java.desktop/sun.awt.X11GraphicsEnvironment.getXineramaWindowBounds(Unknown Source)
    at java.desktop/sun.awt.X11GraphicsEnvironment.getMaximumWindowBounds(Unknown Source)
    at com.jidesoft.utils.PortingUtils.getLocalScreenBounds(Unknown Source)
    at com.jidesoft.utils.PortingUtils.ensureVisible(Unknown Source)
    at com.jidesoft.action.DefaultDockableBarManager.m(Unknown Source)
    at com.jidesoft.action.DefaultDockableBarManager.f(Unknown Source)
    at com.jidesoft.action.DefaultDockableBarManager.resetToDefault(Unknown Source)
    at com.jidesoft.swing.AbstractLayoutPersistence.loadLayoutDataFrom(Unknown Source)
    at com.jidesoft.swing.AbstractLayoutPersistence.loadLayoutData(Unknown Source)
    at ui.q.ag(SourceFile:137)
    at ui.bm.bK(SourceFile:960)
    at ui.bm.<init>(SourceFile:161)
    at ui.de.a(SourceFile:1396)
    at ui.de.run(SourceFile:1359)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.desktop/java.awt.EventQueue.access$500(Unknown Source)
    at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
    at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
    at ui.frmwork.b.d.dispatchEvent(SourceFile:88)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Failed to open 'Vivado application'. Please check your system resources and launch again.
 

Vivado 2018.2 and earlier releases work without issues on the same machine.

What is causing this issue?

解决方案

Note: This issue is addressed from Vivado 2020.x version and newer. The below tactical patch does not need to be applied if working with the latest Xilinx tools.

This is a Java9 related issue which is not due to the Xilinx tools.

Further details can be found on Java's site:

https://bugs.openjdk.java.net/browse/JDK-8204646

This also lists the Linux Operating Systems on which this problem occurs.

Therefore, any fixes/work-arounds for this issue will have to come directly from Java.


Please find attached a tactical patch for the 2019.2 release.

Note: Other Xilinx products and other released versions built with Java 9 (for example 2018.3, 2019.1 etc.) can use this patch.

 

This patch can be used to address the issue in Vivado where the Vivado GUI cannot be launched on some Linux operating systems if multiple monitors are used.

The problem is that GUI apps built with Java 9 (or later as of 12/06/2019) running on most versions of Linux will hit the "Window must not be zero" exception with 3 or more monitors attached.

This patch works around this issue by adding code that ignores the underlying condition to the Java boot loader.

The patch code is in AR72614.jar.

After applying the patch in Vivado 2018.3 or 2019.2, the Vivado GUI will successfully launch without issuing the above error.

 

Installation Instructions:

Option 1:

Add the following command line argument to Vivado to use the patch:

-jvm -patch-module=java.desktop=<path-to-jar>/AR72614.jar

For example:

vivado -jvm -patch-module=java.desktop=<path-to-jar>/AR72614.jar

This can be added in desktop links/shortcuts, command aliases, and scripts.

Option 2:

Use the loader ("vivado" script) that comes with the attached patch which includes the command line args above.

 

For further information on finding the Xilinx install see (Xilinx Answer 11630).

For further information on using the XILINX_PATH environment variable, see (Xilinx Answer 66722).

Note: You might need to have a system administrator install the Patch if you do not have write permissions to where you plan to install the patch.

 

For any issues with the patch please contact Xilinx Technical Support:

https://www.xilinx.com/support.html#serviceportal

附件

文件名 文件大小 File Type
AR72614_vivado_2019_2_preliminary_rev2.zip 14 KB ZIP
AR# 72614
日期 02/23/2021
状态 Active
Type 综合文章
Tools
People Also Viewed