Cannot create window: X Error - serial: 34, error_code: BadMatch


Feb 8, 2007 9:40:43 AM com.jme.app.BaseGame start
INFO: Application started.
Feb 8, 2007 9:40:43 AM com.jme.system.PropertiesIO <init>
INFO: PropertiesIO created
Feb 8, 2007 9:40:43 AM com.jme.system.PropertiesIO load
INFO: Read properties
Feb 8, 2007 9:40:45 AM com.jme.input.joystick.DummyJoystickInput <init>
INFO: Joystick support is disabled
Feb 8, 2007 9:40:45 AM com.jme.system.lwjgl.LWJGLDisplaySystem <init>
INFO: LWJGL Display System created.
Feb 8, 2007 9:40:45 AM com.jme.system.PropertiesIO save
INFO: Saved properties
Feb 8, 2007 9:40:45 AM com.jme.app.BaseSimpleGame initSystem
INFO: jME version 0.11 beta
Feb 8, 2007 9:40:45 AM com.jme.system.lwjgl.LWJGLDisplaySystem initDisplay
SEVERE: Cannot create window
com.jme.system.JmeException: Cannot create window: X Error - serial: 34, error_code: BadMatch (invalid parameter attributes), request_code: 42, minor_code: 0
at com.jme.system.lwjgl.LWJGLDisplaySystem.initDisplay(LWJGLDisplaySystem.java:394)
at com.jme.system.lwjgl.LWJGLDisplaySystem.createWindow(LWJGLDisplaySystem.java:141)
at com.jme.app.BaseSimpleGame.initSystem(BaseSimpleGame.java:338)
at com.jme.app.BaseGame.start(BaseGame.java:52)
at test.jme.demo5.Demo5.main(Demo5.java:31)


It's happening since my last "svn update", yesterday morning. I'm not sure if the "update" is the reason.
Such error occurs in any jME demo, personal apps, everything...
I was looking in the jME source.
It happens when the display tries to create the window, as we could see in the following jME function:


    private void initDisplay() {
        // create the Display.
        DisplayMode mode = selectMode();
        PixelFormat format = getFormat();
        if ( null == mode ) {
            throw new JmeException( "Bad display mode" );
        }

        try {
            Display.setDisplayMode( mode );
            Display.setFullscreen( fs );
            if ( !fs ) {
                int x, y;
                x = ( Toolkit.getDefaultToolkit().getScreenSize().width - width ) >> 1;
                y = ( Toolkit.getDefaultToolkit().getScreenSize().height - height ) >> 1;
                Display.setLocation( x, y );
            }
            Display.create( format );
            // kludge added here... LWJGL does not properly clear their
            // keyboard and mouse buffers when you call the destroy method,
            // so if you run two jme programs in the same jvm back to back
            // the second one will pick up the esc key used to exit out of
            // the first.
            Keyboard.poll();
            Mouse.poll();

        } catch ( Exception e ) {
            // System.exit(1);
            LoggingSystem.getLogger().log( Level.SEVERE, "Cannot create window" );
            LoggingSystem.getLogger().throwing( this.getClass().toString(),
                    "initDisplay()", e );
            throw new JmeException( "Cannot create window: " + e.getMessage() );
        }
    }


The problem seems to be LWJGL, I didn't tried to debug it.
Some clue?

Maybe it's caused by the fact we use a newer LWJGL… can you try the LWJGL examples on their website?

I ran some demos using javaws.

The "WindowCreationTest" demo from LWJGL doesn't work properly, I guess.

It shows a black window very quickly and die with no errors.

However, "Space Invaders" works normally.

WindowCreationTest.java



