protonscr

[Feature request] Verbose per-method argument tracing

dxvkclosed wontfix
doitsujin/dxvk#869 · opened 2019-01-19 by nsivov · updated 2019-01-20 · 1 comments · github
Nnsivov 2019-01-19 github

I'd be interested in extensive tracing capability, when every method call is logged, similar to Wine +d3d,+d3d11 channels. Was that ever considered?

Ddoitsujin maintainer 2019-01-19 github

Was that ever considered?

Yes, and in the very early days there was a way to do it, but it was removed and never reintroduced for a number of reasons.

a) It's a lot of work to manually instrument every single method, and clobbers the code with non-essential stuff.
b) For debugging purposes, only instrumenting the D3D11 and DXGI entry points is next to useless since the actual work is being off-loaded to a separate thread. Which means that a lot of the backend methods would have to be logged as well.
c) With b) in mind, it will have a considerable performance impact even when logging is disabled. Making it debug build only or something like that only contributes to the problems metioned in a).
d) Apitrace captures everything that's relevant, and more importantly, offers replay functionality.

Ultimately though, and that's the main issue i have with this, is that it's just not useful for debugging. Looking at a call stream doesn't tell me anything about why something might render incorrectly, and even when dealing with crashes, filtering out the important bits of information out of a list of millions of API calls is extremely hard.

Nothing extracted yet.