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
d3d9_debugging [2014/10/25 15:44]
okias
d3d9_debugging [2022/07/11 10:41] (current)
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
-    * * if wine build fails, rebuild after removing -pg+
   * **-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 15: Line 15:
  
 A problem can be located in either wine or Mesa. A problem can be located in either wine or Mesa.
-If it's in mesa, you'll need to use +If it's in mesa, you'll need to use [[https://docs.mesa3d.org/envvars.html#nine-frontend-environment-variables]]
-  * the **NINE_DEBUG** variable, to know what the D3D9 ST is doingPass **NINE_DEBUG=help** to get all options. +
-  * the **NINE_TGSI_DUMP=1** variable for dumping generated TGSI code. +
-  * 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 when you comparing logs from ALWAYS_SOFTWARE, is handy to get rid of different addr for diff, with this helps you
Line 32: Line 28:
 == APITrace == == APITrace ==
 {{ :apitrace.png?direct&500|}} {{ :apitrace.png?direct&500|}}
 +  * **For apitrace to work, you need to use the no_external_dll branch of iXit/wine!**
   * For debugging Windows applications you'll need to use APITrace compiled for Windows   * For debugging Windows applications you'll need to use APITrace compiled for Windows
   * The 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 repack it with brotli (best compression -> ''apitrace repack -b your_app.trace your_app-brotli.trace''
-  * [[http://people.freedesktop.org/~jrfonseca/apitrace/|Build for Windows]]+  * [[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]]