protonscr

Wolfenstein: The Old Blood crashes on AMD

protonclosed appid 350080Game compatibility - Unofficial
ValveSoftware/Proton#1262 · opened 2018-09-05 by GloriousEggroll · updated 2018-10-26 · 8 comments · github · game page · search this game
GGloriousEggroll 2018-09-05 github

On AMD Vega 64
LLVM 7, mesa-git
Arch, kernel 4.18
Proton 3.7

Getting this opengl error:

***************************
FATAL ERROR: GL_EXT_framebuffer_object not available

***************************

Full game console log:

Wolfenstein The Old Blood.0.1464 win-x64 Retail  May  8 2015 11:03:24
Wolfenstein The Old Blood.0.1464
------ Initializing File System ------
Current search path:
C:/users/steamuser/Saved Games/MachineGames/Wolfenstein The Old Blood/base/
Z:/run/media/Storage/Steam-Windows/steamapps/common/Wolfenstein The Old Blood/base/
file system initialized.
BenchmarkGameData: ofs 0 and 0x139722752x 
16918 microseconds
1447 microseconds
2037 microseconds
1568 microseconds
1525 microseconds
1568 microseconds
1516 microseconds
2108 microseconds
1523 microseconds
1430 microseconds
Average seek time without outliers: 1661 microseconds
fileBenchmarkImpliesGameIsOnHD: true
---------------------------
idStreamingInstallManager::Init: using langMask 1 for lang english
1 CPU package, 16 physical cores, 0 logical core
log file 'qconsole.log' opened on Wed Sep 05 17:18:40 2018

3991 MHz AMD CPU with MMX & SSE & SSE2 & SSE3 & SSSE3 & SSE41 & SSE42 & AVX
65536 kB 1st level cache, 524288 kB 2nd level cache, 8388608 kB 3rd level cache
32048 MB System Memory
Winsock Initialized
Found interface: enp5s0 enp5s0 - 192.168.1.8/255.255.255.0
Found interface: wlo2 wlo2 - 0.0.0.0 NULL netmask - skipped
Found interface: vmnet1 vmnet1 - 192.168.56.1/255.255.255.0
Found interface: vmnet8 vmnet8 - 192.168.248.1/255.255.255.0
Sys_InitNetworking: adding loopback interface
Executing default.cfg for device #0...
Unknown command 'vehicle_stickControl'
execing joystick.cfg
Executing default.cfg for device #1...
Unknown command 'vehicle_stickControl'
execing joystick.cfg
Executing default.cfg for device #2...
Unknown command 'vehicle_stickControl'
execing joystick.cfg
Executing default.cfg for device #3...
Unknown command 'vehicle_stickControl'
execing joystick.cfg
idLib::SetProduction( PROD_PRODUCTION )
OpenDLCFileHandles: 0 packages mounted.
WARNING: Config file "wolftobConfig.cfg" not found
Command line is: "Z:\run\media\Storage\Steam-Windows\steamapps\common\Wolfenstein The Old Blood\WolfOldBlood_x64.exe"
providerName: 
driverDesc: 
driverVersion: 
------- Initializing renderSystem --------
PreliminaryRenderSetup
---registered window class
---registered fake window class
---registered context window class
GetWGLExtensionsWithFakeWindow: OpenGL Vendor: "X.Org"
GetWGLExtensionsWithFakeWindow: OpenGL Renderer: "Radeon RX Vega (VEGA10, DRM 3.26.0, 4.18.0-g94710cac0ef4, LLVM 7.0.0)"
GetWGLExtensionsWithFakeWindow: OpenGL version: "4.5 (Compatibility Profile) Mesa 18.3.0-devel (git-095600dad6)"
---using WGL_EXT_swap_control
X..WGL_EXT_swap_control_tear not found
CreateOpenGLContextForCurrentThread: Assuming pre-checked Graphics Vendor: "X.Org"
CreateOpenGLContextOnDC: Using gl version 3.2
created OpenGL 3.2 context
CreateOpenGLContextForCurrentThread: Actually got context with Vendor: "X.Org"
CreateOpenGLContextForCurrentThread: Assuming pre-checked Graphics Vendor: "X.Org"
CreateOpenGLContextOnDC: Using gl version 3.2
created OpenGL 3.2 context
CreateOpenGLContextForCurrentThread: Actually got context with Vendor: "X.Org"
----- GL_Init -----
OpenGL version 4.5
GL_AMD_conservative_depth               GL_AMD_draw_buffers_blend               
GL_AMD_framebuffer_multisample_advanced GL_AMD_gpu_shader_int64                 
GL_AMD_multi_draw_indirect              GL_AMD_performance_monitor              
GL_AMD_pinned_memory                    GL_AMD_query_buffer_object              
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_1_compatibility              GL_ARB_ES3_2_compatibility              
GL_ARB_ES3_compatibility                GL_ARB_arrays_of_arrays                 
GL_ARB_base_instance                    GL_ARB_bindless_texture                 
GL_ARB_blend_func_extended              GL_ARB_buffer_storage                   
GL_ARB_clear_buffer_object              GL_ARB_clear_texture                    
GL_ARB_clip_control                     GL_ARB_color_buffer_float               
GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader                   
GL_ARB_compute_variable_group_size      GL_ARB_conditional_render_inverted      
GL_ARB_conservative_depth               GL_ARB_copy_buffer                      
GL_ARB_copy_image                       GL_ARB_cull_distance                    
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_enhanced_layouts                 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_gpu_shader_int64                 
GL_ARB_half_float_pixel                 GL_ARB_half_float_vertex                
GL_ARB_indirect_parameters              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_polygon_offset_clamp             
GL_ARB_program_interface_query          GL_ARB_provoking_vertex                 
GL_ARB_query_buffer_object              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_atomic_counter_ops        GL_ARB_shader_atomic_counters           
GL_ARB_shader_ballot                    GL_ARB_shader_bit_encoding              
GL_ARB_shader_clock                     GL_ARB_shader_draw_parameters           
GL_ARB_shader_group_vote                GL_ARB_shader_image_load_store          
GL_ARB_shader_image_size                GL_ARB_shader_objects                   
GL_ARB_shader_precision                 GL_ARB_shader_stencil_export            
GL_ARB_shader_storage_buffer_object     GL_ARB_shader_subroutine                
GL_ARB_shader_texture_image_samples     GL_ARB_shader_texture_lod               
GL_ARB_shader_viewport_layer_array      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_filter_anisotropic       
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_transform_feedback_overflow_query
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_scaledGL_EXT_framebuffer_sRGB                 
GL_EXT_memory_object                    GL_EXT_memory_object_fd                 
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_semaphore                        
GL_EXT_semaphore_fd                     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_EXT_vertex_attrib_64bit              
GL_EXT_window_rectangles                GL_IBM_multimode_draw_arrays            
GL_KHR_blend_equation_advanced          GL_KHR_context_flush_control            
GL_KHR_debug                            GL_KHR_no_error                         
GL_KHR_robust_buffer_access_behavior    GL_KHR_robustness                       
GL_KHR_texture_compression_astc_ldr     GL_KHR_texture_compression_astc_sliced_3d
GL_MESA_pack_invert                     GL_MESA_shader_integer_functions        
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_S3_s3tc                              
X..GL_AMD_multi_texsubimage not found
Couldn't find proc address for: glGetMultiQueryObjectuivAMD
---using GL_ARB_texture_multisample
---using GL_ARB_texture_compression
---using GL_EXT_texture_compression_s3tc
---using GL_EXT_texture_filter_anisotropic
X..GL_EXT_direct_state_access not found
---using GL_ARB_sampler_objects
X..GL_ARB_vertex_buffer_object not found
---using GL_ARB_map_buffer_range
---using GL_ARB_draw_elements_base_vertex
---using GL_ARB_vertex_array_object
X..GL_ARB_vertex_program not found
---using GL_ARB_get_program_binary
---using GL_ARB_uniform_buffer_object
Couldn't find proc address for: glBindMultiTextureEXT
---using GL_ARB_occlusion_query
---using GL_EXT_timer_query
X..GL_EXT_framebuffer_object not found
---using GL_EXT_framebuffer_blit
---using GL_ARB_pixel_buffer_object
---using GL_EXT_pixel_buffer_object
---using GL_EXT_depth_bounds_test
---using GL_ARB_sync
---using GL_ARB_buffer_storage
---using GL_ARB_debug_output
FATAL ERROR: GL_EXT_framebuffer_object not available
Dumped console text to C:\users\steamuser\Saved Games\MachineGames\Wolfenstein The Old Blood\base\ErrorLog_09-05-2018_05-18-40pm.txt.

