[Bug 7767] Zero G Software 'InstallAnywhere' installers crash or silently exit (Rosetta Stone, Reading Counts, World Religions, Parashara's Light Professional 7.0.1)

WineHQ Bugzilla wine-bugs at winehq.org
Mon Nov 30 07:46:01 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=7767

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|-unknown                    |oledb32

--- Comment #13 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

revisiting, still present.

After having a deeper look I found the problem ... took almost 14 years :|

It's basically a reincarnation of bug 7881 ("JRE 1.3.1: RuntimeException in
sun.awt.Win32GraphicsDevice.getDefaultPixIDImpl(Native Method)") which was not
properly fixed / validated.

The problem is not easy to spot with the installers because the root cause was
not visible and the late error was just a manifestation of a general problem
much earlier.

After first failure one can run the inner installer and pass additional
arguments (class loader/jni -> more verbosity):

--- snip ---
$ wine "c:\temp\Windows\resource\jre\bin\javaw.exe" \
  -Xms16777216 -Xmx50331648 -verbose:class -verbose:jni \
  -classpath
"c:\temp\InstallerData\IAClasses.zip;c:\temp\Windows\resource\jdglue.zip;c:\temp\InstallerData\Execute.zip;c:\temp\Windows\InstallerData\Execute.zip;c:\temp\InstallerData\Resource1.zip;c:\temp\Windows\InstallerData\Resource1.zip;c:\temp\InstallerData;c:\temp\Windows\InstallerData;"
\
  com.zerog.lax.LAX "c:/temp/Windows/Setup.lax" \
  "C:/users/$USER/Temp/lax29d1.tmp" 
...
[Loaded sun.java2d.SunGraphicsEnvironment from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded sun.awt.Win32GraphicsEnvironment from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Dynamic-linking native method sun.awt.Win32GraphicsEnvironment.initDisplay ...
JNI]
[Loaded java.util.SortedMap from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.util.TreeMap from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded sun.java2d.SunGraphicsEnvironment$1 from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded sun.awt.font.NativeFontWrapper from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Dynamic-linking native method sun.awt.font.NativeFontWrapper.getType1FontVar
... JNI]
[Dynamic-linking native method sun.awt.font.NativeFontWrapper.getFontPath ...
JNI]
[Loaded sun.awt.FontProperties from c:\temp\Windows\resource\jre\lib\rt.jar]
[Dynamic-linking native method java.io.WinNTFileSystem.checkAccess ... JNI]
[Loaded java.util.TreeMap$Entry from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.util.Hashtable$KeySet from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.util.Collections$SynchronizedCollection from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.util.Collections$SynchronizedSet from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.io.FilenameFilter from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded sun.java2d.SunGraphicsEnvironment$TTFilter from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.util.TreeMap$1 from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.util.TreeMap$Iterator from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Dynamic-linking native method
sun.awt.font.NativeFontWrapper.registerCompositeFont ... JNI]
[Dynamic-linking native method sun.awt.Win32GraphicsEnvironment.getNumScreens
... JNI]
[Loaded java.awt.GraphicsDevice from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded sun.awt.Win32GraphicsDevice from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Dynamic-linking native method sun.awt.Win32GraphicsDevice.initIDs ... JNI]
[Dynamic-linking native method
sun.awt.Win32GraphicsEnvironment.getDefaultScreen ... JNI]
[Dynamic-linking native method sun.awt.Win32GraphicsDevice.getDefaultPixIDImpl
... JNI]
[Loaded ZeroGae]
[Loaded ZeroGah]
[Loaded ZeroGny]
[Loaded ZeroGh]
[Loaded ZeroGag]
[Loaded java.lang.UnsatisfiedLinkError from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded com.zerog.ia.platform.SysJD]
[Loaded java.util.Observer from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded ZeroGde]
...
[Loaded java.awt.Cursor from c:\temp\Windows\resource\jre\lib\rt.jar]
[Dynamic-linking native method java.awt.Cursor.initIDs ... JNI]
[Loaded java.awt.geom.Point2D from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.awt.Point from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded sun.awt.GlobalCursorManager from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.awt.AWTEvent from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.awt.ActiveEvent from c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded java.awt.event.InvocationEvent from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Loaded sun.awt.GlobalCursorManager$CursorEvent from
c:\temp\Windows\resource\jre\lib\rt.jar]
[Dynamic-linking native method java.awt.AWTEvent.initIDs ... JNI]
[Dynamic-linking native method java.lang.Throwable.printStackTrace0 ... JNI]
[Loaded com.zerog.ia.installer.IAStatus]
[Loaded ZeroGdk]
[Loaded com.zerog.ia.installer.IAStatusLog]
[Dynamic-linking native method java.io.FileOutputStream.writeBytes ... JNI]
Invocation of this Java Application has caused an InvocationTargetException.
This application will now exit. (LAX)

Stack Trace:
java.lang.NoClassDefFoundError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at java.awt.Toolkit$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Unknown Source)
    at sun.awt.GlobalCursorManager$CursorEvent.<init>(Unknown Source)
    at sun.awt.GlobalCursorManager.<clinit>(Unknown Source)
    at java.awt.Cursor.initIDs(Native Method)
    at java.awt.Cursor.<clinit>(Unknown Source)
    at java.awt.Window.<init>(Unknown Source)
    at java.awt.Frame.<init>(Unknown Source)
    at java.awt.Frame.<init>(Unknown Source)
    at com.zerog.ia.installer.LifeCycleManager.f(DashoA8113)
    at com.zerog.ia.installer.LifeCycleManager.g(DashoA8113)
    at com.zerog.ia.installer.LifeCycleManager.a(DashoA8113)
    at com.zerog.ia.installer.Main.main(DashoA8113)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.zerog.lax.LAX.launch(DashoA8113)
    at com.zerog.lax.LAX.main(DashoA8113)
