PIX: Preclude debug output of ray query handle from phi or select (since the value isn't really an int, it's a handle)#6309
Merged
jeffnn merged 10 commits intomicrosoft:mainfrom Feb 27, 2024
Conversation
tex3d
reviewed
Feb 14, 2024
tex3d
reviewed
Feb 14, 2024
jeffnn
commented
Feb 15, 2024
tex3d
requested changes
Feb 21, 2024
adam-yang
approved these changes
Feb 23, 2024
Contributor
|
Do we need the SPIR-V submodule updates? |
Collaborator
Author
Ach! That snuck in. Undone... |
jeffnn
added a commit
to jeffnn/DirectXShaderCompiler
that referenced
this pull request
Feb 27, 2024
…nce the value isn't really an int, it's a handle) (microsoft#6309) AllocateRayQuery returns an int, but it's not really an int: it's a handle to the query. Thus, it's not sensible for the PIX debugging instrumentation to attempt to write it out to the debug-data-UAV. The previous code did an explicit check against the type of the value to be written, but if that value is actually a phi itself, then that check would fail. So now we recursively run through the phi values looking to see if any of its antecedents are a phi, and if so, refuse to send its value to the UAV. (cherry picked from commit 5a31785)
jeffnn
added a commit
to jeffnn/DirectXShaderCompiler
that referenced
this pull request
Feb 27, 2024
…nce the value isn't really an int, it's a handle) (microsoft#6309) AllocateRayQuery returns an int, but it's not really an int: it's a handle to the query. Thus, it's not sensible for the PIX debugging instrumentation to attempt to write it out to the debug-data-UAV. The previous code did an explicit check against the type of the value to be written, but if that value is actually a phi itself, then that check would fail. So now we recursively run through the phi values looking to see if any of its antecedents are a phi, and if so, refuse to send its value to the UAV. (cherry picked from commit 5a31785)
jeffnn
added a commit
that referenced
this pull request
Feb 28, 2024
Original PR: #6309 Original commit: 5a31785 AllocateRayQuery returns an int, but it's not really an int: it's a handle to the query. Thus, it's not sensible for the PIX debugging instrumentation to attempt to write it out to the debug-data-UAV. The previous code did an explicit check against the type of the value to be written, but if that value is actually a phi itself, then that check would fail. So now we recursively run through the phi values looking to see if any of its antecedents are a phi, and if so, refuse to send its value to the UAV. (cherry picked from commit 5a31785)
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.
AllocateRayQuery returns an int, but it's not really an int: it's a handle to the query. Thus, it's not sensible for the PIX debugging instrumentation to attempt to write it out to the debug-data-UAV. The previous code did an explicit check against the type of the value to be written, but if that value is actually a phi itself, then that check would fail. So now we recursively run through the phi values looking to see if any of its antecedents are a phi, and if so, refuse to send its value to the UAV.