Class D3D12PlaybackSupport

Nested Relationships

Nested Types

Class Documentation

class D3D12PlaybackSupport

Public Functions

D3D12PlaybackSupport()
~D3D12PlaybackSupport()
void TranslateD3D12GPUVirtualAddress(D3D12_GPU_VIRTUAL_ADDRESS &address)
void TranslateD3D12CPUDescriptorHandle(D3D12_CPU_DESCRIPTOR_HANDLE &address)
void TranslateD3D12GPUDescriptorHandle(D3D12_GPU_DESCRIPTOR_HANDLE &address)
void OnGetGPUVirtualAddress(ID3D12Resource *resource, uint64_t captureTimeValue, GPADispatchTable const *&table)
void OnCreateOrAddToStateObject(ID3D12StateObject *stateObject, D3D12_STATE_OBJECT_DESC const *pDesc, ID3D12StateObject *stateObjectToGrowFrom)
void OnGetShaderIdentifier(ID3D12StateObjectProperties *properties, LPCWSTR pExportName, void *captureTimeIdentifier, GPADispatchTable const *&table)
std::map<gpa::utility::directx::D3D12ShaderIdentifier, gpa::utility::directx::D3D12ShaderIdentifier> const &GetReverseShaderMapping(ID3D12StateObject *stateObj)
void ApplySubcaptureReverseShaderMapping(ID3D12StateObject *stateObject, std::map<gpa::utility::directx::D3D12ShaderIdentifier, gpa::utility::directx::D3D12ShaderIdentifier> const &revMapping)
void OnPreCreateDescriptorHeap(uint64_t captureDeviceKey)
void OnPostCreateDescriptorHeap(ID3D12DescriptorHeap *heap)
void OnGetDescriptorHandleIncrementSize(uint64_t captureDeviceKey, D3D12_DESCRIPTOR_HEAP_TYPE descriptorHeapType, uint32_t captureIncrementSize)
void OnGetCPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap *heap, D3D12_CPU_DESCRIPTOR_HANDLE *captureTimeValue, GPADispatchTable const *&table)
void OnGetGPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap *heap, D3D12_GPU_DESCRIPTOR_HANDLE *captureTimeValue, GPADispatchTable const *&table)
void OnSetEventOnCompletion(ID3D12Fence *fence, UINT64 value, HANDLE *hEvent, ObjectMap *objMap)
std::map<uint64_t, D3D12_GPU_VIRTUAL_ADDRESS_RANGE> &GetGpuVirtualAddressMap()
uint64_t GetGpuVirtualAddressMapUpdateTimestamp()
utility::directx::D3D12ShaderIdentifier const *GetCaptureD3D12ShaderIdentifier(utility::directx::D3D12ShaderIdentifier const &playbackIdentifier, ID3D12StateObject *stateObj) const
std::map<uint64_t, DescriptorHeapDataDX12*> &GetDescriptorHeapByCaptureAddressMap()
uint64_t GetDescriptorHeapByCaptureAddressMapUpdateTimestamp()
std::vector<DescriptorHeapDataDX12*> &GetDescriptorHeapByIndexVec()
void EnumerateKnownStateObjects(std::function<void(ID3D12StateObject*)> callback)
std::map<ID3D12DescriptorHeap*, uint64_t> &GetCaptureDeviceKeyByHeap()
std::map<std::pair<uint64_t, D3D12_DESCRIPTOR_HEAP_TYPE>, uint32_t> &GetCaptureDescriptorIncrementSizeByHeapTypeMap()
void Clear()
void RegisterRaytracingArgumentsNotifier(raytracing::directx::RaytracingArgumentsNotifier *notifier)
raytracing::directx::RaytracingArgumentsNotifier *GetRegisteredRaytracingArgumentsNotifier()
void UnregisterRaytracingArgumentsNotifier()
bool UseOldRaytracingPatching() const
void EnableOldRaytracingPatching()
bool PrintPlaybackSizeMismatchMessages() const
void MutePlaybackSizeMismatchMessages()
void RegisterAccelerationStructureReplacement(D3D12_GPU_VIRTUAL_ADDRESS org, D3D12_GPU_VIRTUAL_ADDRESS replacement)
void UnregisterAccelerationStructureReplacement(D3D12_GPU_VIRTUAL_ADDRESS org)
void TranslateD3D12GPUVirtualAddressSkipASReplacement(D3D12_GPU_VIRTUAL_ADDRESS &address)
std::map<D3D12_GPU_VIRTUAL_ADDRESS, D3D12_GPU_VIRTUAL_ADDRESS> const &GetGpuVirtualAddressASReplacementMap() const
uint64_t GetGpuVirtualAddressASReplacementMapUpdateTimestamp() const
cross_gpu::playback::D3D12ResourcePlacementManager *GetOrCreateResourcePlacementManager(cross_gpu::TObjectKey deviceKey)
cross_gpu::playback::D3D12AccelerationStructurePlacementManager *GetAccelerationStructurePlacementManager()

Public Static Functions

static bool TranslateD3D12ShaderIdentifier(utility::directx::D3D12ShaderIdentifier &identifier, ID3D12StateObject *stateObj, std::wstring const **ppExportName)
static void EnumerateKnownShaderMapping(ID3D12StateObject *stateObject, std::function<void(gpa::utility::directx::D3D12ShaderIdentifier captureTime, gpa::utility::directx::D3D12ShaderIdentifier playbackTime, std::wstring const *exportName)> cb)
static size_t GetKnownShaderMappingCount(ID3D12StateObject *stateObject)
static uint64_t GetLastMappingUpdateTimestamp(ID3D12StateObject *stateObj)
static void OnGetShaderIdentifier(ID3D12StateObject *stateObject, ID3D12StateObjectProperties *properties, LPCWSTR pExportName, void *captureTimeIdentifier, GPADispatchTable const *&table)
struct DescriptorHeapDataDX12

Public Members

uint32_t uniqueSequentialID = 0
uint32_t incrementSize = 0
D3D12_DESCRIPTOR_HEAP_TYPE descriptorHeapType = D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES
D3D12_CPU_DESCRIPTOR_HANDLE cpuHandle = {}
D3D12_GPU_DESCRIPTOR_HANDLE gpuHandle = {}
ID3D12DescriptorHeap *heap = nullptr