[Loaded ZeroGa0]
[Loaded ZeroGap]
...
This Application has Unexpectedly Quit: Invocation of this Java Application has
caused an InvocationTargetException. This application will now exit. (LAX)
--- snip ---

I've debugged it (native, no jdb) and at the point before of the java exception
the class loader couldn't load/resolve 'sun.awt.windows.WToolkit' class for
unknown reasons even though it had been previously loaded.

Suspecting it has something to do with the graphics subsystem I wrote a small
java app and compiled it using a matching JDK.

http://download.oracle.com/otn/java/j2sdk/1.3.0_03/j2sdk-1_3_0_03-win.exe

Stable link via Internet Archive:

https://web.archive.org/web/20201130115841/https://isis-data.science.uva.nl/koelma/horus/third/java/j2sdk-1_3_0_03-win.exe

--- snip ---
// compile:  wine "c:\\jdk1.3.0_03\\bin\\javac.exe" -g GraphicsTest.java
// run:      wine "c:\\jdk1.3.0_03\\bin\\java.exe" GraphicsTest

import java.awt.*;

public class GraphicsTest {

    public static void main(String[] args) {

        GraphicsEnvironment ge = GraphicsEnvironment.
                getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        for (int j = 0; j < gs.length; j++) {

            System.err.println("Getting config for " + gs[j].getIDstring());
            long startTime = System.currentTimeMillis() ;
            GraphicsConfiguration[] gc = gs[j].getConfigurations();
            System.err.println("Finished in " + (System.currentTimeMillis() -
startTime) + " milliseconds");
        }
    }
}
--- snip ---

Voila:

--- snip ---
$ wine "c:\\jdk1.3.0_03\\bin\\java.exe" GraphicsTest

Getting config for \Display0
Exception in thread "main" java.lang.RuntimeException:
Unable to create a suitable default GraphicsConfiguration.  Try changing your
Display Settings.
        at sun.awt.Win32GraphicsDevice.getDefaultPixID(Native Method)
        at
sun.awt.Win32GraphicsDevice.getConfigurations(Win32GraphicsDevice.java:73)
        at GraphicsTest.main(GraphicsTest.java:17)
--- snip ---

A surprise indeed as this should have been fixed a long time ago.

