All games maded with Unity engine in steam catalog crashes on AMD GPU, but worked on Intel GPU on same machine.

Marek Olšák maraeo at gmail.com
Thu Feb 1 20:31:15 UTC 2018


On Thu, Feb 1, 2018 at 7:39 PM, mikhail <mikhail.v.gavrilov at gmail.com> wrote:
> On Thu, 2018-02-01 at 18:34 +0100, Marek Olšák wrote:
>> On Thu, Feb 1, 2018 at 5:27 PM, mikhail <mikhail.v.gavrilov at gmail.com
>> > wrote:
>> > On Tue, 2018-01-30 at 22:38 +0100, Marek Olšák wrote:
>> > > On Tue, Jan 30, 2018 at 10:36 PM, Marek Olšák <maraeo at gmail.com>
>> > > wrote:
>> > > > On Tue, Jan 30, 2018 at 10:04 PM, mikhail <mikhail.v.gavrilov at g
>> > > > mail
>> > > > .com> wrote:
>> > > > > On Tue, 2018-01-30 at 20:12 +0100, Marek Olšák wrote:
>> > > > > > Can you record an apitrace on a driver that is not
>> > > > > > radeonsi?
>> > > > >
>> > > > > All traces from five listed games was recorded on Intel GPU
>> > > > > (not
>> > > > > radeonsi).
>> > > > > I also understood why for some games traces was not recorded
>> > > > > yesterday.
>> > > > > It happens because such games are 32 bit and for correct
>> > > > > working
>> > > > > apitrace was needed apitrace-libs-7.1-7.fc27.i686 package,
>> > > > > but
>> > > > > only
>> > > > > apitrace-libs-7.1-7.fc27.x86_64 was installed.
>> > > > >
>> > > > > > If yes, can you correctly replay the apitrace on a driver
>> > > > > > that
>> > > > > > is not
>> > > > > > radeonsi?
>> > > > >
>> > > > > All traces was correctly replayed on Intel GPU (not
>> > > > > radeonsi).
>> > > > >
>> > > > > > If yes, can you reproduce the crash if you replay the
>> > > > > > apitrace
>> > > > > > on
>> > > > > > radeonsi?
>> > > > >
>> > > > > All traces also was correctly replayed on AMD Vega 56 GPU
>> > > > > (radeonsi)
>> > > > > without crashes.
>> > > > >
>> > > > > What does this give us?
>> > > > >
>> > > > > Anyway launching listed games under AMD Vega 56 GPU lead to
>> > > > > new
>> > > > > crases.
>> > > >
>> > > > Thanks. It's possible that Unity contains its own version of
>> > > > LLVM
>> > > > or
>> > > > its own version of some standard libraries that LLVM uses, and
>> > > > radeonsi doesn't like when games replace its dependencies.
>> > >
>> > > It's also possible that some symbols exported by Unity clash with
>> > > those exported by LLVM.
>> > >
>> > > Marek
>> > >
>> >
>> > I am created thread in Unity forum with describeb issue and link to
>> > this thread:
>> > https://forum.unity.com/threads/all-games-maded-with-unity-engine-c
>> > rash
>> > es-on-amd-gpu-but-worked-on-intel-gpu-on-same-machine.515193/#post-
>> > 3376
>> > 548
>> >
>> > And got answer from Tak:
>> > This looks like a driver crash in free/delete after
>> > mesa_glsl_link_shader.
>> > I don't believe that Unity is duplicating these symbols (as
>> > concluded
>> > in the freedesktop thread) - as far as I can tell, this is all in
>> > the
>> > radeonsi driver.
>>
>> If it was a Mesa issue, apitrace would reproduce it. It's a crash in
>> free(), which means something is wrong with the heap. There is no
>> evidence that Mesa corrupted the heap. The heap might have been
>> corrupted outside of Mesa.
>>
>> Can you run one of the games under valgrind?
>>
>
> Yes, and under valgrind games was launched without crashes O_o.
> They work very slowly, but still work!
>
> I attached valgrind log here.

Valgrind doesn't show any memory-related issue with Mesa. It does show
an issue with "New Unity Project". This can corrupt the heap and cause
a random crash on the next call of malloc/free/new/delete:

==17721== Mismatched free() / delete / delete []
==17721==    at 0x4C311E8: operator delete(void*) (vg_replace_malloc.c:576)
==17721==    by 0xD4482C: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0xD315D8: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x4FD79A: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x7E6350: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x8197CC: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x4608A1: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x5D7B009: (below main) (libc-start.c:308)
==17721==  Address 0x1f6bf470 is 0 bytes inside a block of size 220 alloc'd
==17721==    at 0x4C308B7: operator new[](unsigned long)
(vg_replace_malloc.c:423)
==17721==    by 0xD47CF3: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0xD3EF39: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x4FD712: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x7E2B8D: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x818B52: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x4603F1: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x5D7B009: (below main) (libc-start.c:308)
==17721==
==17721== Mismatched free() / delete / delete []
==17721==    at 0x4C311E8: operator delete(void*) (vg_replace_malloc.c:576)
==17721==    by 0xD44843: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0xD315D8: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x4FD79A: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x7E6350: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x8197CC: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x4608A1: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x5D7B009: (below main) (libc-start.c:308)
==17721==  Address 0x1f6bf590 is 0 bytes inside a block of size 220 alloc'd
==17721==    at 0x4C308B7: operator new[](unsigned long)
(vg_replace_malloc.c:423)
==17721==    by 0xD47ED7: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0xD3EF39: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x4FD712: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x7E2B8D: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x818B52: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x4603F1: ??? (in /home/mikhail/New Unity Project/aaa.x86_64)
==17721==    by 0x5D7B009: (below main) (libc-start.c:308)

Marek


More information about the amd-gfx mailing list