[Mesa-dev] [Bug 61036] New: Shader fails to build in LLVMpipe, aborts program

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Feb 17 19:39:02 PST 2013


https://bugs.freedesktop.org/show_bug.cgi?id=61036

          Priority: medium
            Bug ID: 61036
          Assignee: mesa-dev at lists.freedesktop.org
           Summary: Shader fails to build in LLVMpipe, aborts program
          Severity: major
    Classification: Unclassified
                OS: Linux (All)
          Reporter: freedesktop at fluggo.com
          Hardware: x86 (IA32)
            Status: NEW
           Version: 9.0
         Component: Other
           Product: Mesa

Created attachment 75019
  --> https://bugs.freedesktop.org/attachment.cgi?id=75019&action=edit
Shader test program

I'm aware that some of the problems with shaders in LLVMpipe depend on the
version of LLVM installed, so I tested the attached program with LLVM 3.0 and
3.2, and both fail in Mesa 9.0.1.

Building with LLVM 3.2 and running the attached program yields:

shader1:
/home/james/software/extern/llvm-3.2.src/lib/VMCore/Instructions.cpp:1487:
llvm::InsertElementInst::InsertElementInst(llvm::Value*, llvm::Value*,
llvm::Value*, const llvm::Twine&, llvm::Instruction*): Assertion
`isValidOperands(Vec, Elt, Index) && "Invalid insertelement instruction
operands!"' failed.
Aborted


The backtrace:

#0  0xb7fe1430 in __kernel_vsyscall ()
#1  0xb5eb6941 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0xb5eb9d72 in *__GI_abort () at abort.c:92
#3  0xb5eafb58 in *__GI___assert_fail (
    assertion=0xb7975fa8 "isValidOperands(Vec, Elt, Index) && \"Invalid
insertelement instruction operands!\"", 
    file=0xb7975180
"/home/james/software/extern/llvm-3.2.src/lib/VMCore/Instructions.cpp",
line=1487, 
    function=0xb797c9c0
"llvm::InsertElementInst::InsertElementInst(llvm::Value*, llvm::Value*,
llvm::Value*, const llvm::Twine&, llvm::Instruction*)")
    at assert.c:81
#4  0xb7249aff in llvm::InsertElementInst::InsertElementInst(llvm::Value*,
llvm::Value*, llvm::Value*, llvm::Twine const&, llvm::Instruction*) ()
   from
/home/james/software/extern/mesa/build/linux-x86-debug/gallium/targets/libgl-xlib/libGL.so.1
#5  0xb6e43a63 in llvm::InsertElementInst::Create(llvm::Value*, llvm::Value*,
llvm::Value*, llvm::Twine const&, llvm::Instruction*) ()
   from
/home/james/software/extern/mesa/build/linux-x86-debug/gallium/targets/libgl-xlib/libGL.so.1
#6  0xb6e4453b in llvm::IRBuilder<true, llvm::ConstantFolder,
llvm::IRBuilderDefaultInserter<true> >::CreateInsertElement(llvm::Value*,
llvm::Value*, llvm::Value*, llvm::Twine const&) ()
   from
/home/james/software/extern/mesa/build/linux-x86-debug/gallium/targets/libgl-xlib/libGL.so.1
#7  0xb71b4777 in LLVMBuildInsertElement ()
   from
/home/james/software/extern/mesa/build/linux-x86-debug/gallium/targets/libgl-xlib/libGL.so.1
#8  0xb684f29f in build_gather (bld=0xbfffb66c, base_ptr=0x81b530c, 
    indexes=0x817df50) at src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c:451
#9  0xb684f9d9 in emit_fetch_constant (bld_base=0xbfffb624, reg=0x8331a80, 
    stype=TGSI_TYPE_SIGNED, swizzle=0)
    at src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c:640
#10 0xb688562f in lp_build_emit_fetch (bld_base=0xbfffb624, inst=0x8331a50, 
    src_op=0, chan_index=0) at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:305
#11 0xb688513b in lp_build_fetch_args (bld_base=0xbfffb624, 
    emit_data=0xbfffb4c8) at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:177
#12 0xb688538b in lp_build_tgsi_inst_llvm (bld_base=0xbfffb624, 
    inst=0x8331a50) at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:245
#13 0xb6885c30 in lp_build_tgsi_llvm (bld_base=0xbfffb624, tokens=0x81cade8)
    at src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:475
#14 0xb6853f29 in lp_build_tgsi_soa (gallivm=0x81c0138, tokens=0x81cade8, 
    type=..., mask=0x0, consts_ptr=0x81b7514, system_values=0xbfffed1c, 
    pos=0x0, inputs=0xbfffe714, outputs=0xbfffed28, sampler=0x81c1f70, 
    info=0x81ca75c) at src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c:2561
#15 0xb6855f1e in generate_vs (variant=0x81a2b78, builder=0x82c87f8, 
    vs_type=..., outputs=0xbfffed28, inputs=0xbfffe714, 
    system_values=0xbfffed1c, context_ptr=0x81b2380, draw_sampler=0x81c1f70, 
    clamp_vertex_color=1 '\001') at src/gallium/auxiliary/draw/draw_llvm.c:494
#16 0xb6858895 in draw_llvm_generate (llvm=0x805b010, variant=0x81a2b78, 
    elts=0 '\000') at src/gallium/auxiliary/draw/draw_llvm.c:1342
#17 0xb6855d61 in draw_llvm_create_variant (llvm=0x805b010, num_inputs=6, 
    key=0xbffff1b8) at src/gallium/auxiliary/draw/draw_llvm.c:449
#18 0xb685a3f3 in llvm_middle_end_prepare (middle=0x80694c8, in_prim=6, 
    opt=3, max_vertices=0x80668cc)
    at src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c:170
#19 0xb67a452f in vsplit_prepare (frontend=0x80668b0, in_prim=6, 
    middle=0x80694c8, opt=3)
    at src/gallium/auxiliary/draw/draw_pt_vsplit.c:175
# And so on


I'm not sure if you care what LLVM 3.0 yields, but it's a very long IL printout
and complaint list. I'll attach it separately.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130218/f1bbf36a/attachment.html>


More information about the mesa-dev mailing list