Summary: | compilation of vdpau shaders crashes in handleCVT_CVT | ||
---|---|---|---|
Product: | Mesa | Reporter: | Ilia Mirkin <imirkin> |
Component: | Drivers/DRI/nouveau | Assignee: | Nouveau Project <nouveau> |
Status: | RESOLVED FIXED | QA Contact: | Nouveau Project <nouveau> |
Severity: | normal | ||
Priority: | medium | CC: | madebr, rcoe |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Ilia Mirkin
2019-07-25 14:24:09 UTC
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.