Bug 53318

Summary: [softpipe] sp_state_shader.c:194:softpipe_delete_fs_state: Assertion `var != softpipe->fs_variant' failed.
Product: Mesa Reporter: Vinson Lee <vlee>
Component: OtherAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2012-08-10 05:39:03 UTC
mesa: 6cb9e99a757bd5a9d908ed6c5515a9ae5fb041ba (master)

Run WebGL Conformance Tests limits tests.


#0  _debug_assert_fail (
    expr=expr@entry=0x7f5ac8afcf02 "var != softpipe->fs_variant", 
    file=file@entry=0x7f5ac8afcedd "sp_state_shader.c", line=line@entry=194, 
    function=function@entry=0x7f5ac8afcf60 "softpipe_delete_fs_state")
    at util/u_debug.c:281
#1  0x00007f5ac886bacf in softpipe_delete_fs_state (pipe=0x7f5a64afa000, 
    fs=0x7f5acab81ab0) at sp_state_shader.c:194
#2  0x00007f5ac8a49880 in aaline_delete_fs_state (pipe=0x7f5a64afa000, 
    fs=0x7f5acb4cf240) at draw/draw_pipe_aaline.c:883
#3  0x00007f5ac8a4b620 in aapoint_delete_fs_state (pipe=0x7f5a64afa000, 
    fs=0x7f5acb4cf180) at draw/draw_pipe_aapoint.c:866
#4  0x00007f5ac8923338 in delete_fp_variant (fpv=0x7f5accc1df30, 
    st=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
    at ../../src/mesa/state_tracker/st_program.c:110
#5  0x00007f5ac89245cf in st_release_fp_variants (st=0x7f5acab23000, 
    stfp=stfp@entry=0x7f5a8941b000)
    at ../../src/mesa/state_tracker/st_program.c:129
#6  0x00007f5ac8a1aead in st_delete_program (ctx=0x7f5a648cb000, 
    prog=0x7f5a8941b000) at ../../src/mesa/state_tracker/st_cb_program.c:159
#7  0x00007f5ac892c446 in _mesa_reference_program_ (
    ctx=ctx@entry=0x7f5a648cb000, ptr=ptr@entry=0x7f5aced16d30, 
    prog=prog@entry=0x0) at ../../src/mesa/program/program.c:457
#8  0x00007f5ac88ee867 in _mesa_reference_program (ptr=0x7f5aced16d30, 
---Type <return> to continue, or q <return> to quit---
    ctx=0x7f5a648cb000, prog=<optimized out>) at ./program/program.h:102
#9  _mesa_delete_shader (ctx=0x7f5a648cb000, sh=0x7f5aced16d10)
    at ../../src/mesa/main/shaderobj.c:129
#10 0x00007f5ac88eee95 in _mesa_free_shader_program_data (ctx=0x7f5a648cb000, 
    shProg=shProg@entry=0x7f5ad9b2f0b0) at ../../src/mesa/main/shaderobj.c:352
#11 0x00007f5ac88eeed9 in _mesa_delete_shader_program (ctx=<optimized out>, 
    shProg=0x7f5ad9b2f0b0) at ../../src/mesa/main/shaderobj.c:366
#12 0x00007f5ac88eeb97 in _mesa_reference_shader_program (
    ctx=ctx@entry=0x7f5a648cb000, ptr=ptr@entry=0x7fffd96e92f8, 
    shProg=shProg@entry=0x0) at ../../src/mesa/main/shaderobj.c:220
#13 0x00007f5ac88ec567 in delete_shader_program (ctx=0x7f5a648cb000, 
    name=<optimized out>) at ../../src/mesa/main/shaderapi.c:335
#14 0x00007f5aeabac009 in ?? () from /usr/lib/firefox/libxul.so
#15 0x00007f5aeabac04f in ?? () from /usr/lib/firefox/libxul.so
#16 0x00007f5aeabac0c4 in ?? () from /usr/lib/firefox/libxul.so
#17 0x00007f5aeaf0e43d in ?? () from /usr/lib/firefox/libxul.so
#18 0x00007f5aeb535277 in ?? () from /usr/lib/firefox/libxul.so
#19 0x00007f5aeacb9300 in ?? () from /usr/lib/firefox/libxul.so
#20 0x00007f5aeb2789d2 in ?? () from /usr/lib/firefox/libxul.so
#21 0x00007f5aeb278ad3 in ?? () from /usr/lib/firefox/libxul.so
#22 0x00007f5aeb275d37 in ?? () from /usr/lib/firefox/libxul.so
#23 0x00007f5aeb24b8f1 in ?? () from /usr/lib/firefox/libxul.so
#24 0x00007f5aeb1c336d in ?? () from /usr/lib/firefox/libxul.so
#25 0x00007f5aeb294441 in ?? () from /usr/lib/firefox/libxul.so
#26 0x00007f5aeb1259a3 in ?? () from /usr/lib/firefox/libxul.so
#27 0x00007f5aeb0062f1 in ?? () from /usr/lib/firefox/libxul.so
#28 0x00007f5aea87a6f0 in ?? () from /usr/lib/firefox/libxul.so
#29 0x00007f5aea87a8df in ?? () from /usr/lib/firefox/libxul.so
#30 0x00007f5aea87ab43 in XRE_main () from /usr/lib/firefox/libxul.so
#31 0x00007f5aeee558da in ?? ()
#32 0x00007f5aede7276d in __libc_start_main ()
   from /lib/x86_64-linux-gnu/libc.so.6
#33 0x00007f5aeee55961 in _start ()
(gdb) frame 1
#1  0x00007f5ac886bacf in softpipe_delete_fs_state (pipe=0x7f5a64afa000, 
    fs=0x7f5acab81ab0) at sp_state_shader.c:194
194	      assert(var != softpipe->fs_variant);
(gdb) print var
$1 = (struct sp_fragment_shader_variant *) 0x7f5a8942f800
(gdb) print softpipe->fs_variant
value has been optimized out
Comment 1 Vinson Lee 2012-08-13 00:11:32 UTC
commit 16c702ef3b9cff320c2adbfa853e00088adbf689
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Aug 10 12:16:10 2012 -0600

    softpipe: fix softpipe_delete_fs_state() failed assertion
    
    The var!=softpipe->fs_variant assertion was failing because we weren't
    nulling the softpipe->fs_variant pointer when binding a new shader.
    Since softpipe->fs_variant depends on the current fs, it's of no use
    when a new FS is bound.
    
    Fixes http://bugs.freedesktop.org/show_bug.cgi?id=53318
    
    Note: This is a candidate for the 8.0 branch.
    
    Reviewed-by: José Fonseca <jfonseca@vmware.com>

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.