bencawkwell / dockerfile-dwarffortress

Dwarf Fortress in a container
The Unlicense
18 stars 4 forks source link

Add support for Armok Vision #5

Open bencawkwell opened 7 years ago

bencawkwell commented 7 years ago

Especially now that stonesense is not available in later version of dfhack, Armok Vision would make a nice alternative.

Currently the ansible-dwarffortress project already has a role for adding Armok Vision, but within a docker container it only runs using the "X session on the host" method:

Add the following to the Dockerfile: RUN cd /ansible && ansible-playbook armok-vision.yml --connection=local And also make sure noVNC, XPRA and TEXT are all commented out or removed.

Enable access to the X session: xhost +local:docker

Build and run the container: docker build -t dwarffortress . docker run -t -i -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --device /dev/dri/card0:/dev/dri/card0 dwarffortress

On 0.43.03 this works (might need to use docker exec to start Armok Vision manually), but after upgrading everything it now tends to crash (segmentation fault) dwarf fortress, and using the noVNC or XPRA method results in the following error in Armok Visions log file:

XError: GLXBadFBConfig (error 178, opcode 155/34, serial 67, XID 00800002, display 0x2c040e0
XError: GLXBadFBConfig (error 178, opcode 155/34, serial 70, XID 00800002, display 0x2c040e0
XError: GLXBadFBConfig (error 178, opcode 155/34, serial 73, XID 00800002, display 0x2c040e0
XError: GLXBadFBConfig (error 178, opcode 155/34, serial 76, XID 00800002, display 0x2c040e0
XError: GLXBadFBConfig (error 178, opcode 155/34, serial 79, XID 00800002, display 0x2c040e0
XError: GLXBadFBConfig (error 178, opcode 155/34, serial 82, XID 00800002, display 0x2c040e0
XError: GLXBadFBConfig (error 178, opcode 155/34, serial 85, XID 00800002, display 0x2c040e0
Failed to create valid graphics context: please ensure you meet the minimum requirements
E.g. OpenGL core profile 3.2 or later for OpenGL Core renderer
bencawkwell commented 7 years ago

Oh, and perhaps worth mentioning, I have no problem running glxgears in either noVNC or XPRA, and glxinfo reports the following:

    df@fa0be3943ee1:~$ glxinfo 
    name of display: :100
    display: :100  screen: 0
    direct rendering: Yes
    server glx vendor string: SGI
    server glx version string: 1.4
    server glx extensions:
        GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, 
        GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, 
        GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig, 
        GLX_SGIX_pbuffer, GLX_SGI_make_current_read
    client glx vendor string: Mesa Project and SGI
    client glx version string: 1.4
    client glx extensions:
        GLX_ARB_create_context, GLX_ARB_create_context_profile, 
        GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
        GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, 
        GLX_EXT_create_context_es2_profile, GLX_EXT_fbconfig_packed_float, 
        GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context, 
        GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
        GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, 
        GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
        GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, 
        GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
        GLX_SGIX_visual_select_group, GLX_SGI_make_current_read, 
        GLX_SGI_swap_control, GLX_SGI_video_sync
    GLX version: 1.4
    GLX extensions:
        GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
        GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
        GLX_MESA_copy_sub_buffer, GLX_MESA_multithread_makecurrent, 
        GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig, 
        GLX_SGIX_pbuffer, GLX_SGI_make_current_read
    OpenGL vendor string: VMware, Inc.
    OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)
    OpenGL version string: 2.1 Mesa 10.1.3
    OpenGL shading language version string: 1.30
    OpenGL extensions:
        GL_AMD_conservative_depth, GL_AMD_draw_buffers_blend, 
        GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_trinary_minmax, 
        GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5, 
        GL_APPLE_packed_pixels, GL_APPLE_vertex_array_object, 
        GL_ARB_ES2_compatibility, GL_ARB_blend_func_extended, 
        GL_ARB_clear_buffer_object, GL_ARB_color_buffer_float, 
        GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_debug_output, 
        GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, 
        GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, 
        GL_ARB_draw_elements_base_vertex, GL_ARB_draw_instanced, 
        GL_ARB_explicit_attrib_location, GL_ARB_fragment_coord_conventions, 
        GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, 
        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_multisample, GL_ARB_multitexture, 
        GL_ARB_occlusion_query, GL_ARB_occlusion_query2, 
        GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, 
        GL_ARB_provoking_vertex, GL_ARB_robustness, GL_ARB_sampler_objects, 
        GL_ARB_seamless_cube_map, GL_ARB_shader_bit_encoding, 
        GL_ARB_shader_objects, GL_ARB_shader_texture_lod, 
        GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, 
        GL_ARB_shading_language_packing, GL_ARB_shadow, GL_ARB_sync, 
        GL_ARB_texture_border_clamp, GL_ARB_texture_compression, 
        GL_ARB_texture_compression_rgtc, 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_mirror_clamp_to_edge, 
        GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two, 
        GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui, 
        GL_ARB_texture_storage, GL_ARB_texture_swizzle, GL_ARB_timer_query, 
        GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, 
        GL_ARB_transform_feedback_instanced, GL_ARB_transpose_matrix, 
        GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, 
        GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, 
        GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, 
        GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev, 
        GL_ARB_window_pos, GL_ATI_blend_equation_separate, GL_ATI_draw_buffers, 
        GL_ATI_separate_stencil, GL_ATI_texture_compression_3dc, 
        GL_ATI_texture_env_combine3, GL_ATI_texture_float, 
        GL_ATI_texture_mirror_once, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, 
        GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, 
        GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, 
        GL_EXT_copy_texture, GL_EXT_draw_buffers2, GL_EXT_draw_instanced, 
        GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit, 
        GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB, 
        GL_EXT_gpu_program_parameters, GL_EXT_multi_draw_arrays, 
        GL_EXT_packed_depth_stencil, GL_EXT_packed_float, GL_EXT_packed_pixels, 
        GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, 
        GL_EXT_polygon_offset, GL_EXT_provoking_vertex, GL_EXT_rescale_normal, 
        GL_EXT_secondary_color, GL_EXT_separate_specular_color, 
        GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, 
        GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D, 
        GL_EXT_texture_array, GL_EXT_texture_compression_dxt1, 
        GL_EXT_texture_compression_latc, GL_EXT_texture_compression_rgtc, 
        GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, 
        GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, 
        GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, 
        GL_EXT_texture_integer, GL_EXT_texture_lod_bias, 
        GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, 
        GL_EXT_texture_rectangle, 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, GL_EXT_vertex_array_bgra, 
        GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip, 
        GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate, GL_KHR_debug, 
        GL_MESA_pack_invert, GL_MESA_texture_signed_rgba, GL_MESA_window_pos, 
        GL_MESA_ycbcr_texture, GL_NV_blend_square, GL_NV_conditional_render, 
        GL_NV_depth_clamp, GL_NV_fog_distance, GL_NV_light_max_exponent, 
        GL_NV_packed_depth_stencil, GL_NV_primitive_restart, 
        GL_NV_texgen_reflection, GL_NV_texture_env_combine4, 
        GL_NV_texture_rectangle, GL_NV_vdpau_interop, GL_OES_EGL_image, 
        GL_OES_read_format, GL_S3_s3tc, GL_SGIS_generate_mipmap, 
        GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, 
        GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays