[Mesa-dev] [RFC PATCH 1/1] st/dri: add a new driconf option override_glsl_version for ARK games

Gustaw Smolarczyk wielkiegie at gmail.com
Tue Feb 7 13:29:29 UTC 2017


2017-02-07 14:11 GMT+01:00 Eero Tamminen <eero.t.tamminen at intel.com>:
> Hi,
>
> On 06.02.2017 22:26, Samuel Pitoiset wrote:
>>
>> On 02/06/2017 04:45 PM, Eero Tamminen wrote:
>>>
>>> Results from quick try on Ubuntu 16.04 with today's version of the game
>>> (ARK: Survival Evolved)...
>>>
>>> With (Ubuntu 16.04 default) Mesa 11.2, game starts to the game main
>>> menu, but when one starts from that a single player campaign, it will
>>> crash before the real game begins, after few minutes of loading (when
>>> game RAM resident set size has grown to ~10 GB):
>>> ------------------------
>>> Thread 1 "ShooterGame" received signal SIGSEGV, Segmentation fault.
>>> 0x0000000001369f9b in _start ()
>>> (gdb) bt
>>> #0  0x0000000001369f9b in _start ()
>>> ------------------------
>>>
>>> With latest Mesa (with or without the patch), game will just show a
>>> small dialog with fedirectly fromw garbage characters and exit.  I have
>>> no idea what
>>> it wants to complain about.
>>
>>
>> That patch is actually wrong for intel (it doesn't override anything).
>>
>> Maybe you can try this one?
>>
>> https://cgit.freedesktop.org/~hakzsam/mesa/log/?h=override_glsl_version_v2
>
>
> Same results.  Patch doesn't help.
>
>
> On 06.02.2017 18:02, Bas Nieuwenhuizen wrote:
>> You might be able to find the message with a debugger, the GL4.3+
>> context error also manifested as such and it turned out that the error
>> string is UTF-16, while the function that shows the error dialog
>> expects something like ASCII or UTF-8.
>
> Thanks, setting breakpoint on SDL_ShowMessageBox() I can catch where it
> shows the dialog, but it appears to link SDL statically and not have debug
> symbols so that I could directly get the message.
>
> Unfortunately my gdb/assembly-foo is too weak to parse UTF-16 strings
> through pointers in stack (or is register passing using on Intel for subset
> of args?)...

On x86-64 [1], the first argument should be in rdi register. If SDL2
is used, it will point to SDL_MessageBoxData structure [2] which
should have the message pointer at offset 24.

[1] https://en.wikipedia.org/wiki/X86_calling_conventions#System_V_AMD64_ABI
[2] https://wiki.libsdl.org/SDL_MessageBoxData

Regards,
Gustaw

>
>
>
>         - Eero
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list