Bug 68391

Summary: [radeonsi] Crash unigine-sanctuary
Product: Mesa Reporter: Vladimir Usikov <grantipak>
Component: Drivers/Gallium/radeonsiAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: darkbasic
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: output & debug log for unigine_sanctuary

Description Vladimir Usikov 2013-08-21 17:42:16 UTC
ArchLinux x32; kernel 3.10; llvm - svn; mesa - git; Radeon HD 7950.

behem0th@ArchLinux ~ $ unigine-sanctuary 
fullscreen? Please enter 1 or 0. (1 = yes, 0 = no)
0
video width? e.g. 1024

video height? e.g. 768

Loading "/home/behem0th/.Unigine Sanctuary/unigine.cfg"...
Engine::init(): clear video settings for "Gallium 0.4 on AMD TAHITI 2.1 Mesa 9.3.0-devel (git-10aa367)"
Loading "libGL.so.1"...
Loading "libopenal.so.1"...
Set 640x480 windowed video mode
Set 1.00 gamma value
Unigine engine http://unigine.com/
Binary: Linux 32bit GCC 4.3.2 Release May 20 2010
App path:  /opt/unigine-sanctuary/bin/
Data path: /opt/unigine-sanctuary/data/
Save path: /home/behem0th/.Unigine Sanctuary/

---- System ----
System: Linux 3.10.0-1-ARCH i686
CPU: AMD Phenom(tm) 9550 Quad-Core Processor 2199MHz MMX+ 3DNow!+ SSE SSE2 SSE3 SSE4A HTT
GPU: Gallium 0.4 on AMD TAHITI 2.1 Mesa 9.3.0-devel (git-10aa367)
System memory: 8095 Mb
Video memory:  256 Mb

---- MathLib ----
Set SSE3 simd processor

---- Sound ----
Renderer: OpenAL Soft
OpenAL vendor:   OpenAL Community
OpenAL renderer: OpenAL Soft
OpenAL version:  1.1 ALSOFT 1.15.1
Found AL_EXT_LINEAR_DISTANCE
Found AL_EXT_OFFSET
Found ALC_EXT_EFX
Found EFX Filter
Found EFX Reverb
Found EAX Reverb
Found QUAD16 format
Found 51CHN16 format
Found 61CHN16 format
Found 71CHN16 format
Maximum sources:         256
Maximum effect slots:    4
Maximum auxiliary sends: 2

---- Render ----
GLRender::GLRender(): Unknown GPU
OpenGL vendor:   X.Org
OpenGL renderer: Gallium 0.4 on AMD TAHITI
OpenGL version:  2.1 Mesa 9.3.0-devel (git-10aa367)
Found required GL_ARB_map_buffer_range
Found required GL_ARB_vertex_array_object
Found required GL_ARB_vertex_buffer_object
Found required GL_ARB_half_float_vertex
Found required GL_ARB_half_float_pixel
Found required GL_ARB_occlusion_query
Found required GL_EXT_texture3D
Found required GL_EXT_texture_cube_map
Found required GL_EXT_texture_sRGB
Found required GL_EXT_texture_swizzle
Found required GL_ARB_shader_object
Found required GL_ARB_vertex_shader
Found required GL_ARB_fragment_shader
Found required GL_ARB_draw_buffers
Found required GL_ARB_framebuffer_object
Found required GL_EXT_framebuffer_blit
Found required GL_EXT_framebuffer_multisample
Found optional GL_ARB_draw_instanced
Found optional GL_ARB_draw_elements_base_vertex
Found optional GL_ARB_texture_rg
Found optional GL_EXT_texture_array
Found optional GL_ARB_texture_multisample
Found optional GL_ARB_texture_compression
Found optional GL_ARB_texture_compression_rgtc
Found optional GL_ARB_seamless_cube_map
Shading language:      1.30
Maximum texture size:  16384
Maximum texture units: 32
Maximum draw buffers:  8

---- Physics ----
Physics: Multi-threaded

---- Interpreter ----
Version: 2.31

