Mark Wielaard wrote on 03.08.2015 20:06: > On Mon, Aug 03, 2015 at 05:44:01PM +0200, Kai Wasserbäch wrote: >> when I link my Mesa build against libelf1, some Piglit [0] tests start >> throwing SIGSEGVs. Two of those tests are >> spec@arb_gpu_shader_fp64@execution@fs-indirect-temp-double-{dst,src}. >> >> When I link Mesa (or more specifically my driver, which is >> radeonsi_dri.so) against libelfg0, the tests pass and run normally. > > Is there an easy way to reproduce this? Which source code in particular > is build, where did it come from (debian source package or a particular > upstream release?), what are the specific build steps and how are the > particular testcases run? Can you show the steps that make things work > and which steps are different when things break?
The relevant difference between a failing and a working setup, is linking Mesa with libelf1 vs. libelg0. I can give you both binary and source packages for Mesa (one for a Mesa linked against a crashing libelf1 and one linked against a working libelfg0). Let me know, if you want that. The Mesa code is coming directly from upstream's Git and I've integrated that into the Debian source package, ie. I build a Debian package with a newer upstream source. The build itself is happening in a clean pbuilder chroot (package sources in that chroot: Debian unstable + LLVM packages from <http://llvm.org/apt>, which are maintained by Debian's LLVM maintainer). (pbuiler --build /path/to/my/mesa.dsc) The full stack is (Debian testing as a base, eg. the libdrm is from Debian): GPU: Hawaii PRO [Radeon R9 290] (ChipID = 0x67b1) Mesa: Git:master/5d29eaef85 libdrm: 2.4.62-1 LLVM: SVN:trunk/r243678 (3.8 devel) X.Org: 2:1.17.1-2 Linux: 4.1.3 Firmware: <https://secure.freedesktop.org/~agd5f/radeon_ucode/hawaii/> > 286640da3d90d7b51bdb038b65addc47 hawaii_ce.bin > 161105a73f7dfb2fca513327491c32d6 hawaii_mc.bin > d6195059ea724981c9acd3abd6ee5166 hawaii_me.bin > ad511d31a4fe3147c8d80b8f6770b8d5 hawaii_mec.bin > 63eae3f33c77aadbc6ed1a09a2aed81e hawaii_pfp.bin > 5b72c73acf0cbd0cbb639302f65bc7dc hawaii_rlc.bin > f00de91c24b3520197e1ddb85d99c34a hawaii_sdma1.bin > 8e16f749d62b150d0d1f580d71bc4348 hawaii_sdma.bin > 7b6ca5302b56bd35bf52804919d57e63 hawaii_smc.bin > 9f2ba7e720e2af4d7605a9a4fd903513 hawaii_uvd.bin > b0f2a043e72fbf265b2f858b8ddbdb09 hawaii_vce.bin libclc: Git:master/7958b0202b DDX: Git:master/b6d871bf29 And depending on whether you build mesa with libelf1 or libelfg0 you get a crash in the Piglit test. Steps to reproduce: - you need a AMD GPU powered by the radeonsi driver - build Mesa with the radeonsi driver (it uses LLVM as a backend to generate machine instructions, the compiled result is returned as an ELF, hence the dependency on libelf) linked against a current libelf1 (or take my build, if you wish) - build Piglit - run one of the two Piglit tests. Either one is fine and crashes with libelf1. (e.g. <PIGLIT_BUILD_DIR>/bin/shader_runner <PIGLIT_SRC_DIR>/tests/spec/arb_gpu_shader_fp64/execution/fs-indirect-temp-double-src.shader_test -auto) Cheers, Kai
signature.asc
Description: OpenPGP digital signature