Differences

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

Link to this comparison view

d3d9_debugging [2014/11/09 23:36]
sarnex
d3d9_debugging [2022/07/11 10:41]
Line 1: Line 1:
-====== How to debug D3D9 ====== 
  
-Compile both Mesa-3D and Wine with **CFLAGS** and **CXXFLAGS** set to debug. 
- 
-<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) 
-  * **-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. 
-  * you can also add **-pg** for profiling. Beware - may cause compilation issues. 
- 
-Also configure Mesa-3D with <code>--enable-debug</code> 
- 
-Make **sure**, you have **disabled striping debug symbols** if you are using distribution packages, ebuild or AUR. 
- 
-A problem can be located in either wine or Mesa. 
-If it's in mesa, you'll need to use 
-  * 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_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 **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. 
- 
- 
-You also may be interested in apitrace. 
- 
-== APITrace == 
-{{ :apitrace.png?direct&500|}} 
-  * For debugging Windows applications you'll need to use APITrace compiled for Windows 
-  * The Windows version is almost always required for replaying 
- 
-When uploading APITrace .trace file, please compress it with xz (best compression -> ''xz -9e your_app.trace'') 
-**  * We have dedicated server space for APITrace files, contact sarnex or okias on IRC for the information.** 
-  * [[https://github.com/apitrace/apitrace/wiki/WINE#windows-native|Wine HOWTO]] 
-  * [[http://people.freedesktop.org/~jrfonseca/apitrace/apitrace-mingw-latest.7z|Build suitable for Wine]]