Summary: | [Bisected regression i965]Oglc GLSLlinker(volume.varying.32floats) aborted | ||
---|---|---|---|
Product: | Mesa | Reporter: | lu hua <huax.lu> |
Component: | Drivers/DRI/i965 | Assignee: | Eric Anholt <eric> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | high | CC: | brianp, xunx.fang |
Version: | 9.0 | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
lu hua
2012-06-28 22:48:43 UTC
Can you post a stack trace for the segfault/crash? Backtrace: #0 0x000000000124fc7b in FbConfig::FbConfig(Display_ const&, int, FbConfig::fbconfig_type_t) () #1 0x0000000001268f7b in ScheduleManager::one_format(Display_ const&, int) () #2 0x0000000001215b92 in tkShellExecute(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&) () #3 0x00000000004257b5 in main () That backtrace doesn't appear to have anything to do with the GLSL linker. Are you sure it's right? Backtrace: #0 0x00000039266362a5 in raise () from /lib64/libc.so.6 #1 0x0000003926637bbb in abort () from /lib64/libc.so.6 #2 0x000000392667b8fd in __malloc_assert () from /lib64/libc.so.6 #3 0x000000392667ed94 in _int_malloc () from /lib64/libc.so.6 #4 0x00000039266819b5 in calloc () from /lib64/libc.so.6 #5 0x00007ffff64fdce7 in ralloc_size (ctx=0x2b37c60, size=<optimized out>) at ./../../glsl/ralloc.c:117 #6 0x00007ffff648ff09 in ra_alloc_interference_graph (regs=<optimized out>, count=73) at ./../program/register_allocate.c:318 #7 0x00007ffff6933f04 in brw::vec4_visitor::reg_allocate (this=0x7ffffffb04d0) at brw_vec4_reg_allocate.cpp:188 #8 0x00007ffff6932fe0 in brw::vec4_visitor::run (this=0x7ffffffb04d0) at brw_vec4_emit.cpp:807 #9 0x00007ffff693306a in brw::brw_vs_emit (prog=0x2a48940, c=0x7ffffffb8eb0) at brw_vec4_emit.cpp:1035 #10 0x00007ffff68eb5b7 in do_vs_prog (brw=0x274a710, prog=0x2a48940, vp=0x2b85410, key=<optimized out>) at brw_vs.c:242 #11 0x00007ffff68ebd58 in brw_vs_precompile (ctx=0x274a710, prog=<optimized out>) at brw_vs.c:397 #12 0x00007ffff692fe55 in brw_link_shader (ctx=0x274a710, shProg=0x2a48940) at brw_shader.cpp:236 #13 0x00007ffff64f601a in _mesa_glsl_link_shader (ctx=0x274a710, prog=0x2a48940) at ./../program/ir_to_mesa.cpp:3153 #14 0x00007ffff63e9c6c in link_program (ctx=0x274a710, program=<optimized out>) at ./../main/shaderapi.c:712 #15 0x00000000007bc025 in LinkAProgramObject(unsigned int) () #16 0x00000000006647b8 in conform::(anonymous namespace)::TestCaseTemplate::SimpleFunctionCallTest(conform::(anonymous namespace)::TestCaseTemplate::GLSLLinkerTestContext*) () #17 0x0000000000632a4d in conform::(anonymous namespace)::TestCaseTemplate::Run() () #18 0x000000000134b96f in conform::SubcaseBase::RunSubcase(boost::shared_ptr<conform::SubcaseBase> (*)()) () #19 0x000000000134c088 in conform::ExecuteTest(testParameters*, conform::TestInfoBase&, conform::TestCaseInfo const*, unsigned long) () #20 0x000000000065bf3d in GLSLLinkerExec(testParameters*) () #21 0x000000000129b229 in callFunctionHandleExceptionsInner(long (*)(testParameters*), testParameters*, char*) () #22 0x000000000129b37f in callFunctionHandleExceptions(long (*)(testParameters*), testParameters*) () #23 0x000000000129a011 in DriverExec(long (*)(testParameters*), testParameters*) () #24 0x0000000001277095 in Driver(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<driverRec*, std::allocator<driverRec*> > const&, std::vector<boost::shared_ptr<PrePostTestAction>, std::allocator<boost::shared_ptr<PrePostTestAction> > > const&, std::vector<boost::shared_ptr<PrePostTestcaseAction>, std::allocator<boost::shared_ptr<PrePostTestcaseAction> > > const&) () #25 0x0000000001277818 in (anonymous namespace)::MyMessagePump::idle() () #26 0x0000000001248d10 in MessagePump::process_messages() () #27 0x00000000012760f0 in ExecutionManager::execute_schedules() () #28 0x0000000001218a4f in tkShellExecute(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&) () #29 0x00000000004257e5 in main () GLSLlinker(negative.varying.beyondMaxVaryingFloats) fails on pineview with mesa master branch, and has same bisect result. According to Valgrind, we're stomping past the end of fprog->InterpQualifier array in ir_set_program_inouts.cpp:92. This probably cascades leading to a crash. I imagine this is because we don't yet support varying packing. But I could be wrong. Looks like the mark() function could use a couple assertions. 1. assert(var->location + var->index + offset + i) < 64 at line 87 2. assert(var->location + var->index + offset + i) < Elements( fprog->InterpQualifier) at line 92. It also happens on mesa 9.0 branch(commit:6886da783ac). Fix incoming to mailing list. commit 94e82b2e6cabd7ad26ff35067f6b6675168649d3 Author: Eric Anholt <eric@anholt.net> Date: Tue Nov 13 14:40:22 2012 -0800 mesa: Fix linker-assigned varying component counting since 8fb1e4a462 Fixed on master branch,It has error: shader uses too many varying components (112 > 64). I will close it when this patch cherry pick to 9.0 branch. Eric, if you confirm no plan for cherry-picking to 9.0 or 9.1, I'll ask Hua to close this. Verified.Fixed. |
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.