Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support ID3D12InfoQueue1 for debug message interception #1659

Open
kvark opened this issue Jul 14, 2021 · 2 comments
Open

Support ID3D12InfoQueue1 for debug message interception #1659

kvark opened this issue Jul 14, 2021 · 2 comments
Labels
area: infrastructure Testing, building, coordinating issues help required We need community help to make this happen. type: enhancement New feature or request

Comments

@kvark
Copy link
Member

kvark commented Jul 14, 2021

Is your feature request related to a problem? Please describe.
Routing D3D debug messages to Rust log/console is extremely useful for diagnosing issues and debugging.
The new D3D12 backend of #1602 gets us the "crude" logic of message interception. It hooks into the VEH and manually parses the message to extract the D3D12 part, severity, etc.

Describe the solution you'd like
It may be useful to check for ID3D12InfoQueue1 and use the more specialized hookup instead. This would have to be another code path in parallel with the current VEH. It's unclear what benefit this work will get us, but worth investigating.

See full announcement - https://devblogs.microsoft.com/directx/d3d12-debug-layer-message-callback/

Describe alternatives you've considered
Just keep the current VEH logic.

Additional context
More info from Jessie Natalie:

Unfortunately, this is tied to DXGIDebug.dll, which is not one of the redistributable pieces from the Agility SDK, so it does currently require an insider Win10 or Win11 build

@kvark kvark added type: enhancement New feature or request help required We need community help to make this happen. area: infrastructure Testing, building, coordinating issues labels Jul 14, 2021
@kvark
Copy link
Member Author

kvark commented Jul 14, 2021

There is also ID3D12InfoQueue that is generally available, but it doesn't let us set a handler. One way to proceed could be to set it up in a way that both periodically polls messages and flushes on destruction... but this can lead to a situation where we aren't exactly sure what causes a particular error.

@Imberflur
Copy link
Contributor

related to #1383

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: infrastructure Testing, building, coordinating issues help required We need community help to make this happen. type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants