Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

Full screen startup problem Windows 10

For test results, bug reports, announcements of new builds etc.

Moderators: winston, another_commander, Getafix

Post Reply
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Full screen startup problem Windows 10

Post by phkb »

I've been noticing this for a while since my laptop was updated to Windows 10 (64bit). When I start the game in full screen mode I very briefly see the start screen before the entire screen goes black. If I then use Alt-Tab to switch to another window the Oolite screen clears and everything is fine.

I just tried this on my bigger home computer (also Windows 10 64bit) and the same thing happens. No errors are reported. This seems to happen with 1.82 and 1.83
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6568
Joined: Wed Feb 28, 2007 7:54 am

Re: Full screen startup problem Windows 10

Post by another_commander »

Can you try with 1.80 also? And post logs from both systems if possible? If you start windowed and switch to full screen with F12, does it do the same?

I don't have Windows 10 to test, but my guess on this one would be drivers.
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Full screen startup problem Windows 10

Post by phkb »

I'll get back later tonight with the results
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Full screen startup problem Windows 10

Post by phkb »

OK, here's the results from 1.80. It started in windowed-mode. When I pressed F12 to go full-screen the same things happened - black screen until I Alt-Tabbed away and back again. Here's the log:

Code: Select all

Opening log for Oolite version 1.80 (x86-64) under Windows 6.2.9200  64-bit at 2016-05-12 18:32:47 +1000.
4 processors detected.
Build options: OpenAL, new planets.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

