-
Notifications
You must be signed in to change notification settings - Fork 126
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
Upgrade to Agility SDK 1.610.5 #1307
Conversation
CI gfxreconstruct build queued with queue ID 60295. |
CI gfxreconstruct build # 3375 running. |
CI gfxreconstruct build # 3375 failed. |
CI gfxreconstruct build queued with queue ID 60457. |
encoder->EncodeUInt32Value(numResourceDescs); | ||
EncodeStructArray(encoder, pResourceDescs, numResourceDescs); | ||
encoder->EncodeUInt32Array(pNumCastableFormats, numResourceDescs); | ||
for (UINT i = 0; i < numResourceDescs; i++) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not able to find any documentation for GetResourceAllocationInfo3
beyond the declaration in d3d12.h
, but based on the arguments it looks like ppCastableFormats
is an array of size numResources
and each ith
entry of ppCastableFormats
is an array of size pNumCastableFormats[i]
. Both pNumCastableFormats
and ppCastableFormats
are marked as optional arguments so they may be null.
This 2D array encoding appears to be a unique case for DX12. There is an existing method ParameterEncoder::EncodeArray2D
that might be useful for handling the encoding of ppCastableFormats
. See also ParameterEncoder::EncodeUInt32Array2D
.
Also, because GetResourceAllocationInfo3
is added to blacklists.json
there needs to be a custom decoder in Dx12DecoderBase
and handling for it in Dx12DecoderBase::DecodeMethodCall
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok updated code. I added the missing decode paths and tweaked the encode. Spent a little time trying to adopt the 2D array encoders, but haven't had luck there getting past the compiler. So just encoding the enums values one by one in this case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This commit shows an example of using EncodeArray2D
, although I don't have a test case to verify it with.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done - thanks for the help tightening this up
CI gfxreconstruct build # 3378 running. |
CI gfxreconstruct build # 3378 passed. |
CI gfxreconstruct build queued with queue ID 61356. |
CI gfxreconstruct build # 3381 running. |
CI gfxreconstruct build # 3381 failed. |
CI gfxreconstruct build queued with queue ID 68797. |
CI gfxreconstruct build # 3410 running. |
CI gfxreconstruct build # 3410 failed. |
CI gfxreconstruct build queued with queue ID 69194. |
CI gfxreconstruct build # 3413 running. |
CI gfxreconstruct build # 3413 passed. |
Problem
As cutting edge apps adopt features of newer Agility SDKs, GFXR needs to keep up in order to reliably capture/replay those apps.
Solution
Upgrade from 1.606.4 to 1.610.5
Testing
Was able to capture/replay a few apps using the upgraded SDK.