The following keys are available:
ESCAPE: Exit test
ARROW Keys: Move window when in non-fullscreen mode
L: List selectable display modes
0-8: Selection of display modes
F: Toggle fullscreen
SHIFT-F: Toggle fullscreen with Display.destroy()/create() cycle
Found 30 display modes
Problem retrieving mode with 640x480x16@-1
Problem retrieving mode with 640x480x32@-1
Problem retrieving mode with 800x600x16@-1
Problem retrieving mode with 800x600x32@-1
Problem retrieving mode with 1024x768x16@-1
Problem retrieving mode with 1024x768x32@-1
org.lwjgl.LWJGLException: X Error - serial: 34, error_code: BadMatch (invalid parameter attributes), request_code: 42, minor_code: 0
at org.lwjgl.opengl.LinuxDisplay.nCreateWindow(Native Method)
at org.lwjgl.opengl.LinuxDisplay.createWindow(LinuxDisplay.java:393)
at org.lwjgl.opengl.Display.createWindow(Display.java:261)
at org.lwjgl.opengl.Display.create(Display.java:703)
at org.lwjgl.opengl.Display.create(Display.java:657)
at org.lwjgl.opengl.Display.create(Display.java:641)
at WindowCreationTest.initialize(WindowCreationTest.java:90)
at WindowCreationTest.main(WindowCreationTest.java:282)


DisplayTest.java


==== Test Current ====
Info about current:
Graphics card: null, version: null
Resolution: 1280x1024x24@75Hz
---- Test Current ----
==== Test query ====
Retrieving available displaymodes
Found 30 modes
The first 5 are:
640 x 400 x 24 @60Hz
1280 x 1024 x 24 @75Hz
320 x 200 x 24 @75Hz
640 x 480 x 24 @72Hz
640 x 480 x 24 @75Hz
1152 x 864 x 24 @75Hz
---- Test query ----
==== Test setDisplayMode ====
Retrieving available displaymodes
Looking for 640x480...found!
Changing to mode...error
FATAL: Error setting mode

Fixed…

The "02 Feb 2007 02:00:00 +0000 (Date)" version is working.

I'm getting this error also.  I'm on a MacBook Pro.  On this system, all the LWJGL display modes have a frequency of 0.



In LWGJLDisplaySystem.getValidDisplayMode(), the mode search is looking for an exact freq match when the request freq != 0, as is the case with the default frequency.  This seems rather constraining.  In fact, I'm not sure why it tries to match freq, as opposed to selecting the highest freq that matches width, height, and bits per pixel.





Anm

Here is my patch…  Extra logging because it is a one-time operation with big implications if it fails…


//        for ( int i = 0; i < modes.length; i++ ) {
//            if ( modes[i].getWidth() == width && modes[i].getHeight() == height
//                    && modes[i].getBitsPerPixel() == bpp
//                    && ( freq == 0 || modes[i].getFrequency() == freq ) ) {
//
//                return modes[i];
//            }
//        }
//
//        return null; // none found;

        java.util.logging.Logger log = LoggingSystem.getLogger();
        int best_match = -1; // looking for request size/bpp followed by exact or highest freq
        int match_freq = -1;
        for (int i = 0; i < modes.length; i++) {
            if (modes[i].getWidth() != width) {
                log.fine( "DisplayMode " + modes[i] + ": Width != " + width );
                continue;
            }
            if (modes[i].getHeight() != height) {
                log.fine( "DisplayMode " + modes[i] + ": Height != " + height );
                continue;
            }
            if (modes[i].getBitsPerPixel() != bpp) {
                log.fine( "DisplayMode " + modes[i] + ": Bits per pixel != " + bpp );
                continue;
            }
            if (best_match == -1) {
                log.fine( "DisplayMode " + modes[i] + ": Match! " );
                best_match = i;
                match_freq = modes[i].getFrequency();
            } else {
                int cur_freq = modes[i].getFrequency();
                if( match_freq!=freq &&          // Previous is not a perfect match
                    ( cur_freq == freq ||        // Current is perfect match
                      match_freq < cur_freq ) )  //      or is higher freq
                {
                    log.fine( "DisplayMode " + modes[i] + ": Better match!" );
                    best_match = i;
                    match_freq = cur_freq;
                }
            }
        }

        if (best_match == -1)
            return null; // none found;
        else
            return modes[best_match];

Cool, I'll have a look at this and integrate.

I'm back :slight_smile: Glad you're helping Anm and renanse.

Anm's patch doesn't fix the problem here. It's still happening when [red]com.jme.system.lwjgl.LWJGLDisplaySystem.initDisplay[/red] calls [red]Display.create(format)[/red]

Take a look on this:



$ cat properties.cfg
#Properties
#Wed Feb 21 15:22:40 BRT 2007
FREQ=60
RENDERER=LWJGL
WIDTH=1024
HEIGHT=768
DEPTH=24
FULLSCREEN=false




