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/09 21:31]
okias software rendering
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
   * **-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 14: 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** variableto 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. +when you comparing logs from ALWAYS_SOFTWARE, is handy to get rid of different addr for diff, with this helps you 
-  * 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//+''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 27: 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]]