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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to