$ grep "FINE: " debug.txt
FINE: DisplayMode 640 x 400 x 24 @60Hz: Width != 1024
FINE: DisplayMode 1280 x 1024 x 24 @75Hz: Width != 1024
FINE: DisplayMode 320 x 200 x 24 @75Hz: Width != 1024
FINE: DisplayMode 640 x 480 x 24 @72Hz: Width != 1024
FINE: DisplayMode 640 x 480 x 24 @75Hz: Width != 1024
FINE: DisplayMode 1152 x 864 x 24 @75Hz: Width != 1024
FINE: DisplayMode 1280 x 1024 x 24 @70Hz: Width != 1024
FINE: DisplayMode 1152 x 864 x 24 @70Hz: Width != 1024
FINE: DisplayMode 800 x 600 x 24 @60Hz: Width != 1024
FINE: DisplayMode 320 x 240 x 24 @60Hz: Width != 1024
FINE: DisplayMode 800 x 600 x 24 @56Hz: Width != 1024
FINE: DisplayMode 400 x 300 x 24 @60Hz: Width != 1024
FINE: DisplayMode 1024 x 768 x 24 @60Hz: Match!
FINE: DisplayMode 400 x 300 x 24 @75Hz: Width != 1024
FINE: DisplayMode 1152 x 864 x 24 @43Hz: Width != 1024
FINE: DisplayMode 1280 x 1024 x 24 @43Hz: Width != 1024
FINE: DisplayMode 1152 x 864 x 24 @47Hz: Width != 1024
FINE: DisplayMode 1280 x 1024 x 24 @47Hz: Width != 1024
FINE: DisplayMode 640 x 400 x 24 @75Hz: Width != 1024
FINE: DisplayMode 1280 x 1024 x 24 @60Hz: Width != 1024
FINE: DisplayMode 320 x 200 x 24 @60Hz: Width != 1024
FINE: DisplayMode 800 x 600 x 24 @70Hz: Width != 1024
FINE: DisplayMode 640 x 480 x 24 @60Hz: Width != 1024
FINE: DisplayMode 1152 x 864 x 24 @60Hz: Width != 1024
FINE: DisplayMode 800 x 600 x 24 @72Hz: Width != 1024
FINE: DisplayMode 800 x 600 x 24 @75Hz: Width != 1024
FINE: DisplayMode 320 x 240 x 24 @75Hz: Width != 1024




Feb 21, 2007 3:22:34 PM com.jme.app.BaseGame start
INFO: Application started.
Feb 21, 2007 3:22:34 PM com.jme.system.PropertiesIO <init>
INFO: PropertiesIO created
Feb 21, 2007 3:22:34 PM com.jme.system.PropertiesIO load
WARNING: Could not load properties. Creating a new one.
Feb 21, 2007 3:22:40 PM com.jme.input.joystick.DummyJoystickInput <init>
INFO: Joystick support is disabled
Feb 21, 2007 3:22:40 PM com.jme.system.lwjgl.LWJGLDisplaySystem <init>
INFO: LWJGL Display System created.
Feb 21, 2007 3:22:40 PM com.jme.system.PropertiesIO save
INFO: Saved properties
Feb 21, 2007 3:22:40 PM com.jme.app.BaseSimpleGame initSystem
INFO: jME version 0.11 beta
Feb 21, 2007 3:22:40 PM com.jme.system.lwjgl.LWJGLDisplaySystem initDisplay
SEVERE: Cannot create window
com.jme.system.JmeException: Cannot create window: X Error - serial: 34, error_code: BadMatch (invalid parameter attributes), request_code: 42, minor_code: 0
   at com.jme.system.lwjgl.LWJGLDisplaySystem.initDisplay(LWJGLDisplaySystem.java:433)
   at com.jme.system.lwjgl.LWJGLDisplaySystem.createWindow(LWJGLDisplaySystem.java:141)
   at com.jme.app.BaseSimpleGame.initSystem(BaseSimpleGame.java:338)
   at com.jme.app.BaseGame.start(BaseGame.java:52)
   at arcadia.TGameMain.main(TGameMain.java:24)



I'm using the HEAD revision from CVS.

