pioneerspacesim / pioneer

A game of lonely space adventure
https://pioneerspacesim.net
1.62k stars 376 forks source link

Newly compiled Pioneer has a inconsistent graphics bug with speedlines enabled #4151

Open macksting opened 7 years ago

macksting commented 7 years ago

Observed behaviour

After undocking from Discovery Base in a Nerodia, there's a funny white line in space as I exit. It starts about 400m out and persists until the reference frame swaps to Jupiter 15 km later. Turns with the ship as the ship rotates, it seems. Only crops up when speed lines are enabled; turning off all pretties except speed lines leaves it in place. Turning or lifting landing gear leaves it intact until reference changes; invisible from any angles except bow and stern camera.

Animated GIF: speedlinebug

Expected behaviour

No funny lines after leaving the station.

Steps to reproduce

Undock from a very specific large dock, not just any will do, in Discovery Base, with speed lines enabled.

My pioneer version (and OS): build: git (f1f4f71) and (ab51dca) on lubuntu 16.04

opengl.txt:

OpenGL version 4.1 (Core Profile) Mesa 12.0.6, running on X.Org Gallium 0.4 on AMD CAPE VERDE (DRM 2.43.0 / 4.4.0-93-generic, LLVM 3.8.0)
Available extensions:
Shading language version: 4.10
  GL_AMD_conservative_depth
  GL_AMD_draw_buffers_blend
  GL_AMD_performance_monitor
  GL_AMD_pinned_memory
  GL_AMD_seamless_cubemap_per_texture
  GL_AMD_shader_stencil_export
  GL_AMD_shader_trinary_minmax
  GL_AMD_vertex_shader_layer
  GL_AMD_vertex_shader_viewport_index
  GL_ANGLE_texture_compression_dxt3
  GL_ANGLE_texture_compression_dxt5
  GL_ARB_ES2_compatibility
  GL_ARB_ES3_compatibility
  GL_ARB_arrays_of_arrays
  GL_ARB_base_instance
  GL_ARB_blend_func_extended
  GL_ARB_buffer_storage
  GL_ARB_clear_buffer_object
  GL_ARB_clip_control
  GL_ARB_color_buffer_float
  GL_ARB_compressed_texture_pixel_storage
  GL_ARB_conditional_render_inverted
  GL_ARB_conservative_depth
  GL_ARB_copy_buffer
  GL_ARB_copy_image
  GL_ARB_debug_output
  GL_ARB_depth_buffer_float
  GL_ARB_depth_clamp
  GL_ARB_derivative_control
  GL_ARB_direct_state_access
  GL_ARB_draw_buffers
  GL_ARB_draw_buffers_blend
  GL_ARB_draw_elements_base_vertex
  GL_ARB_draw_indirect
  GL_ARB_draw_instanced
  GL_ARB_explicit_attrib_location
  GL_ARB_explicit_uniform_location
  GL_ARB_fragment_coord_conventions
  GL_ARB_fragment_layer_viewport
  GL_ARB_fragment_shader
  GL_ARB_framebuffer_no_attachments
  GL_ARB_framebuffer_object
  GL_ARB_framebuffer_sRGB
  GL_ARB_get_program_binary
  GL_ARB_get_texture_sub_image
  GL_ARB_gpu_shader5
  GL_ARB_gpu_shader_fp64
  GL_ARB_half_float_pixel
  GL_ARB_half_float_vertex
  GL_ARB_instanced_arrays
  GL_ARB_internalformat_query
  GL_ARB_internalformat_query2
  GL_ARB_invalidate_subdata
  GL_ARB_map_buffer_alignment
  GL_ARB_map_buffer_range
  GL_ARB_multi_bind
  GL_ARB_multi_draw_indirect
  GL_ARB_occlusion_query2
  GL_ARB_pipeline_statistics_query
  GL_ARB_pixel_buffer_object
  GL_ARB_point_sprite
  GL_ARB_program_interface_query
  GL_ARB_provoking_vertex
  GL_ARB_robust_buffer_access_behavior
  GL_ARB_robustness
  GL_ARB_sample_shading
  GL_ARB_sampler_objects
  GL_ARB_seamless_cube_map
  GL_ARB_seamless_cubemap_per_texture
  GL_ARB_separate_shader_objects
  GL_ARB_shader_bit_encoding
  GL_ARB_shader_objects
  GL_ARB_shader_precision
  GL_ARB_shader_stencil_export
  GL_ARB_shader_subroutine
  GL_ARB_shader_texture_image_samples
  GL_ARB_shader_texture_lod
  GL_ARB_shading_language_420pack
  GL_ARB_shading_language_packing
  GL_ARB_stencil_texturing
  GL_ARB_sync
  GL_ARB_tessellation_shader
  GL_ARB_texture_barrier
  GL_ARB_texture_buffer_object
  GL_ARB_texture_buffer_object_rgb32
  GL_ARB_texture_buffer_range
  GL_ARB_texture_compression_bptc
  GL_ARB_texture_compression_rgtc
  GL_ARB_texture_cube_map_array
  GL_ARB_texture_float
  GL_ARB_texture_gather
  GL_ARB_texture_mirror_clamp_to_edge
  GL_ARB_texture_multisample
  GL_ARB_texture_non_power_of_two
  GL_ARB_texture_query_levels
  GL_ARB_texture_query_lod
  GL_ARB_texture_rectangle
  GL_ARB_texture_rg
  GL_ARB_texture_rgb10_a2ui
  GL_ARB_texture_stencil8
  GL_ARB_texture_storage
  GL_ARB_texture_storage_multisample
  GL_ARB_texture_swizzle
  GL_ARB_texture_view
  GL_ARB_timer_query
  GL_ARB_transform_feedback2
  GL_ARB_transform_feedback3
  GL_ARB_transform_feedback_instanced
  GL_ARB_uniform_buffer_object
  GL_ARB_vertex_array_bgra
  GL_ARB_vertex_array_object
  GL_ARB_vertex_attrib_64bit
  GL_ARB_vertex_attrib_binding
  GL_ARB_vertex_shader
  GL_ARB_vertex_type_10f_11f_11f_rev
  GL_ARB_vertex_type_2_10_10_10_rev
  GL_ARB_viewport_array
  GL_ATI_blend_equation_separate
  GL_ATI_meminfo
  GL_ATI_texture_float
  GL_ATI_texture_mirror_once
  GL_EXT_abgr
  GL_EXT_blend_equation_separate
  GL_EXT_depth_bounds_test
  GL_EXT_draw_buffers2
  GL_EXT_draw_instanced
  GL_EXT_framebuffer_blit
  GL_EXT_framebuffer_multisample
  GL_EXT_framebuffer_multisample_blit_scaled
  GL_EXT_framebuffer_sRGB
  GL_EXT_packed_depth_stencil
  GL_EXT_packed_float
  GL_EXT_pixel_buffer_object
  GL_EXT_polygon_offset_clamp
  GL_EXT_provoking_vertex
  GL_EXT_shader_integer_mix
  GL_EXT_texture_array
  GL_EXT_texture_compression_dxt1
  GL_EXT_texture_compression_rgtc
  GL_EXT_texture_compression_s3tc
  GL_EXT_texture_filter_anisotropic
  GL_EXT_texture_integer
  GL_EXT_texture_mirror_clamp
  GL_EXT_texture_sRGB
  GL_EXT_texture_sRGB_decode
  GL_EXT_texture_shared_exponent
  GL_EXT_texture_snorm
  GL_EXT_texture_swizzle
  GL_EXT_timer_query
  GL_EXT_transform_feedback
  GL_EXT_vertex_array_bgra
  GL_IBM_multimode_draw_arrays
  GL_KHR_context_flush_control
  GL_KHR_debug
  GL_KHR_robust_buffer_access_behavior
  GL_MESA_pack_invert
  GL_MESA_texture_signed_rgba
  GL_NVX_gpu_memory_info
  GL_NV_conditional_render
  GL_NV_depth_clamp
  GL_NV_packed_depth_stencil
  GL_NV_texture_barrier
  GL_NV_vdpau_interop
  GL_OES_EGL_image
  GL_OES_read_format
  GL_S3_s3tc

