Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
d3d9_debugging [2014/09/25 22:26]
sarnex typo
d3d9_debugging [2014/11/10 02:51]
sarnex typo
Line 3: Line 3:
 Compile both Mesa-3D and Wine with **CFLAGS** and **CXXFLAGS** set to debug. Compile both Mesa-3D and Wine with **CFLAGS** and **CXXFLAGS** set to debug.
  
-<code>CFLAGS="-Og -ggdb -pg -g -gdwarf-2 -gstrict-dwarf" CXXFLAGS="${CFLAGS}"</code>+<code>CFLAGS="-Og -ggdb -g -gdwarf-2 -gstrict-dwarf" CXXFLAGS="${CFLAGS}"</code>
  
   * **-Og** is better than -O0 and disable optimalization which interferes with debug (gcc >= 4.8)   * **-Og** is better than -O0 and disable optimalization which interferes with debug (gcc >= 4.8)
-  * **-ggdb, -pg, -g** adds debug information to code+  * **-ggdb, -g** adds debug information to code
   * **-gdwarf-2, -gstrict-dwarf** limit DWARF version to 2. It's necessary for both, because wine support is limited to version 2.   * **-gdwarf-2, -gstrict-dwarf** limit DWARF version to 2. It's necessary for both, because wine support is limited to version 2.
 +  * you can also add **-pg** for profiling. Beware - may cause compilation issues.
  
 Also configure Mesa-3D with <code>--enable-debug</code> Also configure Mesa-3D with <code>--enable-debug</code>
Line 17: Line 18:
   * the **NINE_DEBUG** variable, to know what the D3D9 ST is doing. Pass **NINE_DEBUG=help** to get all options.   * the **NINE_DEBUG** variable, to know what the D3D9 ST is doing. Pass **NINE_DEBUG=help** to get all options.
   * the **NINE_TGSI_DUMP=1** variable for dumping generated TGSI code.   * the **NINE_TGSI_DUMP=1** variable for dumping generated TGSI code.
 +  * the **NINE_FF_DUMP=1** variable for dumping shader generated by fixed function (ff)
   * the **TGSI_PRINT_SANITY=1** variable will precisely check TGSI and assert in case of errors   * the **TGSI_PRINT_SANITY=1** variable will precisely check TGSI and assert in case of errors
 +  * the **D3D_ALWAYS_SOFTWARE=1** will run it on CPU instead of GPU... //extremly slow//
 +
 +when you comparing logs from ALWAYS_SOFTWARE, is handy to get rid of different addr for diff, with this helps you
 +
 +''sed -i -e "s/0x[0-f]*/0x0/g" logfile.log*''
 +
 For wine, **WINEDEBUG**=+d3dadapter9,+d3d9 should be enough. For wine, **WINEDEBUG**=+d3dadapter9,+d3d9 should be enough.
  
-To get rid of annoying dbghelp warnings pass //WINEDEBUG=-dbghelp_dwarf//. 
  
 You also may be interested in apitrace. You also may be interested in apitrace.
Line 26: Line 33:
 == APITrace == == APITrace ==
 {{ :apitrace.png?direct&500|}} {{ :apitrace.png?direct&500|}}
-  * For debugging Windows application you'll need APITrace compiled for Windows +  * For debugging Windows applications you'll need to use APITrace compiled for Windows 
-  * Windows version is almost always required for replaying+  * The Windows version is almost always required for replaying
  
-  * [[https://github.com/apitrace/apitrace|Code on github]] +When uploading APITrace .trace file, please compress it with xz (best compression -> ''xz -9e your_app.trace''
-  * [[http://people.freedesktop.org/~jrfonseca/apitrace/|Build for Windows]]+  * **We have dedicated server space for APITrace files, contact sarnex or okias on IRC for more information.** 
 +  * [[https://github.com/apitrace/apitrace/wiki/WINE#windows-native|Wine HOWTO]] 
 +  * [[http://people.freedesktop.org/~jrfonseca/apitrace/apitrace-msvc-latest.7z|Build suitable for Wine]]