Loading "sanctuary/unigine.cpp" 124ms
Loading "demos/sanctuary/locale/unigine.en" dictionary
Loading "core/materials/unigine_post.mat" 12 materials 12 shaders 0ms
Loading "core/materials/unigine_render.mat" 34 materials 77 shaders 14ms
Loading "core/materials/unigine_meshes.mat" 16 materials 9350 shaders 105ms
Loading "core/materials/unigine_terrains.mat" 1 material 293 shaders 4ms
Loading "core/materials/unigine_grass.mat" 1 material 81 shaders 8ms
Loading "core/materials/unigine_particles.mat" 1 material 43 shaders 7ms
Loading "core/materials/unigine_billboards.mat" 1 material 33 shaders 8ms
Loading "core/materials/unigine_volumes.mat" 5 materials 29 shaders 18ms
Loading "core/materials/unigine_guis.mat" 1 material 24 shaders 3ms
Loading "core/materials/unigine_water.mat" 1 material 63 shaders 21ms
Loading "core/materials/unigine_skies.mat" 1 material 19 shaders 25ms
Loading "core/materials/unigine_decals.mat" 1 material 69 shaders 10ms
Loading "core/properties/unigine.prop" 2 properties 1ms
Unigine~# world_load sanctuary
Loading "sanctuary.cpp" 104ms
Loading "sanctuary/sanctuary.mat" 54 materials 640ms
Loading "sanctuary.world" 13950ms
Unigine~# render_hdr 0 && render_srgb 0 && render_restart
LLVM ERROR: ran out of registers during register allocation
AL lib: (EE) alc_cleanup: 1 device not closed
Comment 1 Hohahiu 2013-08-21 20:57:15 UTC
The same error. My hardware is Intel 4000+ AMD 7750M. I ran unigine-sanctuary with DRI_PRIME.
My software:
openSUSE 12.3 x86_64
kernel 3.11.rc-6
Mesa-git
llvm-svn
radeon-git
Comment 2 Laurent carlier 2013-08-21 22:16:40 UTC
Got a different backtrace with:
* OpenGL renderer string: Gallium 0.4 on AMD PITCAIRN
* OpenGL version string: 2.1 Mesa 9.3.0-devel (git-f53b634)
* LLVM-3.4svn r188604

[lordh@archMain sanctuary]$ ./1024x768_windowed.sh 
Loading "/home/lordh/Desktop/sanctuary/bin/../data/unigine.cfg"...
Engine::init(): clear video settings for "Gallium 0.4 on AMD PITCAIRN 2.1 Mesa 9.3.0-devel (git-f53b634)"
Loading "libGL.so.1"...
Loading "libopenal.so.1"...
Set 1024x768 windowed video mode
Set 1.00 gamma value
Unigine engine http://unigine.com/
Binary: Linux 32bit GCC 4.3.2 Release May 20 2010
App path:  /home/lordh/Desktop/sanctuary/bin/
Data path: /home/lordh/Desktop/sanctuary/data/
Save path: /home/lordh/.Unigine Sanctuary/

---- System ----                                                                                                                                                                                                                             
System: Linux 3.11.0-17-agd5f x86_64                                                                                                                                                                                                         
CPU: AMD Phenom(tm) II X6 1055T Processor 2812MHz MMX+ 3DNow!+ SSE SSE2 SSE3 SSE4A HTT                                                                                                                                                       
GPU: Gallium 0.4 on AMD PITCAIRN 2.1 Mesa 9.3.0-devel (git-f53b634)                                                                                                                                                                          
System memory: 7986 Mb                                                                                                                                                                                                                       
Video memory:  256 Mb                                                                                                                                                                                                                        
                                                                                                                                                                                                                                             
---- MathLib ----                                                                                                                                                                                                                            
Set SSE3 simd processor                                                                                                                                                                                                                      
                                                                                                                                                                                                                                             
---- Sound ----                                                                                                                                                                                                                              
Renderer: OpenAL Soft                                                                                                                                                                                                                        
OpenAL vendor:   OpenAL Community                                                                                                                                                                                                            
OpenAL renderer: OpenAL Soft                                                                                                                                                                                                                 
OpenAL version:  1.1 ALSOFT 1.15.1                                                                                                                                                                                                           
Found AL_EXT_LINEAR_DISTANCE                                                                                                                                                                                                                 
Found AL_EXT_OFFSET                                                                                                                                                                                                                          
Found ALC_EXT_EFX                                                                                                                                                                                                                            
Found EFX Filter                                                                                                                                                                                                                             
Found EFX Reverb                                                                                                                                                                                                                             
Found EAX Reverb                                                                                                                                                                                                                             
Found QUAD16 format                                                                                                                                                                                                                          
Found 51CHN16 format                                                                                                                                                                                                                         
Found 61CHN16 format
Found 71CHN16 format
Maximum sources:         256
Maximum effect slots:    4
Maximum auxiliary sends: 2