Right. I've been testing it on different machines and systems, and it's working at all, except in my work machine.

Every project depending on LWJGL don't work due to the same problem. I guess the problem can be the video driver (fglrx), altough, I'm not sure.

On my macosx, the same projects are working perfectly.

And tests with Ubuntu in the same machine (but with fglrx 8.34.08) also worked.



Work machine/system configuration (useless data removed)


$ uname -a
Linux devel 2.6.18-2-686 #1 SMP Wed Nov 8 19:52:12 UTC 2006 i686 GNU/Linux

$ lsmod
fglrx                 396940  8
agpgart                29896  1 fglrx

$ fglrxinfo
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON X600 PRO Generic
OpenGL version string: 2.0.6011 (8.28.8)

$ /sbin/modinfo fglrx
filename:       /lib/modules/2.6.18-2-686/misc/fglrx.ko
author:         Fire GL - ATI Research GmbH, Germany
description:    ATI Fire GL
license:        Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY
vermagic:       2.6.18-2-686 SMP mod_unload 686 REGPARM gcc-4.1
depends:        agpgart
parm:           firegl:charp

# lspci -vv
01:00.0 VGA compatible controller: ATI Technologies Inc RV380 [Radeon X600 (PCIE)] (prog-if 00 [VGA])
        Subsystem: ATI Technologies Inc Unknown device 0b02
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 169
        Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Region 2: Memory at fe9e0000 (64-bit, non-prefetchable) [size=64K]
        Region 4: I/O ports at dc00 [size=256]
        Expansion ROM at fea00000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [58] Express Endpoint IRQ 0
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag+
                Device: Latency L0s <128ns, L1 <2us
                Device: AtnBtn- AtnInd- PwrInd-
                Device: Errors: Correctable- Non-Fatal+ Fatal+ Unsupported-
                Device: RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
                Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
                Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s L1, Port 0
                Link: Latency L0s <128ns, L1 <1us
                Link: ASPM Disabled RCB 64 bytes CommClk+ ExtSynch-
                Link: Speed 2.5Gb/s, Width x16
        Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
                Address: 0000000000000000  Data: 0000
        Capabilities: [100] Advanced Error Reporting

01:00.1 Display controller: ATI Technologies Inc RV380 [Radeon X600]
        Subsystem: ATI Technologies Inc Unknown device 0b03
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 0, Cache Line Size: 64 bytes
        Region 0: Memory at fe9f0000 (64-bit, non-prefetchable) [size=64K]
        Capabilities: [50] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [58] Express Endpoint IRQ 0
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-
                Device: Latency L0s <128ns, L1 <2us
                Device: AtnBtn- AtnInd- PwrInd-
                Device: Errors: Correctable- Non-Fatal+ Fatal+ Unsupported-
                Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
                Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s L1, Port 0
                Link: Latency L0s <128ns, L1 <1us
                Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
                Link: Speed 2.5Gb/s, Width x16

# cat xorg.conf
Section "Module"
        Load    "i2c"
        Load    "bitmap"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "type1"
        Load    "vbe"
EndSection

Section "Device"
        Identifier      "Generic Video Card"
        Driver          "fglrx"
        BusID           "PCI:1:0:0"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "Generic Video Card"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1280x1024" "1024x768"
        EndSubSection
EndSection

Section "DRI"
        Mode    0666
EndSection

$ fgl_glxgears -info
Using GLX_SGIX_pbuffer
GL_RENDERER   = RADEON X600 PRO Generic
GL_VERSION    = 2.0.6011 (8.28.8)
GL_VENDOR     = ATI Technologies Inc.
GL_EXTENSIONS = GL_ARB_multitexture GL_EXT_texture_env_add GL_EXT_compiled_vertex_array GL_S3_s3tc GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_multisample GL_ARB_occlusion_query GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_blend GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ARB_draw_buffers GL_ATI_draw_buffers GL_ATI_element_array GL_ATI_envmap_bumpmap GL_ATI_fragment_shader GL_ATI_map_object_buffer GL_ATI_separate_stencil GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_ATI_texture_mirror_once GL_ATI_vertex_array_object GL_ATI_vertex_attrib_array_object GL_ATI_vertex_streams GL_ATIX_texture_env_combine3 GL_ATIX_texture_env_route GL_ATIX_vertex_shader_output_point_size GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_object GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_EXT_texgen_reflection GL_EXT_texture3D GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_vertex_array GL_EXT_vertex_shader GL_HP_occlusion_test GL_NV_blend_square GL_NV_occlusion_query GL_NV_texgen_reflection GL_SGI_color_matrix GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays
2163 frames in 5.0 seconds = 432.600 FPS
2374 frames in 5.0 seconds = 474.800 FPS


