baldurk
|
e4aff40405
|
Rename basic disassembly type on D3D12 to include DXIL
|
2020-06-18 17:22:44 +01:00 |
|
baldurk
|
23c23951ad
|
Account for padding in DXIL bitcode chunk
|
2020-06-18 17:22:44 +01:00 |
|
baldurk
|
993204b817
|
Allow capturing with DXIL shaders. Closes #1718
|
2020-06-18 17:22:44 +01:00 |
|
baldurk
|
6783f6a851
|
Improve handling if reflection information is stripped
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
b55d4c1c3f
|
Prefer to get reflection information from STAT chunk if present
* This has some type information still present that's stripped out of the DXIL
chunk
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
11fa7686c4
|
Allow enabling D3D12ExperimentalShaderModels, and enable it on replay
* This needs to happen to allow loading unsigned DXIL
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
743d75c510
|
Update DX headers to latest from SDK 10.0.19041
* Don't allow querying for the new interfaces since we don't support anything in
them.
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
b7570358a4
|
Handle dx.op.annotateHandle type annotations
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
be65ec48d7
|
Process cbuffer/structure types with type annotations
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
c112b3d2c0
|
Reflect SRVs and UAVs
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
ba8b49e4d8
|
Handle register name for stencil ref output in DXBC bytecode
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
b4ae6c4b10
|
Start adding reflection based on the metadata
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
2f10c52b0c
|
Remove some unused fields in DXBC reflection
* These are present in the DXBC file itself but we don't use them
|
2020-06-18 17:22:43 +01:00 |
|
baldurk
|
fc5c58a6c9
|
Move reflection to separate file, implement GetOutputTopology()
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
6fcd4fee91
|
Ignore PSV0 chunk
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
b4db14915a
|
Disassemble empty types with no padding
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
505a674b85
|
Ensure DXIL populates compute shader fake input signature
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
2081c4219c
|
Ignore DXIL STAT chunk since we decode bytecode always
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
fec709b2d1
|
Support using ILDN to locate separate debug info
* This works the same way as the existing separate pdb support
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
57721e4688
|
Include new ILDN chunk and global flags in disassembly
* This is used for both DXBC and DXIL bytecode
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
6641030fbc
|
Print types in same order as LLVM
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
d73452f012
|
Print metadata values inline instead of referencing them by number
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
df1187b8ee
|
Support naming basic blocks in function symbol table
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
343e13def0
|
Fix disassembly of DIDerivedType
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
6093690737
|
Match LLVM's escaping behaviour
|
2020-06-18 17:22:42 +01:00 |
|
baldurk
|
c1838c89fc
|
Handle atomic instructions
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
5a976e55ea
|
Fetch compute thread dimension from dx.entrypoint metadata
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
77d60b72da
|
Save address space in pointer types
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
b54248ad49
|
Fix indexing of symbols for metadata
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
e29502ddcb
|
Handle switch opcode
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
26d4244d25
|
Fix disassembly of DILexicalBlock
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
340bf9f805
|
Add handling for branching and phi nodes
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
08cd7ae0e0
|
Handle explicit debug info
* Some locations are given as metadata even though most appear through
DEBUG_LOC, so ensure we handle these.
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
8b57989b3f
|
Disassemble global variables with initialisers properly
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
c8742a1456
|
Handle extract/insert/shuffle vector and aggregate operations
* DXIL supposedly won't use these, but handle them just in case
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
a6c8949335
|
Handle compare and select operations
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
d99a8536ca
|
Decode alloca/gep/load/store
|
2020-06-18 17:22:41 +01:00 |
|
baldurk
|
591e02b565
|
Handled attached metadata
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
10da3b73ae
|
Add support for DISubrange
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
9697bc294d
|
Add helper to find and cache void type
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
0000916e75
|
Expose svbr rotated encoding as static member of LLVM bit reader
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
bfea4427aa
|
Stub out exception handling instructions we don't expect to appear
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
657a5a0c39
|
Handle binops in functions
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
6f950afea7
|
Fix display of double values
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
84da098a00
|
Only pad exponential float printing of exponent to 2 decimal digits
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
41cf02aa53
|
Use %e for printing floats
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
ef076f962a
|
Disassemble all bitcasts the same way
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
4c4cdae5a9
|
Remove extra space in type declarations
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
80205a887c
|
Add special zeroinitializer disassembly
|
2020-06-18 17:22:40 +01:00 |
|
baldurk
|
c94b157165
|
Remove bitcode dump functions
|
2020-06-18 17:22:40 +01:00 |
|