idRenderSystem::Shutdown()
Shutting down OpenGL subsystem

***************************
FATAL ERROR: GL_EXT_framebuffer_object not available

***************************

Note: Wolfenstein: The New Order does not have this problem.

GGloriousEggroll 2018-09-18 github

as of today's commits to mesa git, this is fixed and wolfenstein runs flawlessly!

Kkisak-valve maintainer 2018-10-06 github

Found in the 2018-09-05 white list update.

Sserebit 2018-10-06 github

@kisak-valve This still happens with Mesa 18.2.1, I'm not sure the game should have been added to the whitelist if it's still breaking on the recommended drivers.

Ddoitsujin 2018-10-06 github

@serebit The runs fine on my end with Mesa 18.2.1, and glxinfo lists GL_EXT_framebuffer_object as a supported extension.

Kkisak-valve maintainer 2018-10-06 github

@doitsujin, so, the issue here is that the game asks for a core context when it should be asking for a compatibility context and in mesa/radeonsi 18.2, GL_EXT_framebuffer_object is only available in the compatibilty context. This was added to core contexts in mesa 18.3-git and a driconf entry was added to make this game use a compatibility context around the same time.

There is a pair of patches pending on the mesa-stable mailing list to bring the latter workaround to the 18.2 branch. So there's a good chance this will be more readily available with mesa 18.2.3+.

Ddoitsujin 2018-10-06 github

Interesting, I wonder why the game runs on my system then, since the relevant drirc entry is not yet there. Does the current Proton beta have a workaround for that or something?

Edit: Nevermind, turns out I was using my local 18.3 build without realizing it.

Sserebit 2018-10-26 github

Updated to Mesa 18.2.3 this morning. The game started up, and I was elated. The shadows were artifacting a bit, and it was stuck at 60 fps in game; but all in all, the game was running like I wanted (the game refused to go past 14fps on my Windows installation, this is the first time I’ve actually been able to play it).

Unfortunately, once I got to the game’s title card, the game froze completely a few seconds into the cinematic. I had to reboot—it seemed like a video card error, as my screen had blocky diagonal rainbow stripes going across it. I’ll test it again and see if I can reproduce, once I get home that is.

Proton versions