blob: 9ecd7f5b620ae56d8d29f2c5b2bfaf655a200248 [file] [log] [blame] [edit]
///////////////////////////////////////////////////////////////////////////////
// //
// D3DReflectionDumper.h //
// Copyright (C) Microsoft Corporation. All rights reserved. //
// This file is distributed under the University of Illinois Open Source //
// License. See LICENSE.TXT for details. //
// //
// Use this to dump D3D Reflection data for testing. //
// //
///////////////////////////////////////////////////////////////////////////////
#pragma once
#include "DumpContext.h"
#include "dxc/Support/Global.h"
#include "dxc/Support/WinIncludes.h"
namespace hlsl {
namespace dump {
class D3DReflectionDumper : public DumpContext {
private:
bool m_bCheckByName = false;
const char *m_LastName = nullptr;
void SetLastName(const char *Name = nullptr) {
m_LastName = Name ? Name : "<nullptr>";
}
public:
D3DReflectionDumper(std::ostream &outStream) : DumpContext(outStream) {}
void SetCheckByName(bool bCheckByName) { m_bCheckByName = bCheckByName; }
void DumpShaderVersion(UINT Version);
void DumpDefaultValue(LPCVOID pDefaultValue, UINT Size);
void Dump(D3D12_SHADER_TYPE_DESC &tyDesc);
void Dump(D3D12_SHADER_VARIABLE_DESC &varDesc);
void Dump(D3D12_SHADER_BUFFER_DESC &Desc);
void Dump(D3D12_SHADER_INPUT_BIND_DESC &resDesc);
void Dump(D3D12_SIGNATURE_PARAMETER_DESC &elDesc);
void Dump(D3D12_SHADER_DESC &Desc);
void Dump(D3D12_FUNCTION_DESC &Desc);
void Dump(D3D12_LIBRARY_DESC &Desc);
void Dump(ID3D12ShaderReflectionType *pType);
void Dump(ID3D12ShaderReflectionVariable *pVar);
void Dump(ID3D12ShaderReflectionConstantBuffer *pCBReflection);
void Dump(ID3D12ShaderReflection *pShaderReflection);
void Dump(ID3D12FunctionReflection *pFunctionReflection);
void Dump(ID3D12LibraryReflection *pLibraryReflection);
};
} // namespace dump
} // namespace hlsl