-
Notifications
You must be signed in to change notification settings - Fork 121
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
Use reflection to get DXIL library shader exports #1710
Conversation
CI gfxreconstruct build queued with queue ID 249564. |
CI gfxreconstruct build # 4762 running. |
CI gfxreconstruct build # 4762 failed. |
This is failing because it is finding the wrong |
7ddf34f
to
85b5700
Compare
CI gfxreconstruct build queued with queue ID 280092. |
CI gfxreconstruct build # 5089 running. |
CI gfxreconstruct build # 5089 failed. |
85b5700
to
af56818
Compare
CI gfxreconstruct build queued with queue ID 284685. |
CI gfxreconstruct build # 284685 cancelled. |
af56818
to
876c85c
Compare
CI gfxreconstruct build queued with queue ID 284709. |
CI gfxreconstruct build # 5150 running. |
CI gfxreconstruct build # 5150 failed. |
CI gfxreconstruct build queued with queue ID 285414. |
CI gfxreconstruct build # 5161 running. |
1ff7fab
to
025f737
Compare
CI gfxreconstruct build queued with queue ID 285445. |
CI gfxreconstruct build # 5162 running. |
CI gfxreconstruct build # 5162 failed. |
025f737
to
d426303
Compare
CI gfxreconstruct build queued with queue ID 285554. |
#if defined(GFXRECON_DXC_SUPPORT) | ||
// If D3D12_DXIL_LIBRARY_DESC::NumExports == 0, everything in the DXIL library is exported. Use | ||
// reflection to get the list of exported shader names. | ||
HRESULT hr; |
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.
There's a lot of machinery here - do we know how it might affect perf to do this work?
Wondering if any of these things can be a 1-time init and reusable thing? For instance all DxcCreateInstance
calls
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 did not do any specific performance measuring. This code should only run during unoptimized DXR or EI replay where performance is already heavily affected.
The dxc_utils
object could be reused but I don't know whether that is a heavy-weight operation. The other classes are based on the incoming DXIL library so the code would need to compare the DXIL library's bytes to detect if previous objects or results could be reused.
CI gfxreconstruct build # 5165 running. |
CI gfxreconstruct build # 5165 failed. |
d426303
to
6f13058
Compare
CI gfxreconstruct build queued with queue ID 286451. |
CI gfxreconstruct build # 5181 running. |
CI gfxreconstruct build # 5181 failed. |
{ | ||
// Create a DXC blob from the DXIL library's bytes. | ||
graphics::dx12::IDxcBlobEncodingComPtr dxc_blob_encoding; | ||
hr = dxc_utils->CreateBlob(dxil_lib_desc_decoder->GetPointer()->DXILLibrary.pShaderBytecode, |
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 think it should be possible to use CreateBlobFromPinned here to avoid a copy to a new allocation,
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.
Changed CreateBlob
to CreateBlobFromPinned
.
6f13058
to
dcb9f2b
Compare
CI gfxreconstruct build queued with queue ID 287023. |
CI gfxreconstruct build # 5192 running. |
CI gfxreconstruct build # 5192 failed. |
CI gfxreconstruct build queued with queue ID 289911. |
CI gfxreconstruct build # 5225 running. |
CI gfxreconstruct build # 5225 passed. |
No description provided.