Some textures are not rendering correctly in apitrace

José Fonseca jose.r.fonseca at gmail.com
Fri Nov 7 00:57:23 PST 2014


Hi Benjamin,

> ERROR: ld.so: object
'/home/benjamin/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from
LD_PRELOAD cannot be preloaded: ignored.

It might be a good idea to disable Steam's game overlay, just to be sure
it's not interfering with apitrace, as described in
https://github.com/apitrace/apitrace/wiki/Steam#linux , the " Otherwise, I
think what you're doing should be fine.

> apitrace: warning: _gl_param_size: unknown GLenum 0x87FC

For these warnings I'll push a fix to apitrace shortly, but they are
harmless -- it won't affect the trace at all.

Jose


On Thu, Nov 6, 2014 at 10:36 PM, Benjamin Bellec <b.bellec at gmail.com> wrote:

> Hi José,
>
> I have done quite intense testing of this evening, but I finally saw
> something quite odd. So before sharing anything I need to be sure that I'm
> not capturing the trace wrongly.
>
> First of all, Serious Sam 3 is a Steam game. It's a 32-bit game. I'm on a
> 64-bit machine.
>
> Here is how I build apitrace :
> $ git clone https://github.com/apitrace/apitrace.git
> $ cd apitrace
> $ cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_GUI=TRUE
> $ make -C build
> $ cmake \
>         -DCMAKE_C_FLAGS=-m32 \
>         -DCMAKE_CXX_FLAGS=-m32 \
>         -DCMAKE_EXE_LINKER_FLAGS=-m32 \
>         -DCMAKE_SYSTEM_LIBRARY_PATH=/usr/lib \
>         -DENABLE_GUI=FALSE \
>         -H. -Bbuild32
> $ make -C build32 glxtrace
>
> So I should now have a working apitrace in /home/benjamin/apitrace
>
> I launch steam :
> $ steam
> Running Steam on fedora 19 64-bit
> STEAM_RUNTIME is enabled automatically
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Installing breakpad exception handler for appid(steam)/version(1413917607)
>
> (steam:2986): Gtk-WARNING **: Impossible de trouver le moteur de thème
> dans module_path : « adwaita »
>
> (steam:2986): Gtk-WARNING **: Impossible de trouver le moteur de thème
> dans module_path : « adwaita »
> /usr/share/themes/Adwaita/gtk-2.0/gtkrc:1137: error: unexpected identifier
> `direction', expected character `}'
> Gtk-Message: Failed to load module "pk-gtk-module"
>
> (steamwebhelper:2990): Gtk-WARNING **: Impossible de trouver le moteur de
> thème dans module_path : « adwaita »
>
> (steamwebhelper:2990): Gtk-WARNING **: Impossible de trouver le moteur de
> thème dans module_path : « adwaita »
> /usr/share/themes/Adwaita/gtk-2.0/gtkrc:1137: error: unexpected identifier
> `direction', expected character `}'
> Gtk-Message: Failed to load module "pk-gtk-module"
> Installing breakpad exception handler for
> appid(steamwebhelper)/version(20141020140456)
> Installing breakpad exception handler for
> appid(steamwebhelper)/version(1413813896)
> [1106/231809:ERROR:nss_util.cc(1018)] Failed to load NSS libraries.
> Installing breakpad exception handler for
> appid(steamwebhelper)/version(20141020140456)
> Installing breakpad exception handler for
> appid(steamwebhelper)/version(1413813896)
> Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70:
> non-double matrix element
> Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 70:
> non-double matrix element
> Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line
> 78: saw unknown, expected number
> Fontconfig warning: "/etc/fonts/conf.d/65-0-lohit-bengali.conf", line 32:
> unknown element "langset"
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Generating new string page texture 2: 48x256, total string texture memory
> is 49,15 KB
> Generating new string page texture 3: 256x256, total string texture memory
> is 311,30 KB
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Adding licenses for the following package(s): 0, 11, 34, 79, 516, 984,
> 2481, 12328, 14840, 16549, 17838, 20883, 21089, 25544, 27644, 29136, 31974,
> 31975, 49307, 53394, 53820
> roaming config store loaded successfully - 1484 bytes.
> migrating temporary roaming config store
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> ExecCommandLine: ""/home/benjamin/.local/share/Steam/ubuntu12_32/steam" "
> System startup time: 3,47 seconds
> [1106/231812:ERROR:renderer_main.cc(227)] Running without renderer sandbox
> Generating new string page texture 70: 1024x256, total string texture
> memory is 1,36 MB
> Generating new string page texture 71: 256x256, total string texture
> memory is 262,14 KB
> Generating new string page texture 72: 128x256, total string texture
> memory is 1,49 MB
> Running Steam on fedora 19 64-bit
> STEAM_RUNTIME has been set by the user to:
> /home/benjamin/.local/share/Steam/ubuntu12_32/steam-runtime
> Generating new string page texture 73: 32x256, total string texture memory
> is 1,52 MB
> ExecCommandLine: "/home/benjamin/.steam/root/ubuntu12_32/steam
> steam://open/driverhelperready"
> ExecSteamURL: "steam://open/driverhelperready"
> Generating new string page texture 78: 64x256, total string texture memory
> is 1,59 MB
> Generating new string page texture 79: 256x256, total string texture
> memory is 1,85 MB
> Generating new string page texture 80: 128x256, total string texture
> memory is 1,98 MB
> Generating new string page texture 81: 384x256, total string texture
> memory is 2,38 MB
> Installing breakpad exception handler for appid(steam)/version(1413917607)
> Generating new string page texture 91: 512x256, total string texture
> memory is 2,90 MB
>
>
> And in order to catch a trace of the game, I have modified the SS3
> executable. The executable is located in
> "/home/benjamin/.local/share/Steam/SteamApps/common/Serious Sam 3/Bin" and
> is named "Sam3"
>
> $ file "/home/benjamin/.local/share/Steam/SteamApps/common/Serious Sam
> 3/Bin/Sam3" gives :
> ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically
> linked (uses shared libs), for GNU/Linux 2.6.15,
> BuildID[sha1]=0xaedfd266c84ecec32e8ff6e69f3f1eb8a5f78d46, stripped
>
> So I moved the genuine exec :
> $ mv Sam3 Sam3.old
>
> And created a new "Sam3" shell script which is just :
> #!/bin/sh
> TRACE_FILE=/home/benjamin/testmesa/ss3_tmp.trace
> LD_PRELOAD=/home/benjamin/apitrace/build32/wrappers/glxtrace.so
> /home/benjamin/apitrace/build/apitrace trace --api gl ./Sam3.old
>
> So now I just launch SS3 within Steam and here is the log (that I didn't
> saw before) :
> Game update: AppID 41070 "Serious Sam 3: BFE", ProcID 3108, IP 0.0.0.0:0
> ERROR: ld.so: object
> '/home/benjamin/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from
> LD_PRELOAD cannot be preloaded: ignored.
> ERROR: ld.so: object
> '/home/benjamin/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from
> LD_PRELOAD cannot be preloaded: ignored.
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> ERROR: ld.so: object '/home/benjamin/apitrace/build/wrappers/glxtrace.so'
> from LD_PRELOAD cannot be preloaded: ignored.
> apitrace: loaded into
> /home/benjamin/.local/share/Steam/SteamApps/common/Serious Sam
> 3/Bin/Sam3.old
>
> (steam:2986): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that
> doesn't believe we're it's parent.
>           [snip] same message several times [/snip]
> (steam:2986): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that
> doesn't believe we're it's parent.
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/bash
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/getopt
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/basename
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/sed
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/sed
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/sed
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/sed
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/sed
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/tr
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/bash
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/cat
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/cat
> cat: /etc/debian_version: Aucun fichier ou dossier de ce type
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/bash
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/grep
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> apitrace: loaded into /usr/bin/cat
> Setting breakpad minidump AppID = 41070
> Steam_SetMinidumpSteamID:  Caching Steam ID:  76561197975475067 [API
> loaded no]
> WRN:  CPU Power saving is enabled and performance governor is not used.
> INF:  GameEnv API: Steam
> INF:  Encoded user ID = 28d03bc7:6f628ecf
> apitrace: redirecting dlopen("libGL.so.1", 0x101)
> apitrace: tracing to /home/benjamin/testmesa/ss3_tmp.trace
> apitrace: redirecting dlopen("libGL.so.1", 0x102)
> INF:
> INF:  * Desktop settings...
> INF:  Color depth: 32-bit
> INF:  Desktop resolution: 1680 x 1050
> INF:  Fullscreen on primary display
> apitrace: redirecting dlopen("libGL.so.1", 0x101)
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> lspci:
> /home/benjamin/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libpci.so.3:
> version `LIBPCI_3.2' not found (required by lspci)
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> lspci:
> /home/benjamin/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libpci.so.3:
> version `LIBPCI_3.2' not found (required by lspci)
> ERROR: ld.so: object
> '/home/benjamin/apitrace/build32/wrappers/glxtrace.so' from LD_PRELOAD
> cannot be preloaded: ignored.
> lspci:
> /home/benjamin/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libpci.so.3:
> version `LIBPCI_3.2' not found (required by lspci)
> WRN:  lspci: GPU vendor and/or device ID not detected!
> apitrace: warning: _gl_param_size: unknown GLenum 0x87FC
> apitrace: warning: _gl_param_size: unknown GLenum 0x87FC
> WRN:  [OpenGL] Unable to determine VRAM size... assuming 512 MB.
> apitrace: warning: _gl_param_size: unknown GLenum 0x87FC
> apitrace: warning: _gl_param_size: unknown GLenum 0x87FC
> WRN:  [OpenGL] "GL_ARB_get_program_binary" extension is present but not
> used because no binary formats are exposed.
> INF:
> INF:  Gfx API: OpenGL
> INF:  Resolution: 1680 x 1050
> INF:  Vendor: unknown (0x0000)
> INF:  Driver: X.Org (0x0000)
> INF:  Renderer: Gallium 0.4 on AMD CYPRESS
> INF:  Version: 3.0 Mesa 10.3.2
> INF:  Video memory size: 512 MB
> INF:  Available for textures: 512 MB
> INF:  Active GPU(s): 1
> INF:  Unable to check for correct version of display driver!
> INF:
> INF:  Sfx API: OpenAL
> INF:  Device: PulseAudio Default
> INF:  Mixer frequency: 44100 Hz
> INF:  Mixer voices: 64
> INF:  Max sound sources: 15
> INF:  Max total volume: 3
> INF:  Speaker config: (unknown)
> INF:  Environment FX: not supported
> INF:
> INF:  Using cheats will invalidate your score for this level and
> achievements won't be awarded for the remainder of the game.
> INF:  AutoDetect: Hardware values unchanged, nothing to do.
> INF:  Started simulation on 'Content/SeriousSam3/Levels/Menu/Intro.wld' in
> 0.54 seconds.
> INF:  Started simulation on
> 'Content/SeriousSam3/Levels/Menu/MenuLevel.wld' in 0.26 seconds.
> INF:  Started simulation on
> 'Content/SeriousSam3/Levels/Z5_Other/SV_Canyon.wld' in 5.47 seconds.
>
>
> I suspect something is wrong in the manner I'm capturing the trace.
>
>
> 2014-11-05 23:19 GMT+01:00 José Fonseca <jose.r.fonseca at gmail.com>:
>
>>
>>
>> On Wed, Nov 5, 2014 at 6:22 PM, Benjamin Bellec <b.bellec at gmail.com>
>> wrote:
>>
>>> Yes I confirm that the weapons are *always* correctly rendered while
>>> tracing. The corruption only appears in the apitrace.
>>>
>>
>> Wow. This is one of the weirdest things i've seen.
>>
>>
>>> Anyway thanks for this explanation.
>>> So, do you think a hardware (physical) problem can be the origin of this
>>> ?
>>> Or more probably a software one ?
>>>
>>
>>
>>
>>
>> Please do two more experiments:
>>
>> 1. Undo any previous changes to apitrace tree, apply the attached
>> patch zlib.patch and see if it helps.
>>
>>    This will force apitrace to compress with zlib instead of snappy, so
>> eliminate the chance that the bug is not on glMapBufferRange but inside
>> snappy somehow.
>>
>> 2. Ditto with pin-thread-on-cpu.patch.
>>
>>   If this is a problem due to stale CPU cache this might help.
>>
>> 3. Ditto with glfinish.patch
>>
>>    If GPU is the one scribbling over then this call should make the issue
>> either never happen or happen all the time.
>>
>> 4. try tracing the replay of the good ss3_correct_without_patch.trace like
>>
>>   ./apitrace trace ./glretrace -b ss3_correct_without_patch.trace
>>
>> a few times, and check whether the replays are as good as
>> ss3_correct_without_patch.trace, or if they regress some times, like the
>> real app does.  This might help determine whether the ss3 application is
>> doing something special, or not.
>>
>> Because I was surprised, indeed, I have another problematic bug that
>>> occurs, aparently with glMapBufferRange() too, see BUGZILLA #77596
>>> <https://bugs.freedesktop.org/show_bug.cgi?id=77596>particularly my #7
>>> comments. Maybe this is just coincidence. I'm not an OpenGL developper so I
>>> don't know where the glMapBufferRange's "lenght" parameter come from ?
>>> (from the game or from the OpenGL driver itself).
>>>
>>
>> It's hard to say whether it's related. glMapBufferRange's length
>> parameter is specified by the app, but the app could be computing that
>> value based on glGet* queries done to the OpenGL driver, and some times
>> there are bugs.
>>
>>
>>>
>>> To sum up, what do you think I should do now ? Fill a bug against the
>>> OpenGL driver ?
>>>
>>>
>> Let's see if the above experiments help narrow this further.
>>
>>
>> I really hate when apitrace is not able to capture something properly --
>> it's like most basic of basic functionality -- everything else (replay, UI,
>> state dumping) can be fixed improved after the fact, but if the trace
>> itself can't be trusted then that's showstopper.  So fingers crossed..
>>
>>
>> Jose
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/apitrace/attachments/20141107/38c5b076/attachment-0001.html>


More information about the apitrace mailing list