fix(dxgi): DX12 exception handler lifetime based on device not adapter #6828
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Connections
Closes #4247
Description
Instead of registering/unregistering the dxgi exception handler on the instance creation/drop. We instead use the device lifetime.
This fixes the issue where we get DX12 errors popping up on Vulkan hardware.
Testing
Locally this seems to fix the issue. I've manually ran a bunch of the benchmarks. Manually selecting backends is working as it was before, auto-selection no longer produces spurious error messages. However I'm not sure how to test to make sure that we're still getting the error messages when we want them. If theres a better way to test this I'm all ears!
Checklist
cargo fmt
.taplo format
.cargo clippy
. If applicable, add:--target wasm32-unknown-unknown
--target wasm32-unknown-emscripten
cargo xtask test
to run tests.CHANGELOG.md
. See simple instructions inside file.