---- Render ----
GLRender::GLRender(): Unknown GPU
OpenGL vendor:   X.Org
OpenGL renderer: Gallium 0.4 on AMD PITCAIRN
OpenGL version:  2.1 Mesa 9.3.0-devel (git-f53b634)
Found required GL_ARB_map_buffer_range
Found required GL_ARB_vertex_array_object
Found required GL_ARB_vertex_buffer_object
Found required GL_ARB_half_float_vertex
Found required GL_ARB_half_float_pixel
Found required GL_ARB_occlusion_query
Found required GL_EXT_texture3D
Found required GL_EXT_texture_cube_map
Found required GL_EXT_texture_sRGB
Found required GL_EXT_texture_swizzle
Found required GL_ARB_shader_object
Found required GL_ARB_vertex_shader
Found required GL_ARB_fragment_shader
Found required GL_ARB_draw_buffers
Found required GL_ARB_framebuffer_object
Found required GL_EXT_framebuffer_blit
Found required GL_EXT_framebuffer_multisample
Found optional GL_ARB_draw_instanced
Found optional GL_ARB_draw_elements_base_vertex
Found optional GL_ARB_texture_rg
Found optional GL_EXT_texture_array
Found optional GL_ARB_texture_multisample
Found optional GL_ARB_texture_compression
Found optional GL_ARB_texture_compression_rgtc
Found optional GL_ARB_seamless_cube_map
Shading language:      1.30
Maximum texture size:  16384
Maximum texture units: 32
Maximum draw buffers:  8

---- Physics ----
Physics: Multi-threaded

---- Interpreter ----
Version: 2.31

Loading "sanctuary/unigine.cpp" 94ms
Loading "demos/sanctuary/locale/unigine.en" dictionary
Loading "core/materials/unigine_post.mat" 12 materials 12 shaders 0ms
Loading "core/materials/unigine_render.mat" 34 materials 77 shaders 10ms
Loading "core/materials/unigine_meshes.mat" 16 materials 9350 shaders 70ms
Loading "core/materials/unigine_terrains.mat" 1 material 293 shaders 3ms
Loading "core/materials/unigine_grass.mat" 1 material 81 shaders 6ms
Loading "core/materials/unigine_particles.mat" 1 material 43 shaders 4ms
Loading "core/materials/unigine_billboards.mat" 1 material 33 shaders 5ms
Loading "core/materials/unigine_volumes.mat" 5 materials 29 shaders 11ms
Loading "core/materials/unigine_guis.mat" 1 material 24 shaders 2ms
Loading "core/materials/unigine_water.mat" 1 material 63 shaders 14ms
Loading "core/materials/unigine_skies.mat" 1 material 19 shaders 19ms
Loading "core/materials/unigine_decals.mat" 1 material 69 shaders 8ms
Loading "core/properties/unigine.prop" 2 properties 1ms
Unigine~# world_load sanctuary
Loading "sanctuary.cpp" 74ms
Loading "sanctuary/sanctuary.mat" 54 materials 411ms
Loading "sanctuary.world" 9211ms
Unigine~# render_hdr 0 && render_srgb 0 && render_restart
Unigine~# render_stereo 0 && render_restart
Sanctuary: AMDGPUInstrInfo.cpp:109: virtual void llvm::AMDGPUInstrInfo::storeRegToStackSlot(llvm::MachineBasicBlock&, llvm::MachineBasicBlock::iterator, unsigned int, bool, int, const llvm::TargetRegisterClass*, const llvm::TargetRegisterInfo*) const: Assertion `!"Not Implemented"' failed.
Stack dump:
0.      Running pass 'Function Pass Manager' on module 'tgsi'.
1.      Running pass 'Greedy Register Allocator' on function '@main'
./1024x768_windowed.sh : ligne 13 :  9263 Abandon                 (core dumped)./bin/Sanctuary -video_app opengl -sound_app openal -extern_define RELEASE -system_script sanctuary/unigine.cpp -engine_config ../data/unigine.cfg -data_path ../ -video_fullscreen 0 -video_mode -1 -video_width 1024 -video_height 768
Comment 3 Vladimir Usikov 2013-08-22 03:23:13 UTC
I tray get backtrace after crash, but gdb said "No stack". Maybe it does not crash, it's normal exit from the program?

My course of action:

1)$gdb --args Sanctuary -video_app opengl -sound_app openal -engine_config ../data/unigine.cfg -data_path ../ -extern_define RELEASE -video_fullscreen 0  -video_mode -1 -video_width 1024 -video_height 768

2)(gdb) run

3)Wait until the closure of the program window

4)(gdb) bt
Comment 4 Rafael Castillo 2013-08-23 22:39:50 UTC
i can confirm my hd7770 give the same error in xonotic 7.0 in some worlds too

LLVM ERROR: ran out of registers during register allocation
 and gdb can't backtrace either
Comment 5 Arek Ruśniak 2013-08-26 10:47:55 UTC
Created attachment 84643 [details]
output & debug log for unigine_sanctuary

archlinux x64 Alex's kernel(3.12)
llvm-svn-189209-1
mesa-git-7fa1877

I hope it's some help.
Comment 6 Arek Ruśniak 2013-08-26 11:10:01 UTC
Hi Rafael, it's strange for me xonotic works great but "offset mapping". 
Even AAx4 works.

greetings
Comment 7 Tom Stellard 2013-08-29 19:59:16 UTC
Does this patch help?
Comment 8 Tom Stellard 2013-08-29 19:59:37 UTC
(In reply to comment #7)
> Does this patch help?

Forgot to paste the link: https://bugs.freedesktop.org/attachment.cgi?id=84880
Comment 9 Vladimir Usikov 2013-08-30 14:48:07 UTC
I have GPU lockup with this patch.
Comment 10 Hohahiu 2013-09-21 14:46:06 UTC
The problem is still there. 
With kernel 3.11+patches from drm-next+Alex's patch for dynamic runtime,
Mesa, LLVM and other components from git I see the same error:

LLVM ERROR: ran out of registers during register allocation
AL lib: (EE) alc_cleanup: 1 device not closed

on Unigine Sanctuary and Unigine Heaven 3.0.

I haven't tried Tom's patch yet.
Comment 11 Hohahiu 2013-10-14 04:07:44 UTC
It seems that the commit 6e51c2a941955fd2a34d62437fc149e633e79ec7 "radeonsi: Allow Sinking pass to move preloaded const/res/sampl" by Vincent Lejeune has fixed this problem with Unigine Sanctuary and Unigine Heaven 3.0 for me.
Comment 12 Vladimir Usikov 2013-10-15 03:02:10 UTC
(In reply to comment #11)
> It seems that the commit 6e51c2a941955fd2a34d62437fc149e633e79ec7 "radeonsi:
> Allow Sinking pass to move preloaded const/res/sampl" by Vincent Lejeune has
> fixed this problem with Unigine Sanctuary and Unigine Heaven 3.0 for me.

I test latest mesa-git and no more crash. looks like this bug fixed.

But unigine-sanctuary now have wrong rendering and many error in output.
Comment 13 Laurent carlier 2013-10-15 20:13:55 UTC
(In reply to comment #12)
> (In reply to comment #11)
> > It seems that the commit 6e51c2a941955fd2a34d62437fc149e633e79ec7 "radeonsi:
> > Allow Sinking pass to move preloaded const/res/sampl" by Vincent Lejeune has
> > fixed this problem with Unigine Sanctuary and Unigine Heaven 3.0 for me.
> 
> I test latest mesa-git and no more crash. looks like this bug fixed.
> 
> But unigine-sanctuary now have wrong rendering and many error in output.

Not fixed here, same llvm assert (comment #2)
Comment 14 Arek Ruśniak 2013-10-15 23:08:29 UTC
(In reply to comment #12)
> 
> I test latest mesa-git and no more crash. looks like this bug fixed.
> 
> But unigine-sanctuary now have wrong rendering and many error in output.

try:
force_glsl_extensions_warn=true disable_blend_func_extended=true unigine-sanctuary
Comment 15 Hohahiu 2013-10-16 00:03:41 UTC
I tried Unigine-Heaven 3.0 right now. It works fine (a little bit slowly of course). Which software versions are you using? And I didn't do anything except s3tc.
Comment 16 Vladimir Usikov 2013-10-16 19:11:44 UTC
(In reply to comment #14)
> try:
> force_glsl_extensions_warn=true disable_blend_func_extended=true
> unigine-sanctuary

With this rendering look normal. Is this known problem or i must open new bug?
Comment 17 Arek Ruśniak 2013-10-17 10:14:24 UTC
it seem's they known the problem. DriConf applies it to any unigine-stuff by default (arch).
Comment 18 darkbasic 2013-10-17 12:41:25 UTC
Copy this into /etc/drirc: http://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/drivers/dri/common/drirc

It it a list of per-executable workarounds for buggy apps.
Comment 19 Vladimir Usikov 2013-10-17 15:06:13 UTC
Ok thx, after creating /etc/drirc heaven and sanctuary looks normal.
For me this bug may be closed. But for  Laurent carlier still not fixed.
Comment 20 Michel Dänzer 2013-10-18 01:52:52 UTC
Fixed for the reporter of this bug.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.