gfxreconstruct
gfxreconstruct copied to clipboard
Graphics API Capture and Replay Tools for Reconstructing Graphics Application Behavior
RE #1362. See: * `Dx12JsonConsumerBase::Process_ID3D12Device_CheckFeatureSupport` * `Dx12JsonConsumerBase::Process_IDXGIFactory5_CheckFeatureSupport` * `Dx12JsonConsumerBase::Process_ID3D12Resource_WriteToSubresource` * ???
### Probably Partial List * D3D12_PIPELINE_STATE_STREAM_DESC.root_signature_ptr See #1362
I've been putting effort into dumping addresses as hex strings and bitmasks without enums defining the bits as binary strings of ones and zeros but while that is handy for...
Currently blocked in `[black|block]lists.json` files, stubbed in C++ base consumer class, and manually implemented for replay and json consumers only but impls should be generatable. Pointer-related Convert issues like this...
Decode of the CheckFeatureSupport functions are very special cases due to them passing data through void pointers with type erasure. Decode and Consumer Process functions for them should still support...
To allow our build system and code to interoperate cleanly as a submodule of another project and more widely, we should use a consistent prefix like `GFXRECON_` (most common currently)...
For every meta command, every function, every method, that take a pointer to an opaque blob of memory, give them dumpability. There is function `RepresentBinaryFile` on branch https://github.com/andrew-lunarg/gfxreconstruct/tree/andy-enhance-better-d3d12-convert (possibly landed...
For example, the thread ID gets dropped on the floor here: ```cpp void Dx12DecoderBase::DispatchCreateHeapAllocationCommand(format::ThreadId thread_id, uint64_t allocation_id, uint64_t allocation_size) { GFXRECON_UNREFERENCED_PARAMETER(thread_id); /// @todo _Why_ is it unreferenced? for (auto consumer...
Resources like shader binaries clutter the JSON and are not human parsable. Storing them into files solves that but wastes space and time for many uses who don't need them...
Several of the thread_id fields of metadata blocks have comments casting doubt on their contents. E.g.: ```cpp ... // thread_id is here as a placeholder. Currently always set to 0....