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

PIX: Cherry pick (split vector writes, and SAT pass returns modification status) #7027

Merged
merged 2 commits into from
Dec 5, 2024

Conversation

jeffnn
Copy link
Collaborator

@jeffnn jeffnn commented Dec 5, 2024

Original PRs:
#6990
(cherry picked from commit a03a77f)

#7010
(cherry picked from commit 848b7c4)

…osoft#6990)

Bit of background: PIX's debug passes add new allocas, stores to which
tie debug info to DXIL Values.
In the case of a preexisting alloca, PIX will still add its debug
writes, but the codegen may have emitted vector-valued stores.
Concretely, this happens for the ray payload and RayDesc structs in DXR.
Those vector-values stores were being treated incorrectly, resulting in
missing values in the PIX shader debugger.

This change splits vector-valued stores to such allocas into
extractelement/scalar-stores, which enables the rest of the PIX
instrumentation to function as expected.

(Worth noting that this change only applies to the PIX shader debugging
pass.)

(cherry picked from commit a03a77f)
…ed anything (microsoft#7010)

The SAT pass will now report a string when it finds that no resource
access was performed by a module.

This solves two issues.
-The SAT pass, when operating on a shader that has no resource access,
will add a resource declaration for the PIX output UAV. This becomes a
problem for PIX in terms of juggling root signatures and/or root
parameters.
-SAT is a notoriously time-consuming operation in PIX, so if the SAT
pass can report that its results do not need to be re-packaged into a
new container for passing to the d3d API, then PIX can avoid the
overhead of doing so.

But of course we need to be careful that the SAT pass doesn't
erroneously report that it didn't modify the module when in fact it did,
cuz then PIX would fail to notice some dynamic resource accesses. That's
what the tests are for.

(cherry picked from commit 848b7c4)
@jeffnn jeffnn self-assigned this Dec 5, 2024
@jeffnn jeffnn requested a review from a team as a code owner December 5, 2024 00:31
@jeffnn jeffnn merged commit 78e1dd1 into microsoft:release-1.8.2407 Dec 5, 2024
13 checks passed
@jeffnn jeffnn deleted the PIX_CP_2024_12 branch December 5, 2024 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants