Bug 92913

Summary: [radeonsi/LLVM] Clicking on a system in the Star Citizen WebGL Starmap segfaults in LLVM backend
Product: Mesa Reporter: Kai <kai>
Component: Drivers/Gallium/radeonsiAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED DUPLICATE QA Contact: Default DRI bug account <dri-devel>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
URL: https://robertsspaceindustries.com/starmap
Whiteboard:
i915 platform: i915 features:
Attachments: StarCitizen Starmap SIGSEGV backtrace and register dump
StarCitizen Starmap SIGSEGV backtrace and register dump

Description Kai 2015-11-12 09:37:36 UTC
Created attachment 119584 [details]
StarCitizen Starmap SIGSEGV backtrace and register dump

When opening <https://robertsspaceindustries.com/starmap> with the stack detailed below in a Firefox 42.0 (called Iceweasel for legal reasons on Debian), I get a SIGSEGV. The crash seems to happen in TargetLowering of radeonsi's LLVM backend:

> #0 0x00007f66fcacd85c in () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #1 0x00007f66fcad251d in llvm::TargetLowering::LowerCallTo(llvm::TargetLowering::CallLoweringInfo&) const () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #2 0x00007f66fcad74cc in llvm::SelectionDAGBuilder::lowerInvokable(llvm::TargetLowering::CallLoweringInfo&, llvm::BasicBlock const*) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #3 0x00007f66fcae9410 in llvm::SelectionDAGBuilder::LowerCallTo(llvm::ImmutableCallSite, llvm::SDValue, bool, llvm::BasicBlock const*) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #4 0x00007f66fcafc389 in llvm::SelectionDAGBuilder::visitCall(llvm::CallInst const&) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #5 0x00007f66fcafdd54 in llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #6 0x00007f66fcb093b8 in llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction const>, llvm::ilist_iterator<llvm::Instruction const>, bool&) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #7 0x00007f66fcb0c6f0 in llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #8 0x00007f66fcb0de4c in llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #9 0x00007f66fc1741b2 in llvm::FPPassManager::runOnFunction(llvm::Function&) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #10 0x00007f66fc1744eb in llvm::FPPassManager::runOnModule(llvm::Module&) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #11 0x00007f66fc173e2f in llvm::legacy::PassManagerImpl::run(llvm::Module&) () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #12 0x00007f66fc87ed77 in () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #13 0x00007f66fc87f099 in LLVMTargetMachineEmitToMemoryBuffer () at /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
> #14 0x00007f66ff020cbb in radeon_llvm_compile (M=M@entry=0x7f66e5467800, binary=binary@entry=0x7f66dbd5b830, gpu_family=<optimized out>, dump_ir=dump_ir@entry=false, dump_asm=dump_asm@entry=false, tm=tm@entry=0x7f671c63e000)
> at ../../../../../../src/gallium/drivers/radeon/radeon_llvm_emit.c:184
> cpu = "\210\b`\345f\177\000\000@\000`Yg\177\000\000H\000`Yg\177\000\000\000\260e\345f\177"
> fs = "p\221\376\335\376\177\000\000\032b\023!\206U\000\000\000\000\000\000\000\000\000\000\032b\023!\206U"
> err = 0x0
> dispose_tm = false
> llvm_ctx = <optimized out>
> rval = 1
> out_buffer = 0x8a9104b68f463d00
> buffer_size = <optimized out>
> buffer_data = <optimized out>
> triple = "\000\000\000\000\000\000"
> mem_err = <optimized out>
> __func__ = "radeon_llvm_compile"

See the attached backtrace for a full backtrace and register dump.

Steps to reproduce:
1. go to <https://robertsspaceindustries.com/starmap>
2. Wait for the Starmap to load and select fullscreen or windowed mode (doesn't matter for this bug).
3. Acknowledge the two dialogs.
4. Click on any system, e.g. "Oso" (do not click on the information disc thing, that works).
5. Watch the WebGL application try to load into the system (in the upper left corner you see a change of the active mode from "GLX" to "SYS").
6. SIGSEGV

Even though I don't think it is related, I bring it up: the rendering of the Starmap is partly incorrect. The first error is on the loading screen where you should see a sort of check board pattern and not these random flickering flakes. See <https://youtu.be/4eAD0liNeis> for how it should look. Apart from that the performance seems abysmal.


The WebGL application was run on the following stack (Debian testing as a base):
GPU: Hawaii PRO [Radeon R9 290] (ChipID = 0x67b1)
Mesa: Git:master/d57ede92b7
libdrm: 2.4.65-3
LLVM: SVN:trunk/r252721 (3.8 devel)
X.Org: 2:1.17.3-2
Linux: 4.3.0
Firmware: <https://secure.freedesktop.org/~agd5f/radeon_ucode/hawaii/>
# e9099c5de16bef1f2a4c9485085dcc35 hawaii_ce.bin
# 161105a73f7dfb2fca513327491c32d6 hawaii_mc.bin
# 0e01c60c02de89f15cacfad4605b3688 hawaii_me.bin
# e8dd41b3c2abb1d70a8349d1d4f577d5 hawaii_mec.bin
# 72ea83bfa076f66241d2df9f57b5dc78 hawaii_pfp.bin
# 5b72c73acf0cbd0cbb639302f65bc7dc hawaii_rlc.bin
# 084389ee7523fd04003779ee4d4a4335 hawaii_sdma1.bin
# 7be93381e34d1d4cf9b16740a7c69c78 hawaii_sdma.bin
# 7b6ca5302b56bd35bf52804919d57e63 hawaii_smc.bin
# 9f2ba7e720e2af4d7605a9a4fd903513 hawaii_uvd.bin
# d8188b0ca84749c029f7012d7aea17ae hawaii_vce.bin
libclc: Git:master/4346c30bae
DDX: Git:master/7186a8713b

Let me know, if you need something else.
Comment 1 Kai 2015-11-12 09:49:32 UTC
Created attachment 119585 [details]
StarCitizen Starmap SIGSEGV backtrace and register dump

Sorry, I used the wrong backtrace file (the first without the LLVM debugging symbols installed). This is the correct one showing the crash in the LLVM backend at llvm::SDNode::getValueType
Comment 2 Michel Dänzer 2015-11-19 02:27:29 UTC

*** This bug has been marked as a duplicate of bug 92709 ***

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.