Thread 1 "mplayer" received signal SIGSEGV, Segmentation fault. nv50_ir::AlgebraicOpt::handleCVT_CVT(nv50_ir::Instruction*) () at ../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp:2085 2085 if (insn->saturate || I don't have the shader because someone decided that DEBUG setting and optimization level must be linked. And to turn it off by default. Sigh.
OK, so ... the TGSI shader is semi-buggy. It takes an undefined value and uses it throughout. nouveau kind of assumes that it's a function parameter (I guess this is basically how TGSI functions were originally spec'd out). And I guess we have some bugs around handling function parameters. Simple solution: fix the tgsi. Longer solution: think about the correct thing to do here.
Is this a dup or a different issue? Thread 25 "vlc" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffbc1a8700 (LWP 24784)] 0x00007fffaa6ccd4f in nv50_ir::AlgebraicOpt::handleCVT_CVT (this=<optimized out>, cvt=<optimized out>) at /usr/include/c++/9/bits/stl_deque.h:270 270 _M_set_node(_Map_pointer __new_node) _GLIBCXX_NOEXCEPT (gdb) where #0 0x00007fffaa6ccd4f in nv50_ir::AlgebraicOpt::handleCVT_CVT (this=<optimized out>, cvt=<optimized out>) at /usr/include/c++/9/bits/stl_deque.h:270 #1 nv50_ir::AlgebraicOpt::visit (this=0x7fffbc1a5370, bb=<optimized out>) at ../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp:2351 #2 0x00007fffaa703b37 in nv50_ir::Pass::doRun (this=0x7fffbc1a5370, func=<optimized out>, ordered=<optimized out>, skipPhi=false) at ../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:495 #3 0x00007fffaa539145 in nv50_ir::Pass::doRun (skipPhi=false, ordered=false, prog=0x0, this=0x7fffbc1a5370) at ../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:466 #4 nv50_ir::Pass::run(nv50_ir::Program*, bool, bool) [clone .constprop.0] (this=this@entry=0x7fffbc1a5370, prog=prog@entry=0x7fffa00b09c0, skipPhi=skipPhi@entry=false, ordered=false) at ../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:457 #5 0x00007fffaa6c341d in nv50_ir::Program::optimizeSSA (this=0x7fffa00b09c0, level=3) at ../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp:4005 #6 0x00007fffaa7181f9 in nv50_ir_generate_code (info=0x7fffa0134220) at ../src/gallium/drivers/nouveau/codegen/nv50_ir.cpp:1267 #7 0x00007fffaa6a7369 in nvc0_program_translate (prog=0x7fffa0112ff0, chipset=<optimized out>, debug=0x7fffa00cebf8) at ../src/gallium/drivers/nouveau/nvc0/nvc0_program.c:638 #8 0x00007fffaa7647d2 in nvc0_cp_state_create (pipe=0x7fffa00ce830, cso=0x7fffbc1a6150) at ../src/gallium/drivers/nouveau/nvc0/nvc0_context.h:292 #9 0x00007fffaa92bf12 in vl_compositor_cs_create_shader (c=0x7fffa00a8098, compute_shader_text=<optimized out>) at ../src/gallium/auxiliary/vl/vl_compositor_cs.c:433 #10 0x00007fffaa941467 in init_shaders (c=0x7fffa00a8098) at ../src/gallium/auxiliary/vl/vl_compositor.c:74 #11 vl_compositor_init (pipe=<optimized out>, c=<optimized out>) at ../src/gallium/auxiliary/vl/vl_compositor.c:770 #12 __vaDriverInit_1_4 (ctx=0x7fffa0060240) at ../src/gallium/state_trackers/va/context.c:163
Nope, this is the same issue. Patch series at https://patchwork.freedesktop.org/series/64282/ should fix you right up.
The various fixes should be pushed out to master now. Fixed: 1. Codegen to handle CVT(non-insn-sourced-value) 2. TGSI to avoid having a CVT(undefined) 3. Codegen to not consider undefined sources as compute kernel inputs
*** Bug 111280 has been marked as a duplicate 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.