Implementation Limits:
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 160
GL_MAX_CUBE_MAP_TEXTURE_SIZE = 16384
GL_MAX_DRAW_BUFFERS = 8
GL_MAX_ELEMENTS_INDICES = 3000
GL_MAX_ELEMENTS_VERTICES = 3000
GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 16384
GL_MAX_TEXTURE_IMAGE_UNITS = 32
GL_MAX_TEXTURE_LOD_BIAS = 16
GL_MAX_TEXTURE_SIZE = 16384
GL_MAX_VERTEX_ATTRIBS = 16
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 32
GL_MAX_VERTEX_UNIFORM_COMPONENTS = 16384
GL_NUM_COMPRESSED_TEXTURE_FORMATS = 3
GL_SAMPLE_BUFFERS = 1
GL_SAMPLES = 2
GL_ALIASED_LINE_WIDTH_RANGE = 1, 16384
GL_MAX_VIEWPORT_DIMS = 16384, 16384
GL_SMOOTH_LINE_WIDTH_RANGE = 1, 16384
GL_SMOOTH_POINT_SIZE_RANGE = 0, 16384

Compressed texture formats:
  0x83f0
  0x83f2
  0x83f3
fluffyfreak commented 7 years ago

This works fine for me (Windows 10/nVidia) so it might be GPU/Linux issue.

macksting commented 7 years ago

speedlinebug.zip Zipped save file. Tried to upload this before, but apparently mucked it up. Worth a shot, see if it does it for you?

fluffyfreak commented 7 years ago

That's bizarre I get it with your savegame too! I'll have to debug that one.

ecraven commented 7 years ago

That's bizarre I get it with your savegame too! I'll have to debug that one.

I've noticed this on the Barnard's Star start too, as soon as I move away from the initial direction, it gets less pronounced. Looks to me like some sort of singularity in the streak line code.

ColdSpirit0 commented 6 years ago

See that issue too; Win7, intel hd610 Looks like lines generated not so randomly

fluffyfreak commented 6 years ago

Damn, that save game file seems to be rather corrupt. In release the game gets past the asserts, with debug info it usually crashes, and in full debug mode it just fails with the wrong starport/station information etc.

fluffyfreak commented 6 years ago

Is anyone who gets this bug able/willing to debug it? The file you'll be wanting to stick breakpoints in is Speedlines.cpp, and there's only two really interesting methods in there, Update and Render.