https://bugs.freedesktop.org/show_bug.cgi?id=91828
Bug ID: 91828 Summary: R600 LLVM Assertion in Instructions.cpp:1499 Product: Mesa Version: git Hardware: Other OS: All Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/r600 Assignee: dri-devel@lists.freedesktop.org Reporter: ikalvachev@gmail.com QA Contact: dri-devel@lists.freedesktop.org
Created attachment 118020 --> https://bugs.freedesktop.org/attachment.cgi?id=118020&action=edit Log of running Xonotic with R600_DEBUG=llvm,ps,vs. The last shader causes assertion.
This bug happen with wide variety of games. I managed to reproduce it with the free Xonotic v0.8.1. The exact command is `R600_DEBUG=llvm,ps,vs ./xonotic-linux32-glx`. (Then start the first single player map. Crash happens at first in-game frame.)
The error I get is: --- xonotic-linux32-glx: Instructions.cpp:1499: llvm::InsertElementInst::InsertElementInst(llvm::Value *, llvm::Value *, llvm::Value *, const llvm::Twine &, llvm::Instruction *): Assertion `isValidOperands(Vec, Elt, Index) && "Invalid insertelement instruction operands!"' failed. ---
I've obtained that error by compiling debug versions of LLVM 3.6.2 and current git of Mesa. Unfortunately the backtrace doesn't produce any relevant info.
I'm reporting the bug here, because the error happens during the phase where TGSI code is translated into the intrinsics that LLVM understand. I do not see llvm intrinsics code for the last TGSI shader, so I cannot reproduce the crash with `llc`. I think it is quite likely that the problem is caused by some LLVM API change, that have not been reflected in Mesa.
I know that R600 LLVM is not under active development. However at the moment that code is crashing on regular basis. Mesa should be able to work with any recent LLVM release and 3.6.2 is the latest current release. If you do not intend to maintain it, then you might consider removing it.
I would prefer the bug(s) to be fixed. Nine exposes quite a number of SB bugs and having other options is always good for testing.