d3d12: Include device removal reason when ERROR_DEVICE_REMOVED is raised#262
Merged
d3d12: Include device removal reason when ERROR_DEVICE_REMOVED is raised#262
ERROR_DEVICE_REMOVED is raised#262Conversation
88d62b8 to
ae376fa
Compare
ERROR_DEVICE_REMOVED is raisedERROR_DEVICE_REMOVED is raised
Jasper-Bekkers
approved these changes
Jan 30, 2025
ae376fa to
6b011c7
Compare
…aised
Our "painful" `Error::Internal(String)` design for useful errors makes
it impossible for downstream crates to retrieve the original `HRESULT`
and match on it as necessary to action on stringified error codes like
`DXGI_ERROR_DEVICE_REMOVED`, which print:
ID3D12Device::CreatePlacedResource failed: The GPU device instance has been suspended. Use GetDeviceRemovedReason to determine the appropriate action. (0x887A0005)
Without rearchitecting our `Error` type, the nicest middle ground
is anyway for `gpu-allocator` to already add the error message from
`GetDeviceRemovedReason()` to the `Result` so that downstream crates
can immediately see in their error messages _why_ the device is or was
removed/suspended when they make an allocation.
6b011c7 to
cc94563
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Our "painful"
Error::Internal(String)design for useful errors makes it impossible for downstream crates to retrieve the originalHRESULTand match on it as necessary to action on stringified error codes likeDXGI_ERROR_DEVICE_REMOVED, which print:Without rearchitecting our
Errortype, the nicest middle ground is anyway forgpu-allocatorto already add the error message fromGetDeviceRemovedReason()to theResultso that downstream crates can immediately see in their error messages why the device is or was removed/suspended when they make an allocation.