18:32:47.393 [dataCache.notFound]: No data cache found, starting from scratch.
18:32:47.675 [display.mode.list.native]: Windows native resolution detected: 1600 x 900
18:32:48.002 [joystick.init]: Number of joysticks detected: 0
18:32:48.002 [rendering.opengl.version]: OpenGL renderer version: 4.3.0 ("4.3.0 - Build 20.19.15.4331"). Vendor: "Intel". Renderer: "Intel(R) HD Graphics 4400".
18:32:48.003 [rendering.opengl.extensions]: OpenGL extensions (197):
GL_ARB_draw_instanced, GL_ARB_occlusion_query, GL_AMD_vertex_shader_viewport_index, GL_ARB_texture_storage, GL_ARB_sync, GL_ARB_texture_env_dot3, GL_EXT_texture_env_add, GL_ARB_buffer_storage, GL_ARB_texture_multisample, GL_ARB_explicit_uniform_location, GL_ARB_point_parameters, GL_ARB_vertex_array_object, GL_ARB_blend_func_extended, GL_ARB_seamless_cubemap_per_texture, GL_ARB_compressed_texture_pixel_storage, GL_EXT_blend_equation_separate, GL_ARB_texture_stencil8, GL_EXT_texture_snorm, GL_ARB_texture_non_power_of_two, GL_ARB_texture_mirrored_repeat, GL_ARB_debug_output, GL_EXT_multi_draw_arrays, GL_ARB_timer_query, GL_ARB_clip_control, GL_ARB_texture_buffer_range, GL_SGIS_texture_edge_clamp, GL_ARB_vertex_program, GL_EXT_abgr, GL_ARB_draw_buffers_blend, GL_ARB_viewport_array, GL_ARB_shadow, GL_ARB_shader_atomic_counters, GL_ARB_cl_event, GL_NV_primitive_restart, GL_EXT_framebuffer_object, GL_EXT_texture_sRGB, GL_3DFX_texture_compression_FXT1, GL_ARB_shader_storage_buffer_object, GL_ARB_conservative_depth, GL_ARB_get_program_binary, GL_ARB_clear_texture, GL_ARB_multitexture, GL_ARB_shader_image_size, GL_SUN_multi_draw_arrays, GL_ARB_shader_objects, GL_ARB_pixel_buffer_object, GL_EXT_blend_func_separate, GL_EXT_bgra, GL_ARB_vertex_attrib_64bit, GL_ARB_draw_buffers, GL_NV_texgen_reflection, GL_ARB_texture_env_crossbar, GL_ARB_fragment_shader, GL_EXT_texture_swizzle, GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_ARB_texture_compression_rgtc, GL_EXT_transform_feedback, GL_ARB_sample_shading, GL_ARB_seamless_cube_map, GL_ARB_shading_language_420pack, GL_EXT_texture_shared_exponent, GL_WIN_swap_hint, GL_ARB_shader_subroutine, GL_ARB_fragment_shader_interlock, GL_EXT_geometry_shader4, GL_EXT_direct_state_access, GL_EXT_compiled_vertex_array, GL_ARB_copy_image, GL_KHR_debug, GL_ARB_shader_image_load_store, GL_EXT_texture_storage, GL_ARB_vertex_type_2_10_10_10_rev, GL_EXT_separate_specular_color, GL_ARB_shading_language_100, GL_ARB_texture_float, GL_EXT_rescale_normal, GL_EXT_packed_depth_stencil, GL_ARB_texture_swizzle, GL_ARB_half_float_pixel, GL_EXT_texture_compression_s3tc, GL_ARB_occlusion_query2, GL_ARB_texture_rgb10_a2ui, GL_SGIS_texture_lod, GL_ARB_geometry_shader4, GL_ARB_framebuffer_object, GL_NV_conditional_render, GL_ARB_texture_rg, GL_EXT_stencil_two_side, GL_INTEL_map_texture, GL_ARB_color_buffer_float, GL_EXT_blend_color, GL_EXT_texture_rectangle, GL_ARB_vertex_array_bgra, GL_ARB_base_instance, GL_EXT_texture_integer, GL_EXT_texture_array, GL_ARB_fragment_layer_viewport, GL_ARB_shading_language_packing, GL_ARB_fragment_program_shadow, GL_ARB_copy_buffer, GL_ARB_map_buffer_range, GL_ARB_fragment_program, GL_EXT_clip_volume_hint, GL_ARB_tessellation_shader, GL_EXT_draw_buffers2, GL_EXT_texture_lod_bias, GL_EXT_texture_filter_anisotropic, GL_ARB_transform_feedback2, GL_EXT_secondary_color, GL_ARB_ES3_compatibility, GL_ARB_transform_feedback3, GL_EXT_framebuffer_multisample, GL_ARB_window_pos, GL_EXT_texture_env_combine, GL_ARB_texture_compression_bptc, GL_ARB_vertex_shader, GL_ARB_compatibility, GL_SGIS_generate_mipmap, GL_ARB_explicit_attrib_location, GL_EXT_packed_float, GL_ARB_texture_border_clamp, GL_NV_blend_square, GL_ARB_internalformat_query, GL_ARB_arrays_of_arrays, GL_EXT_texture3D, GL_ARB_robust_buffer_access_behavior, GL_ARB_ES2_compatibility, GL_ARB_texture_query_lod, GL_ARB_invalidate_subdata, GL_EXT_texture_sRGB_decode, GL_ARB_texture_compression, GL_ARB_texture_env_add, GL_ARB_provoking_vertex, GL_ARB_framebuffer_no_attachments, GL_EXT_gpu_shader4, GL_ARB_texture_rectangle, GL_EXT_texture_edge_clamp, GL_ARB_multi_draw_indirect, GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_coord_conventions, GL_ARB_separate_shader_objects, GL_ARB_texture_cube_map, GL_ARB_vertex_attrib_binding, GL_ARB_clear_buffer_object, GL_ARB_query_buffer_object, GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_robustness, GL_ARB_point_sprite, GL_INTEL_performance_query, GL_ARB_texture_gather, GL_ARB_texture_buffer_object_rgb32, GL_ARB_internalformat_query2, GL_ARB_depth_texture, GL_ARB_instanced_arrays, GL_EXT_blend_minmax, GL_AMD_vertex_shader_layer, GL_ARB_compute_shader, GL_ARB_enhanced_layouts, GL_ARB_multi_bind, GL_INTEL_fragment_shader_ordering, GL_ARB_framebuffer_sRGB, GL_EXT_shader_integer_mix, GL_EXT_blend_subtract, GL_EXT_packed_pixels, GL_IBM_texture_mirrored_repeat, GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_cube_map_array, GL_EXT_draw_range_elements, GL_ARB_sampler_objects, GL_ARB_half_float_vertex, GL_ARB_shader_precision, GL_ARB_gpu_shader5, GL_ARB_depth_clamp, GL_ARB_texture_storage_multisample, GL_ARB_transpose_matrix, GL_ARB_texture_query_levels, GL_ARB_vertex_buffer_object, GL_ARB_draw_indirect, GL_ARB_transform_feedback_instanced, GL_ARB_texture_view, GL_EXT_polygon_offset_clamp, GL_ARB_texture_env_combine, GL_ARB_indirect_parameters, GL_KHR_blend_equation_advanced, GL_ARB_shader_bit_encoding, GL_EXT_gpu_program_parameters, GL_ARB_program_interface_query, GL_ARB_uniform_buffer_object, GL_ARB_multisample, GL_ARB_stencil_texturing, GL_EXT_shadow_funcs, GL_ARB_depth_buffer_float, GL_ARB_map_buffer_alignment, GL_ARB_gpu_shader_fp64, GL_EXT_stencil_wrap, GL_ATI_separate_stencil
18:32:48.173 [rendering.opengl.shader.support]: Shaders are supported.
18:32:48.174 [dataCache.notFound]: No data cache found, starting from scratch.
18:32:48.174 [searchPaths.dumpAll]: Unrestricted mode - resource paths:
    Resources
    ../AddOns
18:32:48.476 [shipData.load.begin]: Loading ship data.
18:32:49.437 [startup.complete]: ========== Loading complete in 2.03 seconds. ==========
18:32:52.630 [gnustep]: 2016-05-12 18:32:52.630 oolite[12568] Defaults path 'C:\Oolite-1.80/oolite.app/GNUstep/Defaults' did not exist - created it

18:32:52.630 [gnustep]: 2016-05-12 18:32:52.630 oolite[12568] Creating empty user defaults database

18:33:00.704 [exit.context]: Exiting: Exit Game selected on start screen.
18:33:00.704 [gameController.exitApp]: .GNUstepDefaults synchronized.

Closing log at 2016-05-12 18:33:00 +1000.
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Full screen startup problem Windows 10

Post by phkb »

Late news: I have another laptop to experiment on, so I took 1.80 over to it for a fresh install. It worked OK on Windows 10. But here's what I discovered:

Intel HD Graphics 4400 , OpenGL extensions 197 - black screen on start
Intel HD Graphics 4600 , OpenGL extensions 197 - black screen on start
Intel HD Graphics 4000 , OpenGL extensions 169 - OK!

Does that help at all?
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6568
Joined: Wed Feb 28, 2007 7:54 am

Re: Full screen startup problem Windows 10

Post by another_commander »

It does, in the sense that it points to a graphics driver or chip issue rather than a game issue. I wonder what would happen if you installed the corresponding version of the driver with the 169 OpenGL extensions on the other machines that have the problem - my guess would be that it would fix it.

The fact that 1.80 has the same issue as 1.82 and 1.83 on Win10 is another indication that it is probably not a game problem. The code for handling fullscreen switching went under some heavy refactoring between 1.80 and 1.82 in order to make the switching much smoother and quicker. You can note the momentary screen flash and the longer time it takes for 1.80 to switch to fullscreen, but since the reported issue shows up on Win 10 with the older game version, this tells us that, whatever changes were made to that code, were not responsible for what you are experiencing. I guess we can call that good news.

One thing that is not clear to me but could be quite important: When going fullscreen, are you using the native desktop resolution or a different one? Using a fullscreen resolution other than the native desktop one will result in some additional parts of the code to be executed and you can tell because the screen will flash momentarily while switching and there will be a very small delay in the switch.

