[Nouveau] Regression caused by 2e9ee44797 ("nv50/ir/ra: some register spilling fixes")

Ilia Mirkin imirkin at alum.mit.edu
Thu Feb 13 21:35:10 PST 2014


Hi Christoph,

bin/shader_runner
tests/spec/glsl-1.40/uniform_buffer/fs-struct-copy-complicated.shader_test
-auto
bin/shader_runner
tests/spec/glsl-1.40/uniform_buffer/vs-struct-copy-complicated.shader_test
-auto
bin/shader_runner
tests/spec/glsl-1.50/uniform_buffer/gs-struct-copy-complicated.shader_test
-auto

Now all segfault. I reverted 2e9ee44797 ("nv50/ir/ra: some register
spilling fixes") on top of HEAD, and it's all fine again. This is on
NV96. I know that this commit fixed a bunch of stuff on NVC0+, so it'd
be nice to get everything working together all at once :)

Below is a backtrace... looks like slot == NULL. Let me know if you
need anything else from me.

Thanks,

  -ilia

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff2756598 in nv50_ir::SpillCodeInserter::unspill (
    this=0x7fffffffd160, usei=0x76a9a0, lval=0xc08f30, slot=0x0)
    at codegen/nv50_ir_ra.cpp:1514
1514       if (slot->reg.file == FILE_MEMORY_LOCAL) {
(gdb) bt
#0  0x00007ffff2756598 in nv50_ir::SpillCodeInserter::unspill (
    this=0x7fffffffd160, usei=0x76a9a0, lval=0xc08f30, slot=0x0)
    at codegen/nv50_ir_ra.cpp:1514
#1  0x00007ffff2756919 in nv50_ir::SpillCodeInserter::run (
Python Exception <type 'exceptions.IndexError'> list index out of range:
    this=0x7fffffffd160, lst=std::list) at codegen/nv50_ir_ra.cpp:1566
#2  0x00007ffff27559dd in nv50_ir::GCRA::allocateRegisters (
    this=0x7fffffffd1c0, insns=...) at codegen/nv50_ir_ra.cpp:1373
#3  0x00007ffff275700a in nv50_ir::RegAlloc::execFunc (this=0x7fffffffd530)
    at codegen/nv50_ir_ra.cpp:1662
#4  0x00007ffff2756ba6 in nv50_ir::RegAlloc::exec (this=0x7fffffffd530)
    at codegen/nv50_ir_ra.cpp:1602
#5  0x00007ffff27573a8 in nv50_ir::Program::registerAllocation (this=0x748cc0)
    at codegen/nv50_ir_ra.cpp:1709
#6  0x00007ffff270a72d in nv50_ir_generate_code (info=0x7477c0)
    at codegen/nv50_ir.cpp:1204
#7  0x00007ffff2781233 in nv50_program_translate (prog=0x744400, chipset=150)
    at nv50/nv50_program.c:362
#8  0x00007ffff2782117 in nv50_program_validate (nv50=0x63d6d0, prog=0x744400)
    at nv50/nv50_shader_state.c:117
#9  0x00007ffff278243e in nv50_fragprog_validate (nv50=0x63d6d0)
    at nv50/nv50_shader_state.c:175
#10 0x00007ffff2773007 in nv50_state_validate (nv50=0x63d6d0, mask=4294967295,
    words=8) at nv50/nv50_state_validate.c:451


More information about the Nouveau mailing list