Notifications
Clear all

Can't run in xsession, runs slow otherwise, Debian 8, "Could not create GL context"


mikehgentry
(@mikehgentry)
Senior Chief Registered
Joined: 11 years ago
Posts: 66
Topic starter  

Hello all, hope you are well. I've been out of the Pioneer universe for a while (real life got in the way [ :(] ), but hoping to give it another go.
 
I can't get it to run on Debian 8 (strictly Testing / Sid at the moment) inside an already running xsession. Unfortunately we don't have libglut3-dev, we're using freeglut3-dev. Not sure if that's the reason.
 

apt-cache policy freeglut3-dev
freeglut3-dev:
  Installed: 2.8.1-2
  Candidate: 2.8.1-2
  Version table:
 *** 2.8.1-2 0
        990 http://ftp.de.debian.org/debian/ testing/main amd64 Packages
        500 http://ftp.de.debian.org/debian/ unstable/main amd64 Packages
        100 /var/lib/dpkg/status

 
I tried building from git, and using the latest build from the website. This is what I get:
 

./pioneer
ver 20141231 (50cdfd1) on: Linux
 
System Name: Linux
Host Name: stirfry
Release(Kernel) Version: 3.16.0-4-amd64
Kernel Build Timestamp: #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08)
Machine Arch: x86_64
Domain Name: (none)
 
SDL Version 2.0.3
Failed to set video mode. (Couldn't find matching GLX visual). Re-trying without multisampling.
Failed to set video mode. (Could not create GL context). Re-trying with 16-bit depth buffer
Failed to set video mode. (Couldn't find matching GLX visual). Re-trying with 16-bit depth buffer and no multisampling
error: Failed to set video mode: Could not create GL context

 
I deleted my ~/.pioneer folder, and it doesn't create logs when I try to run it like this.
 
It's Intel integrated graphics, and it used to work OK a year or so ago (a Thinkpad X201-T). Glxgears and suchlike run fine.
 

lspci
...
 
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)

 
If I switch to another virtual console, I can run it with
 

xinit ./pioneer -- :1

 
but it runs so slowly as to be unplayable - something like 1 - 2 frames / sec. It creates this opengl.txt
 

cat opengl.txt 
OpenGL version 3.3 (Core Profile) Mesa 10.3.2, running on VMware, Inc. Gallium 0.4 on llvmpipe (LLVM 3.5, 128 bits)
Available extensions:
Shading language version: 3.30
  GL_ARB_ES2_compatibility
  GL_ARB_ES3_compatibility
  GL_ARB_blend_func_extended
  GL_ARB_clear_buffer_object
  GL_ARB_compressed_texture_pixel_storage
  GL_ARB_conditional_render_inverted
  GL_ARB_copy_buffer
  GL_ARB_conservative_depth
  GL_ARB_debug_output
  GL_ARB_depth_buffer_float
  GL_ARB_depth_clamp
  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_object
  GL_ARB_framebuffer_sRGB
  GL_ARB_get_program_binary
  GL_ARB_half_float_pixel
  GL_ARB_half_float_vertex
  GL_ARB_instanced_arrays
  GL_ARB_internalformat_query
  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_pixel_buffer_object
  GL_ARB_point_sprite
  GL_ARB_provoking_vertex
  GL_ARB_robustness
  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_texture_lod
  GL_ARB_shading_language_packing
  GL_ARB_shading_language_420pack
  GL_ARB_stencil_texturing
  GL_ARB_sync
  GL_ARB_texture_buffer_object
  GL_ARB_texture_buffer_object_rgb32
  GL_ARB_texture_buffer_range
  GL_ARB_texture_compression_rgtc
  GL_ARB_texture_float
  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_rectangle
  GL_ARB_texture_rgb10_a2ui
  GL_ARB_texture_rg
  GL_ARB_texture_storage
  GL_ARB_texture_storage_multisample
  GL_ARB_texture_swizzle
  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_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_EXT_abgr
  GL_EXT_blend_equation_separate
  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_provoking_vertex
  GL_EXT_shader_integer_mix
  GL_EXT_texture_array
  GL_EXT_texture_compression_dxt1
  GL_ANGLE_texture_compression_dxt3
  GL_ANGLE_texture_compression_dxt5
  GL_EXT_texture_compression_latc
  GL_EXT_texture_compression_rgtc
  GL_EXT_texture_compression_s3tc
  GL_EXT_texture_integer
  GL_EXT_texture_mirror_clamp
  GL_EXT_texture_shared_exponent
  GL_EXT_texture_snorm
  GL_EXT_texture_sRGB
  GL_EXT_texture_sRGB_decode
  GL_EXT_texture_swizzle
  GL_EXT_timer_query
  GL_EXT_transform_feedback
  GL_EXT_vertex_array_bgra
  GL_OES_EGL_image
  GL_OES_read_format
  GL_KHR_debug
  GL_AMD_conservative_depth
  GL_AMD_draw_buffers_blend
  GL_AMD_seamless_cubemap_per_texture
  GL_AMD_shader_trinary_minmax
  GL_ATI_blend_equation_separate
  GL_ATI_texture_compression_3dc
  GL_ATI_texture_float
  GL_ATI_texture_mirror_once
  GL_IBM_multimode_draw_arrays
  GL_MESA_pack_invert
  GL_MESA_texture_signed_rgba
  GL_MESA_ycbcr_texture
  GL_NV_conditional_render
  GL_NV_depth_clamp
  GL_NV_packed_depth_stencil
  GL_S3_s3tc
 
Implementation Limits:
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 48
GL_MAX_CUBE_MAP_TEXTURE_SIZE = 8192
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 = 16
GL_MAX_TEXTURE_LOD_BIAS = 16
GL_MAX_TEXTURE_SIZE = 8192
GL_MAX_VERTEX_ATTRIBS = 16
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 16
GL_MAX_VERTEX_UNIFORM_COMPONENTS = 16384
GL_NUM_COMPRESSED_TEXTURE_FORMATS = 3
GL_SAMPLE_BUFFERS = 0
GL_SAMPLES = 0
GL_ALIASED_LINE_WIDTH_RANGE = 1, 255
GL_MAX_VIEWPORT_DIMS = 8192, 8192
GL_SMOOTH_LINE_WIDTH_RANGE = 1, 255
GL_SMOOTH_POINT_SIZE_RANGE = 0, 255
 
Compressed texture formats:
  0x83f0
  0x83f2
  0x83f3

 
from this config.ini
 

cat config.ini 
AntiAliasingMode=0
BindBottomCamera=Key1073741915,Key1073741902
BindCameraRollLeft=Key1073741913
BindCameraRollRight=Key1073741915
BindCameraRotateDown=Key1073741914,Key1073741905
BindCameraRotateLeft=Key1073741916,Key1073741904
BindCameraRotateRight=Key1073741918,Key1073741903
BindCameraRotateUp=Key1073741920,Key1073741906
BindDecreaseScanRange=Key91
BindDecreaseSpeed=Key1073742053
BindFireLaser=Key32
BindFireMissile=Key109
BindFrontCamera=Key1073741920,Key1073741906
BindIncreaseScanRange=Key93
BindIncreaseSpeed=Key13
BindKillRot=Key112
BindLeftCamera=Key1073741916,Key1073741904
BindMapLockHyperspaceTarget=Key32
BindMapStartSearch=Key47,Key1073741908
BindMapToggleInfoPanel=Key9
BindMapToggleSelectionFollowView=Key13,Key1073741912
BindMapViewReset=Key114
BindMapViewRotateDown=Key115
BindMapViewRotateLeft=Key97
BindMapViewRotateRight=Key100
BindMapViewRotateUp=Key119
BindMapViewShiftBackward=Key1073741902
BindMapViewShiftDown=Key1073741905
BindMapViewShiftForward=Key1073741899
BindMapViewShiftLeft=Key1073741904
BindMapViewShiftRight=Key1073741903
BindMapViewShiftUp=Key1073741906
BindMapWarpToCurrent=Key99
BindMapWarpToHyperspaceTarget=Key104
BindMapWarpToSelection=Key103
BindPitchDown=Key119
BindPitchUp=Key115
BindRearCamera=Key1073741914,Key1073741905
BindResetCamera=Key1073741898
BindRightCamera=Key1073741918,Key1073741903
BindRollLeft=Key113
BindRollRight=Key101
BindTargetObject=Key116
BindThrustBackwards=Key107
BindThrustDown=Key111
BindThrustForward=Key105
BindThrustLeft=Key106
BindThrustLowPower=Key1073742049
BindThrustRight=Key108
BindThrustUp=Key117
BindToggleHudMode=Key9
BindToggleLuaConsole=Key96
BindToggleRotationDamping=Key114
BindToggleScanMode=Key92
BindTopCamera=Key1073741921,Key1073741899
BindViewZoomIn=Key1073741911,Key61
BindViewZoomOut=Key1073741910,Key45
BindYawLeft=Key97
BindYawRight=Key100
CompactScanner=1
DefaultLowThrustPower=0.25
DetailCities=1
DetailPlanets=1
DisableEclipse=0
DisableSound=0
DisplayNavTunnel=0
EnableCockpit=0
EnableGLDebug=0
EnableJoystick=1
FOVVertical=65
HudTrails=0
InvertMouseY=0
JoystickDeadzone=0.2
Lang=en
MasterMuted=0
MasterVolume=0.8
MaxPhysicsCyclesPerRender=4
MusicMuted=0
MusicVolume=0.8
RedirectStdio=0
ScrHeight=768
ScrWidth=1024
SectorViewXRotation=-10.0
SectorViewZRotation=0
SectorViewZoom=2.0
SfxMuted=0
SfxVolume=0.8
SpeedLines=0
StartFullscreen=1
UseTextureCompression=1
VSync=0
WorkerThreads=0

 
Any suggestions? It's not great hardware, but I was hoping I could still just about play...

Thanks.


Quote
impaktor
(@impaktor)
Pioneer Moderator
Joined: 7 years ago
Posts: 171
 

Hi!

 

I also have a Thinkpad X201, Intel graphics, and we need to be on 20141118 version for now.

Please see the FAQ for further details:

<a href="""Pioneer_.28pre_2014-11-19.29_used_to_work.


ReplyQuote
laarmen
(@laarmen)
Petty Officer Registered
Joined: 12 years ago
Posts: 17
 

Impaktor, don't give false hope. We're not likely to go back to an OpenGL lesser than 3, so this chip is doomed, unless using llvmpipe, which, as you showed, isn't very efficient (but is useful for us developers)


ReplyQuote
impaktor
(@impaktor)
Pioneer Moderator
Joined: 7 years ago
Posts: 171
 

If you're referring to the "for now"-part, I just threw that in since I don't know what the exact OpenGL version x201 supports. If it's 3.1 then it should work: #3280. If it's less than 3.1, it will not.


ReplyQuote
laarmen
(@laarmen)
Petty Officer Registered
Joined: 12 years ago
Posts: 17
 

If it's the same laptop you made me look into a few weeks ago, it was something like 2.1.


ReplyQuote
mikehgentry
(@mikehgentry)
Senior Chief Registered
Joined: 11 years ago
Posts: 66
Topic starter  

Thanks for the info (and apologies for not checking the FAQ!)

I've read claims elsewhere that this chip (which I think is known as an Intel GMA HD, but I'm not really sure) can support OpenGL 3.0 on Windows, so perhaps some version of 3 will end up in the Linux drivers one day. I tried upgrading xserver-xorg-video-intel to Debian Experimental, but that didn't get me any further. It does run with LIBGL_ALWAYS_SOFTWARE=1 ./pioneer, but again too slowly to be playable.

The older version linked in the FAQ runs fine, so I suppose I'll play that for a while and keep my fingers crossed for a new driver (or see who cracks first - you porting Pioneer to Android, or me buying a new laptop 🙂 )

Cheers.


ReplyQuote
laarmen
(@laarmen)
Petty Officer Registered
Joined: 12 years ago
Posts: 17
 

LIBGL_ALWAYS_SOFTWARE runs it using llvmpipe, which is software rendering not using the Intel chip. If your chip is an Intel GMA, it is either OpenGL 2.1 or a PowerVR chip, which would mean you would be out of luck as those don't have any Linux driver, at all. Sorry!


ReplyQuote
mikehgentry
(@mikehgentry)
Senior Chief Registered
Joined: 11 years ago
Posts: 66
Topic starter  

No worries - I didn't buy this thing for hardcore gaming 😉

Good luck with the project - I'll definitely come back up to master when I can, hopefully have another bash at making some models (I really like what I've seen so far of the graphical direction it's taking).


ReplyQuote