I think this bug has been fixed in LWJGL svn by elias - check the IRC logs: http://echelog.matzon.dk/logs/browse/lwjgl/1172260313 at [07:35:36]

Hi, anyone know how to fix it? Which version fix this problem?



I am trying with:

LWGL: 1.4 and 2.0

JMonkey: 1.0

Linux Ubuntu 7.04 with Compiz

Graphic Card: Intel

JDK 6


  • This error appear when I run HelloWorld example of JME.



    org.lwjgl.LWJGLException: X Error - serial: 460, error_code: BadMatch (invalid parameter attributes), request_code: 42, minor_code: 0



    com.jme.system.JmeException: Cannot create window: X Error - serial: 460, error_code: BadMatch (invalid parameter attributes), request_code: 42, minor_code: 0




  • WindowCreationTest.main(args); of LWJGL return:



    Found 4 display modes

    Problem retrieving mode with 640x480x16@-1

    Problem retrieving mode with 640x480x32@-1

    Problem retrieving mode with 800x600x16@-1

    Problem retrieving mode with 800x600x32@-1

    Problem retrieving mode with 1024x768x16@-1

    Problem retrieving mode with 1024x768x32@-1



    Thanks in advance.

Hmm, ok I'd never heard of such a requirement (swing dialog must be created from awt thread) before.  It will take a little rejiggering to move all the gl calls out to the main thread (the only one done currently is the display mode validation since the rest was being done in the constructor and such called from main.)


More from me…  I've managed to make some time tonight to implement and test a fix for moving all GL commands back to the main thread and starting the dialog with the awt EventQueue.  I've tested it successfully locally, so let's see how it runs on other people's machines.  Run a test like jmetest.shape.TestTube to validate.  Part of the code (display mode validation) is not used if you are not running full screen, so please test windowed and full screen. 



Committing to cvs now…

I got the same exception with the last version of CVS and running:



java -Djava.library.path=…/lwjgl-2.0a3/native/linux -cp .:jmetest.jar:jme-awt.jar:jme-collada.jar:jme-editors.jar:jme-effects.jar:jme-font.jar:jme-gamestates.jar:jme.jar:jme-model.jar:jme-scene.jar:jme-terrain.jar:jme-xml.jar:jme-audio.jar:…/lwjgl-2.0a3/jar/jinput.jar:…/lwjgl-2.0a3/jar/lwjgl.jar:…/lwjgl-2.0a3/jar/lwjgl_util_applet.jar:…/lwjgl-2.0a3/jar/lwjgl_util.jar jmetest.shape.TestTube



But when I select fullscreen + 640x480 + 24 bpp so I can see the tube…



thanks by attention

Well, swing/gl threading is eliminated, so it's a display issue only.



Anyhow, so only windowed mode is not working for you?

I will tell all that I have tested.



Windowed 640x480, 24 bpp, LWJGL: Cannot create window: X Error

Windowed 640x480, 16 bpp, LWJGL: Cannot create window: X Error

Windowed 800x600, 24 bpp, LWJGL: Cannot create window: X Error

Windowed 640x480, 24 bpp, dummy: NullPointerException



Fullscreen 640x480, 24 bpp, LWJGL: Cannot create window: X Error but I see the tube, also appears a combo box*

Fullscreen 1280x768, 24 bpp, LWJGL: Cannot create window: X Error but I see the tube, also appears a combo box*

Fullscreen 640x480, 24 bpp, dummy: Cannot create window: X Error, I DONT see the tube, and appears a combo box*



*combo box: your monitor claims to not support the display mode you've selected. The combination of bit depth and refresh rate is not supported.



thanks in advance

Hmm, can you take that back to the lwjgl folks?  The suggestions they had have all been implemented to seemingly no avail.