So, what next? Other than trying the older driver corresponding to the gfx cards on one or both of the machines with the issue, I can only think of attempting to launch the game with the -fullscreen -nosplash parameters, which will bypass plenty of window initialization and will result in a more straightforward startup attempt. See if anything changes there. Alternatively, seeing that you are able to build from source (at least that's my understanding - if I am wrong, you can ignore the upcoming suggestion), try to experiment a bit with the way the full screen window gets setup in - (void) initialiseGLWithSize:(NSSize) v_size useVideoMode:(BOOL) v_mode method in MyOpenGLView.m. Things you can try: forcing the display mode change in line 1048 by setting the changingResolution boolean to true, or setting the window to borderless before moving it to the position that covers the entire desktop by placing the MoveWindow call at line 1056 below the [self setWindowBorderless:YES] call.

Edit: Managed to forget the simplest solution: Try 1.83 on the computer that worked with 1.80!
User avatar
ffutures
---- E L I T E ----
---- E L I T E ----
Posts: 2140
Joined: Wed Dec 04, 2013 12:34 pm
Location: London, UK
Contact:

Re: Full screen startup problem Windows 10

Post by ffutures »

phkb wrote:
I've been noticing this for a while since my laptop was updated to Windows 10 (64bit).
Updated... Windows 10... does not compute...
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Full screen startup problem Windows 10

Post by phkb »

ffutures wrote:
Updated... Windows 10... does not compute...
Yeah, well, you know, it was free and all...
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Full screen startup problem Windows 10

Post by phkb »

OK, reporting back with news:

1. 1.83 on my other laptop ran fine - no startup window issues.
2. Using the "-fullscreen" option did nothing, but the "-nosplash" option fixed the window display issues, so we have a workaround.
3. placing the MoveWindow call at line 1056 below the [self setWindowBorderless:YES] call didn't seem to achieve anything (other than giving me a "Whoo Hoo!" moment for making my first code change to an Obj-C program).
4. forcing the display mode change in line 1048 by setting the changingResolution boolean to true also didn't work, and actually made it worse, as I couldn't see anything even when I Alt-Tabbed.

So, hopefully the "-nosplash" thing tells someone something useful. Unfortunately I'm several lightyears away from being anything like competent in Obj-C...
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Full screen startup problem Windows 10

Post by phkb »

I should also mention: the same issue appears if I move from a windowed display to full screen using F12. So it's not just at startup, but at any time the game goes to full screen mode.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6568
Joined: Wed Feb 28, 2007 7:54 am

Re: Full screen startup problem Windows 10

Post by another_commander »

This looks like a driver issue to me. In such cases, trying to fix the problem may result in the game running funny on other computers / OSs with non-buggy drivers. My suggestion would be to try the latest drivers from Intel (yes, I know what a mess Intel's site is when it comes to looking for drivers) and see if they fix the problem or, downgrade them to the earlier version that runs without problems.

Edit: Are there any other users with Windows 10 who can confirm whether switching to fullscreen works for them? If you can confirm one way or another, please post your gfx card and drivers information; that would be very helpful indeed.
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Full screen startup problem Windows 10

Post by phkb »

Well, just tried the Intel Driver Update Utility which suggested there was an update to my driver available. However, after a 128mb download it then informed me my system did not reach the minimum requirements for this update. Phooey. This was on my main PC at home. I'm a little hesitant to try the same thing on my work laptop. I'm also reluctant to downgrade the driver - I mean, this is a basic Intel graphics card after all, not an NVidia or AMD beast. I'll think about this a bit more.

Anyway, that link above should help any other Intel graphics users out there.
Devium
Competent
Competent
Posts: 60
Joined: Tue Jun 09, 2015 5:39 am

Re: Full screen startup problem Windows 10

Post by Devium »

Just tried starting game in fullscreen and switching back and forth with f12 and had no problem. My graphics driver does crash now and then since the Windows 10 upgrade.

Opening log for Oolite version 1.82 (x86-64) under Windows 6.2.9200 64-bit at 2016-05-21 09:00:48 -0500.
4 processors detected.
Build options: OpenAL, new planets.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

09:00:52.776 [display.mode.list.native]: Windows native resolution detected: 1920 x 1080
09:00:53.013 [joystick.init]: Number of joysticks detected: 1
09:00:53.014 [rendering.opengl.version]: OpenGL renderer version: 4.3.0 ("4.3.0 - Build 10.18.15.4271"). Vendor: "Intel". Renderer: "Intel(R) HD Graphics 4400".
09:00:53.015 [rendering.opengl.extensions]: OpenGL extensions (197):
Devium
Competent
Competent
Posts: 60
Joined: Tue Jun 09, 2015 5:39 am

Re: Full screen startup problem Windows 10

Post by Devium »

Tried the Intel Driver Update Utility phkb and it said I had a modified Intel driver so recommended I go to my computer manufacturer site to search for updates, which in my case is HP. The site seemed to have the original factory driver so I must have got the one I have now through HP support assistant or windows update. It starts with a 10 and not a 20 as your driver does so it would seem to be a windows 8.1 Intel driver... though maybe since it's not a generic Intel driver they didn't bother changing it? I'm not very tech savvy lol
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4702
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: Full screen startup problem Windows 10

Post by phkb »

Devium wrote:
recommended I go to my computer manufacturer site to search for updates
Thanks, Devium, that's good advice. I followed it, can I think I have a fix - my original OpenGL version reported as 4.3.0 Build 20.19.15.4331. The one I downloaded from HP's site said it was 4.3.0 - Build 20.19.15.4416. When I downloaded and installed this it said the version I was installing is older than the one I already had - even though the number's said otherwise. I installed this and, fingers-crossed, it appears to have addressed the issue!

Thanks everyone!
Post Reply