Looking at sources (might not fully match the old Sun JRE but:

https://github.com/srisatish/openjdk/blob/6ffc2d129dbe05c358663364e705393c2d7322a1/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp#L914

--- snip ---
...

/**
 * End of static deviceIndex-based methods
 */


    const DWORD REQUIRED_FLAGS = (   //Flags which must be set in
     PFD_SUPPORT_GDI |               //in the PixelFormatDescriptor.
     PFD_DRAW_TO_WINDOW);            //Used to choose the default config
                                     //and to check formats in
                                     //isPixFmtSupported()
...

/*
 * Class:     sun_awt_Win32GraphicsDevice
 * Method:    isPixFmtSupported
 * Signature: (I)Z
 */

JNIEXPORT jboolean JNICALL Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported
    (JNIEnv* env, jobject theThis, jint pixFmtID, jint screen) {
        TRY;
    jboolean suppColor = JNI_TRUE;
    HDC hDC = AwtWin32GraphicsDevice::GetDCFromScreen(screen);

    if (pixFmtID == 0) {
        return true;
    }

    PIXELFORMATDESCRIPTOR pfd;
    int max = ::DescribePixelFormat(hDC, (int)pixFmtID,
        sizeof(PIXELFORMATDESCRIPTOR), &pfd);
    DASSERT(max);

    //Check for supported ColorModel
    if ((pfd.cColorBits < 8) ||
       ((pfd.cColorBits == 8) && (pfd.iPixelType != PFD_TYPE_COLORINDEX))) {
        //Note: this still allows for PixelFormats with > 8 color bits
        //which use COLORINDEX instead of RGB.  This seems to work fine,
        //although issues may crop up involving PFD_NEED_PALETTE, which
        //is not currently taken into account.
        //If changes are made, they should also be reflected in
        //getDefaultPixID.
        suppColor = JNI_FALSE;
    }

    if (hDC != NULL) {
        VERIFY(::DeleteDC(hDC));
        hDC = NULL;
    }
    return (((pfd.dwFlags & REQUIRED_FLAGS) == REQUIRED_FLAGS) && suppColor) ?
     JNI_TRUE : JNI_FALSE;
        CATCH_BAD_ALLOC_RET(FALSE);
}

/*
 * Class:     sun_awt_Win32GraphicsDevice
 * Method:    getDefaultPixIDImpl
 * Signature: (I)I
 */

JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getDefaultPixIDImpl
    (JNIEnv* env, jobject theThis, jint screen) {
        TRY;
    int pixFmtID = 0;
    HDC hDC = AwtWin32GraphicsDevice::GetDCFromScreen(screen);

    PIXELFORMATDESCRIPTOR pfd = {
        sizeof(PIXELFORMATDESCRIPTOR),
        1,               //version
        REQUIRED_FLAGS,  //flags
        0,               //iPixelType
        0,               //cColorBits
        0,0,0,0,0,0,0,0, //cRedBits, cRedShift, green, blue, alpha
        0,0,0,0,0,       //cAccumBits, cAccumRedBits, green, blue, alpha
        0,0,0,0,0,0,0,0  //etc.
    };

    //If 8-bit mode, must use Indexed mode
    if (8 == ::GetDeviceCaps(hDC, BITSPIXEL)) {
        pfd.iPixelType = PFD_TYPE_COLORINDEX;
    }

    pixFmtID = ::ChoosePixelFormat(hDC, &pfd);
    if (pixFmtID == 0) {
        //Return 0 if GDI call fails.
        if (hDC != NULL) {
            VERIFY(::DeleteDC(hDC));
            hDC = NULL;
        }
        return pixFmtID;
    }

    if (JNI_FALSE == Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported(
     env, theThis, pixFmtID, screen)) {
        /* Can't find a suitable pixel format ID.  Fall back on 0. */
        pixFmtID = 0;
    }

    VERIFY(::DeleteDC(hDC));
    hDC = NULL;
    return (jint)pixFmtID;
        CATCH_BAD_ALLOC_RET(0);
}

...
--- snip ---

nvidia:

--- snip ---
$ WINEDEBUG=+seh,+x11drv,+wgl,+winediag wine "c:\\jdk1.3.0_03\\bin\\java.exe"
GraphicsTest >>log_nvidia.txt 2>&1
...
0338:trace:wgl:init_pixel_formats Found onscreen format FBCONFIG_ID 0x14b
corresponding to iPixelFormat 5 at GLX index 4
0338:trace:wgl:init_pixel_formats Found bitmap capable format FBCONFIG_ID 0x14b
corresponding to iPixelFormat 6 at GLX index 4 
...
0338:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 37 type 0
color 32 8,8,8,8 accum 64 depth 24 stencil 8 aux 4 PFD_DOUBLEBUFFER
PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL 
0338:trace:wgl:glxdrv_wglDescribePixelFormat (0x10044,5,40,0x31f988)
0338:trace:wgl:get_pixel_format Returning fmt_id=0x14b for iPixelFormat=5 
...
0338:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 36 type 0
color 24 8,8,8,0 accum 64 depth 24 stencil 8 aux 4 PFD_DRAW_TO_WINDOW
PFD_SUPPORT_OPENGL 
0338:trace:wgl:glxdrv_wglDescribePixelFormat (0x10044,6,40,0x31f988)
0338:trace:wgl:get_pixel_format Returning fmt_id=0x14b for iPixelFormat=6
0338:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 124 type 0
color 24 8,8,8,0 accum 64 depth 24 stencil 8 aux 4 PFD_DRAW_TO_WINDOW
PFD_DRAW_TO_BITMAP PFD_GENERIC_FORMAT PFD_SUPPORT_GDI PFD_SUPPORT_OPENGL 
0338:trace:wgl:wglChoosePixelFormat PFD_DRAW_TO_BITMAP mismatch for
iPixelFormat=6
...
0338:trace:wgl:wglChoosePixelFormat returning 5
0338:trace:wgl:glxdrv_wglDescribePixelFormat (0x10045,5,40,0x31f99c)
0338:trace:wgl:get_pixel_format Returning fmt_id=0x14b for iPixelFormat=5
0338:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 36 type 0
color 24 8,8,8,0 accum 64 depth 24 stencil 8 aux 4 PFD_DRAW_TO_WINDOW
PFD_SUPPORT_OPENGL 
java.lang.RuntimeException: 
Unable to create a suitable default GraphicsConfiguration.  Try changing your
Display Settings.
    at sun.awt.Win32GraphicsDevice.getDefaultPixID(Native Method)
    at
sun.awt.Win32GraphicsDevice.getConfigurations(Win32GraphicsDevice.java:73)
    at GraphicsTest.main(GraphicsTest.java:13)
Exception in thread "main" 
--- snip ---

Intel/Mesa:

--- snip ---
$ WINEDEBUG=+seh,+x11drv,+wgl,+winediag wine "c:\\jdk1.3.0_03\\bin\\java.exe"
GraphicsTest >>log_mesa.txt 2>&1
...
035c:trace:wgl:init_pixel_formats Found onscreen format FBCONFIG_ID 0x264
corresponding to iPixelFormat 2 at GLX index 5
...
035c:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 37 type 0
color 32 8,8,8,8 accum 0 depth 0 stencil 0 aux 0 PFD_DOUBLEBUFFER
PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL 
035c:trace:wgl:glxdrv_wglDescribePixelFormat (0x10044,2,40,0x31f988)
035c:trace:wgl:get_pixel_format Returning fmt_id=0x264 for iPixelFormat=2
...
035c:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 124 type 0
color 32 8,8,8,8 accum 0 depth 0 stencil 0 aux 0 PFD_DRAW_TO_WINDOW
PFD_DRAW_TO_BITMAP PFD_GENERIC_FORMAT PFD_SUPPORT_GDI PFD_SUPPORT_OPENGL 
035c:trace:wgl:wglChoosePixelFormat PFD_DRAW_TO_BITMAP mismatch for
iPixelFormat=3
035c:trace:wgl:glxdrv_wglDescribePixelFormat (0x10044,4,40,0x31f988)
035c:trace:wgl:get_pixel_format Returning fmt_id=0x265 for iPixelFormat=4
...
035c:trace:wgl:wglChoosePixelFormat returning 2
035c:trace:wgl:glxdrv_wglDescribePixelFormat (0x10045,2,40,0x31f99c)
035c:trace:wgl:get_pixel_format Returning fmt_id=0x264 for iPixelFormat=2
035c:trace:wgl:dump_PIXELFORMATDESCRIPTOR size 40 version 1 flags 36 type 0
color 32 8,8,8,8 accum 0 depth 0 stencil 0 aux 0 PFD_DRAW_TO_WINDOW
PFD_SUPPORT_OPENGL 
java.lang.RuntimeException: 
Unable to create a suitable default GraphicsConfiguration.  Try changing your
Display Settings.
    at sun.awt.Win32GraphicsDevice.getDefaultPixID(Native Method)
    at
sun.awt.Win32GraphicsDevice.getConfigurations(Win32GraphicsDevice.java:73)
    at GraphicsTest.main(GraphicsTest.java:13)
Exception in thread "main" 
--- snip --- 

https://source.winehq.org/git/wine.git/blob/cbca9f847f60773b4e7e5408f6a079f4896c5c1e:/include/wingdi.h#l90

--- snip ---
...
  90 #define PFD_DOUBLEBUFFER          0x00000001
  91 #define PFD_STEREO                0x00000002
  92 #define PFD_DRAW_TO_WINDOW        0x00000004
  93 #define PFD_DRAW_TO_BITMAP        0x00000008
  94 #define PFD_SUPPORT_GDI           0x00000010
  95 #define PFD_SUPPORT_OPENGL        0x00000020
  96 #define PFD_GENERIC_FORMAT        0x00000040
...
--- snip ---

To recap from above JDK snippets:

--- snip ---
    PIXELFORMATDESCRIPTOR pfd = {
        sizeof(PIXELFORMATDESCRIPTOR),
        1,               //version
        REQUIRED_FLAGS,  //flags
        0,               //iPixelType
        0,               //cColorBits
        0,0,0,0,0,0,0,0, //cRedBits, cRedShift, green, blue, alpha
        0,0,0,0,0,       //cAccumBits, cAccumRedBits, green, blue, alpha
        0,0,0,0,0,0,0,0  //etc.
    };
--- snip --

REQUIRED_FLAGS = PFD_SUPPORT_GDI (16) | PFD_DRAW_TO_WINDOW (4) = 20 = 0x14

https://source.winehq.org/git/wine.git/blob/cbca9f847f60773b4e7e5408f6a079f4896c5c1e:/dlls/opengl32/wgl.c#l448

--- snip ---
 448 /***********************************************************************
 449  *              wglChoosePixelFormat (OPENGL32.@)
 450  */
 451 INT WINAPI wglChoosePixelFormat(HDC hdc, const PIXELFORMATDESCRIPTOR*
ppfd)
 452 {
 453     PIXELFORMATDESCRIPTOR format, best;
 454     int i, count, best_format;
 455     int bestDBuffer = -1, bestStereo = -1;
 456 
 457     TRACE_(wgl)( "%p %p: size %u version %u flags %u type %u color %u
%u,%u,%u,%u "
 458                  "accum %u depth %u stencil %u aux %u\n",
 459                  hdc, ppfd, ppfd->nSize, ppfd->nVersion, ppfd->dwFlags,
ppfd->iPixelType,
 460                  ppfd->cColorBits, ppfd->cRedBits, ppfd->cGreenBits,
ppfd->cBlueBits, ppfd->cAlphaBits,
 461                  ppfd->cAccumBits, ppfd->cDepthBits, ppfd->cStencilBits,
ppfd->cAuxBuffers );
 462 
 463     count = wglDescribePixelFormat( hdc, 0, 0, NULL );
 464     if (!count) return 0;
 465 
 466     best_format = 0;
 467     best.dwFlags = 0;
 468     best.cAlphaBits = -1;
 469     best.cColorBits = -1;
 470     best.cDepthBits = -1;
 471     best.cStencilBits = -1;
 472     best.cAuxBuffers = -1;
 473 
 474     for (i = 1; i <= count; i++)
 475     {
 476         if (!wglDescribePixelFormat( hdc, i, sizeof(format), &format ))
continue;
 477 
 478         if ((ppfd->iPixelType == PFD_TYPE_COLORINDEX) !=
(format.iPixelType == PFD_TYPE_COLORINDEX))
 479         {
 480             TRACE( "pixel type mismatch for iPixelFormat=%d\n", i );
 481             continue;
 482         }
 483 
 484         /* only use bitmap capable for formats for bitmap rendering */
 485         if( (ppfd->dwFlags & PFD_DRAW_TO_BITMAP) != (format.dwFlags &
PFD_DRAW_TO_BITMAP))
 486         {
 487             TRACE( "PFD_DRAW_TO_BITMAP mismatch for iPixelFormat=%d\n", i
);
 488             continue;
 489         }
...
 590         if (ppfd->cAuxBuffers)
 591         {
 592             if (((ppfd->cAuxBuffers > best.cAuxBuffers) &&
(format.cAuxBuffers > best.cAuxBuffers)) ||
 593                 ((format.cAuxBuffers >= ppfd->cAuxBuffers) &&
(format.cAuxBuffers < best.cAuxBuffers)))
 594                 goto found;
 595 
 596             if (best.cAuxBuffers != format.cAuxBuffers)
 597             {
 598                 TRACE( "aux mismatch for iPixelFormat=%d\n", i );
 599                 continue;
 600             }
 601         }
 602         continue;
 603 
 604     found:
 605         best_format = i;
 606         best = format;
 607         bestDBuffer = format.dwFlags & PFD_DOUBLEBUFFER;
 608         bestStereo = format.dwFlags & PFD_STEREO;
 609     }
 610 
 611     TRACE( "returning %u\n", best_format );
 612     return best_format;
 613 }
--- snip ---

I think if 'PFD_SUPPORT_GDI' flag is passed to 'wglChoosePixelFormat' and the
available pixelformat doesn't support 'PFD_SUPPORT_GDI' it should skip the
format as candidate (no match) -> resulting in Java pixFmtID == 0 case (uses
fallback).

I've tested this and it made the installer(s) work.

I'm not an expert on this topic though, maybe one Wine x11/opengl dev has an
idea what's the correct way.

This will fix the startup of various installers using Java/AWT.

$ wine --version
wine-5.22

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list