694 строки
25 KiB
C++
694 строки
25 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// D3DReflectionStrings.cpp //
|
|
// Copyright (C) Microsoft Corporation. All rights reserved. //
|
|
// This file is distributed under the University of Illinois Open Source //
|
|
// License. See LICENSE.TXT for details. //
|
|
// //
|
|
// Used to convert reflection data types into strings. //
|
|
// //
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "dxc/Test/D3DReflectionStrings.h"
|
|
#include "dxc/DxilContainer/DxilContainer.h"
|
|
#include "dxc/Support/Global.h"
|
|
|
|
// Remove this workaround once newer version of d3dcommon.h can be compiled
|
|
// against
|
|
#define ADD_16_64_BIT_TYPES
|
|
#define ADD_SVC_BIT_FIELD
|
|
|
|
namespace hlsl {
|
|
namespace dump {
|
|
|
|
// ToString functions for D3D types
|
|
|
|
LPCSTR ToString(D3D_CBUFFER_TYPE CBType) {
|
|
switch (CBType) {
|
|
case D3D_CT_CBUFFER:
|
|
return "D3D_CT_CBUFFER";
|
|
case D3D_CT_TBUFFER:
|
|
return "D3D_CT_TBUFFER";
|
|
case D3D_CT_INTERFACE_POINTERS:
|
|
return "D3D_CT_INTERFACE_POINTERS";
|
|
case D3D_CT_RESOURCE_BIND_INFO:
|
|
return "D3D_CT_RESOURCE_BIND_INFO";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
LPCSTR ToString(D3D_SHADER_INPUT_TYPE Type) {
|
|
switch ((UINT32)Type) {
|
|
case D3D_SIT_CBUFFER:
|
|
return "D3D_SIT_CBUFFER";
|
|
case D3D_SIT_TBUFFER:
|
|
return "D3D_SIT_TBUFFER";
|
|
case D3D_SIT_TEXTURE:
|
|
return "D3D_SIT_TEXTURE";
|
|
case D3D_SIT_SAMPLER:
|
|
return "D3D_SIT_SAMPLER";
|
|
case D3D_SIT_UAV_RWTYPED:
|
|
return "D3D_SIT_UAV_RWTYPED";
|
|
case D3D_SIT_STRUCTURED:
|
|
return "D3D_SIT_STRUCTURED";
|
|
case D3D_SIT_UAV_RWSTRUCTURED:
|
|
return "D3D_SIT_UAV_RWSTRUCTURED";
|
|
case D3D_SIT_BYTEADDRESS:
|
|
return "D3D_SIT_BYTEADDRESS";
|
|
case D3D_SIT_UAV_RWBYTEADDRESS:
|
|
return "D3D_SIT_UAV_RWBYTEADDRESS";
|
|
case D3D_SIT_UAV_APPEND_STRUCTURED:
|
|
return "D3D_SIT_UAV_APPEND_STRUCTURED";
|
|
case D3D_SIT_UAV_CONSUME_STRUCTURED:
|
|
return "D3D_SIT_UAV_CONSUME_STRUCTURED";
|
|
case D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER:
|
|
return "D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER";
|
|
case (D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER + 1):
|
|
return "D3D_SIT_RTACCELERATIONSTRUCTURE";
|
|
case (D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER + 2):
|
|
return "D3D_SIT_UAV_FEEDBACKTEXTURE";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
LPCSTR ToString(D3D_RESOURCE_RETURN_TYPE ReturnType) {
|
|
switch (ReturnType) {
|
|
case D3D_RETURN_TYPE_UNORM:
|
|
return "D3D_RETURN_TYPE_UNORM";
|
|
case D3D_RETURN_TYPE_SNORM:
|
|
return "D3D_RETURN_TYPE_SNORM";
|
|
case D3D_RETURN_TYPE_SINT:
|
|
return "D3D_RETURN_TYPE_SINT";
|
|
case D3D_RETURN_TYPE_UINT:
|
|
return "D3D_RETURN_TYPE_UINT";
|
|
case D3D_RETURN_TYPE_FLOAT:
|
|
return "D3D_RETURN_TYPE_FLOAT";
|
|
case D3D_RETURN_TYPE_MIXED:
|
|
return "D3D_RETURN_TYPE_MIXED";
|
|
case D3D_RETURN_TYPE_DOUBLE:
|
|
return "D3D_RETURN_TYPE_DOUBLE";
|
|
case D3D_RETURN_TYPE_CONTINUED:
|
|
return "D3D_RETURN_TYPE_CONTINUED";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
LPCSTR ToString(D3D_SRV_DIMENSION Dimension) {
|
|
switch (Dimension) {
|
|
case D3D_SRV_DIMENSION_UNKNOWN:
|
|
return "D3D_SRV_DIMENSION_UNKNOWN";
|
|
case D3D_SRV_DIMENSION_BUFFER:
|
|
return "D3D_SRV_DIMENSION_BUFFER";
|
|
case D3D_SRV_DIMENSION_TEXTURE1D:
|
|
return "D3D_SRV_DIMENSION_TEXTURE1D";
|
|
case D3D_SRV_DIMENSION_TEXTURE1DARRAY:
|
|
return "D3D_SRV_DIMENSION_TEXTURE1DARRAY";
|
|
case D3D_SRV_DIMENSION_TEXTURE2D:
|
|
return "D3D_SRV_DIMENSION_TEXTURE2D";
|
|
case D3D_SRV_DIMENSION_TEXTURE2DARRAY:
|
|
return "D3D_SRV_DIMENSION_TEXTURE2DARRAY";
|
|
case D3D_SRV_DIMENSION_TEXTURE2DMS:
|
|
return "D3D_SRV_DIMENSION_TEXTURE2DMS";
|
|
case D3D_SRV_DIMENSION_TEXTURE2DMSARRAY:
|
|
return "D3D_SRV_DIMENSION_TEXTURE2DMSARRAY";
|
|
case D3D_SRV_DIMENSION_TEXTURE3D:
|
|
return "D3D_SRV_DIMENSION_TEXTURE3D";
|
|
case D3D_SRV_DIMENSION_TEXTURECUBE:
|
|
return "D3D_SRV_DIMENSION_TEXTURECUBE";
|
|
case D3D_SRV_DIMENSION_TEXTURECUBEARRAY:
|
|
return "D3D_SRV_DIMENSION_TEXTURECUBEARRAY";
|
|
case D3D_SRV_DIMENSION_BUFFEREX:
|
|
return "D3D_SRV_DIMENSION_BUFFEREX";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
LPCSTR ToString(D3D_PRIMITIVE_TOPOLOGY GSOutputTopology) {
|
|
switch (GSOutputTopology) {
|
|
case D3D_PRIMITIVE_TOPOLOGY_UNDEFINED:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_UNDEFINED";
|
|
case D3D_PRIMITIVE_TOPOLOGY_POINTLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_POINTLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_LINELIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_LINELIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_LINESTRIP:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_LINESTRIP";
|
|
case D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP";
|
|
case D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ";
|
|
case D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ";
|
|
case D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ";
|
|
case D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ";
|
|
case D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST";
|
|
case D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST:
|
|
return "D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
LPCSTR ToString(D3D_PRIMITIVE InputPrimitive) {
|
|
switch (InputPrimitive) {
|
|
case D3D_PRIMITIVE_UNDEFINED:
|
|
return "D3D_PRIMITIVE_UNDEFINED";
|
|
case D3D_PRIMITIVE_POINT:
|
|
return "D3D_PRIMITIVE_POINT";
|
|
case D3D_PRIMITIVE_LINE:
|
|
return "D3D_PRIMITIVE_LINE";
|
|
case D3D_PRIMITIVE_TRIANGLE:
|
|
return "D3D_PRIMITIVE_TRIANGLE";
|
|
case D3D_PRIMITIVE_LINE_ADJ:
|
|
return "D3D_PRIMITIVE_LINE_ADJ";
|
|
case D3D_PRIMITIVE_TRIANGLE_ADJ:
|
|
return "D3D_PRIMITIVE_TRIANGLE_ADJ";
|
|
case D3D_PRIMITIVE_1_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_1_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_2_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_2_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_3_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_3_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_4_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_4_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_5_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_5_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_6_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_6_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_7_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_7_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_8_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_8_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_9_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_9_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_10_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_10_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_11_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_11_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_12_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_12_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_13_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_13_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_14_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_14_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_15_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_15_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_16_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_16_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_17_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_17_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_18_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_18_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_19_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_19_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_20_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_20_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_21_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_21_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_22_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_22_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_23_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_23_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_24_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_24_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_25_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_25_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_26_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_26_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_27_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_27_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_28_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_28_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_29_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_29_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_30_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_30_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_31_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_31_CONTROL_POINT_PATCH";
|
|
case D3D_PRIMITIVE_32_CONTROL_POINT_PATCH:
|
|
return "D3D_PRIMITIVE_32_CONTROL_POINT_PATCH";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
LPCSTR ToString(D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive) {
|
|
switch (HSOutputPrimitive) {
|
|
case D3D_TESSELLATOR_OUTPUT_UNDEFINED:
|
|
return "D3D_TESSELLATOR_OUTPUT_UNDEFINED";
|
|
case D3D_TESSELLATOR_OUTPUT_POINT:
|
|
return "D3D_TESSELLATOR_OUTPUT_POINT";
|
|
case D3D_TESSELLATOR_OUTPUT_LINE:
|
|
return "D3D_TESSELLATOR_OUTPUT_LINE";
|
|
case D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW:
|
|
return "D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW";
|
|
case D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW:
|
|
return "D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
LPCSTR ToString(D3D_TESSELLATOR_PARTITIONING HSPartitioning) {
|
|
switch (HSPartitioning) {
|
|
case D3D_TESSELLATOR_PARTITIONING_UNDEFINED:
|
|
return "D3D_TESSELLATOR_PARTITIONING_UNDEFINED";
|
|
case D3D_TESSELLATOR_PARTITIONING_INTEGER:
|
|
return "D3D_TESSELLATOR_PARTITIONING_INTEGER";
|
|
case D3D_TESSELLATOR_PARTITIONING_POW2:
|
|
return "D3D_TESSELLATOR_PARTITIONING_POW2";
|
|
case D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD:
|
|
return "D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD";
|
|
case D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN:
|
|
return "D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
LPCSTR ToString(D3D_TESSELLATOR_DOMAIN TessellatorDomain) {
|
|
switch (TessellatorDomain) {
|
|
case D3D_TESSELLATOR_DOMAIN_UNDEFINED:
|
|
return "D3D_TESSELLATOR_DOMAIN_UNDEFINED";
|
|
case D3D_TESSELLATOR_DOMAIN_ISOLINE:
|
|
return "D3D_TESSELLATOR_DOMAIN_ISOLINE";
|
|
case D3D_TESSELLATOR_DOMAIN_TRI:
|
|
return "D3D_TESSELLATOR_DOMAIN_TRI";
|
|
case D3D_TESSELLATOR_DOMAIN_QUAD:
|
|
return "D3D_TESSELLATOR_DOMAIN_QUAD";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
|
|
#ifdef ADD_SVC_BIT_FIELD
|
|
// Disable warning about value not being valid in enum
|
|
#pragma warning(disable : 4063)
|
|
// FIXME: remove the define once D3D_SVC_BIT_FIELD added into
|
|
// D3D_SHADER_VARIABLE_CLASS.
|
|
#define D3D_SVC_BIT_FIELD \
|
|
((D3D_SHADER_VARIABLE_CLASS)(D3D_SVC_INTERFACE_POINTER + 1))
|
|
#endif
|
|
|
|
LPCSTR ToString(D3D_SHADER_VARIABLE_CLASS Class) {
|
|
switch (Class) {
|
|
case D3D_SVC_SCALAR:
|
|
return "D3D_SVC_SCALAR";
|
|
case D3D_SVC_VECTOR:
|
|
return "D3D_SVC_VECTOR";
|
|
case D3D_SVC_MATRIX_ROWS:
|
|
return "D3D_SVC_MATRIX_ROWS";
|
|
case D3D_SVC_MATRIX_COLUMNS:
|
|
return "D3D_SVC_MATRIX_COLUMNS";
|
|
case D3D_SVC_OBJECT:
|
|
return "D3D_SVC_OBJECT";
|
|
case D3D_SVC_STRUCT:
|
|
return "D3D_SVC_STRUCT";
|
|
case D3D_SVC_INTERFACE_CLASS:
|
|
return "D3D_SVC_INTERFACE_CLASS";
|
|
case D3D_SVC_INTERFACE_POINTER:
|
|
return "D3D_SVC_INTERFACE_POINTER";
|
|
case D3D_SVC_BIT_FIELD:
|
|
return "D3D_SVC_BIT_FIELD";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
|
|
#ifdef ADD_16_64_BIT_TYPES
|
|
// Disable warning about value not being valid in enum
|
|
#pragma warning(disable : 4063)
|
|
#define D3D_SVT_INT16 ((D3D_SHADER_VARIABLE_TYPE)58)
|
|
#define D3D_SVT_UINT16 ((D3D_SHADER_VARIABLE_TYPE)59)
|
|
#define D3D_SVT_FLOAT16 ((D3D_SHADER_VARIABLE_TYPE)60)
|
|
#define D3D_SVT_INT64 ((D3D_SHADER_VARIABLE_TYPE)61)
|
|
#define D3D_SVT_UINT64 ((D3D_SHADER_VARIABLE_TYPE)62)
|
|
#endif // ADD_16_64_BIT_TYPES
|
|
|
|
LPCSTR ToString(D3D_SHADER_VARIABLE_TYPE Type) {
|
|
switch (Type) {
|
|
case D3D_SVT_VOID:
|
|
return "D3D_SVT_VOID";
|
|
case D3D_SVT_BOOL:
|
|
return "D3D_SVT_BOOL";
|
|
case D3D_SVT_INT:
|
|
return "D3D_SVT_INT";
|
|
case D3D_SVT_FLOAT:
|
|
return "D3D_SVT_FLOAT";
|
|
case D3D_SVT_STRING:
|
|
return "D3D_SVT_STRING";
|
|
case D3D_SVT_TEXTURE:
|
|
return "D3D_SVT_TEXTURE";
|
|
case D3D_SVT_TEXTURE1D:
|
|
return "D3D_SVT_TEXTURE1D";
|
|
case D3D_SVT_TEXTURE2D:
|
|
return "D3D_SVT_TEXTURE2D";
|
|
case D3D_SVT_TEXTURE3D:
|
|
return "D3D_SVT_TEXTURE3D";
|
|
case D3D_SVT_TEXTURECUBE:
|
|
return "D3D_SVT_TEXTURECUBE";
|
|
case D3D_SVT_SAMPLER:
|
|
return "D3D_SVT_SAMPLER";
|
|
case D3D_SVT_SAMPLER1D:
|
|
return "D3D_SVT_SAMPLER1D";
|
|
case D3D_SVT_SAMPLER2D:
|
|
return "D3D_SVT_SAMPLER2D";
|
|
case D3D_SVT_SAMPLER3D:
|
|
return "D3D_SVT_SAMPLER3D";
|
|
case D3D_SVT_SAMPLERCUBE:
|
|
return "D3D_SVT_SAMPLERCUBE";
|
|
case D3D_SVT_PIXELSHADER:
|
|
return "D3D_SVT_PIXELSHADER";
|
|
case D3D_SVT_VERTEXSHADER:
|
|
return "D3D_SVT_VERTEXSHADER";
|
|
case D3D_SVT_PIXELFRAGMENT:
|
|
return "D3D_SVT_PIXELFRAGMENT";
|
|
case D3D_SVT_VERTEXFRAGMENT:
|
|
return "D3D_SVT_VERTEXFRAGMENT";
|
|
case D3D_SVT_UINT:
|
|
return "D3D_SVT_UINT";
|
|
case D3D_SVT_UINT8:
|
|
return "D3D_SVT_UINT8";
|
|
case D3D_SVT_GEOMETRYSHADER:
|
|
return "D3D_SVT_GEOMETRYSHADER";
|
|
case D3D_SVT_RASTERIZER:
|
|
return "D3D_SVT_RASTERIZER";
|
|
case D3D_SVT_DEPTHSTENCIL:
|
|
return "D3D_SVT_DEPTHSTENCIL";
|
|
case D3D_SVT_BLEND:
|
|
return "D3D_SVT_BLEND";
|
|
case D3D_SVT_BUFFER:
|
|
return "D3D_SVT_BUFFER";
|
|
case D3D_SVT_CBUFFER:
|
|
return "D3D_SVT_CBUFFER";
|
|
case D3D_SVT_TBUFFER:
|
|
return "D3D_SVT_TBUFFER";
|
|
case D3D_SVT_TEXTURE1DARRAY:
|
|
return "D3D_SVT_TEXTURE1DARRAY";
|
|
case D3D_SVT_TEXTURE2DARRAY:
|
|
return "D3D_SVT_TEXTURE2DARRAY";
|
|
case D3D_SVT_RENDERTARGETVIEW:
|
|
return "D3D_SVT_RENDERTARGETVIEW";
|
|
case D3D_SVT_DEPTHSTENCILVIEW:
|
|
return "D3D_SVT_DEPTHSTENCILVIEW";
|
|
case D3D_SVT_TEXTURE2DMS:
|
|
return "D3D_SVT_TEXTURE2DMS";
|
|
case D3D_SVT_TEXTURE2DMSARRAY:
|
|
return "D3D_SVT_TEXTURE2DMSARRAY";
|
|
case D3D_SVT_TEXTURECUBEARRAY:
|
|
return "D3D_SVT_TEXTURECUBEARRAY";
|
|
case D3D_SVT_HULLSHADER:
|
|
return "D3D_SVT_HULLSHADER";
|
|
case D3D_SVT_DOMAINSHADER:
|
|
return "D3D_SVT_DOMAINSHADER";
|
|
case D3D_SVT_INTERFACE_POINTER:
|
|
return "D3D_SVT_INTERFACE_POINTER";
|
|
case D3D_SVT_COMPUTESHADER:
|
|
return "D3D_SVT_COMPUTESHADER";
|
|
case D3D_SVT_DOUBLE:
|
|
return "D3D_SVT_DOUBLE";
|
|
case D3D_SVT_RWTEXTURE1D:
|
|
return "D3D_SVT_RWTEXTURE1D";
|
|
case D3D_SVT_RWTEXTURE1DARRAY:
|
|
return "D3D_SVT_RWTEXTURE1DARRAY";
|
|
case D3D_SVT_RWTEXTURE2D:
|
|
return "D3D_SVT_RWTEXTURE2D";
|
|
case D3D_SVT_RWTEXTURE2DARRAY:
|
|
return "D3D_SVT_RWTEXTURE2DARRAY";
|
|
case D3D_SVT_RWTEXTURE3D:
|
|
return "D3D_SVT_RWTEXTURE3D";
|
|
case D3D_SVT_RWBUFFER:
|
|
return "D3D_SVT_RWBUFFER";
|
|
case D3D_SVT_BYTEADDRESS_BUFFER:
|
|
return "D3D_SVT_BYTEADDRESS_BUFFER";
|
|
case D3D_SVT_RWBYTEADDRESS_BUFFER:
|
|
return "D3D_SVT_RWBYTEADDRESS_BUFFER";
|
|
case D3D_SVT_STRUCTURED_BUFFER:
|
|
return "D3D_SVT_STRUCTURED_BUFFER";
|
|
case D3D_SVT_RWSTRUCTURED_BUFFER:
|
|
return "D3D_SVT_RWSTRUCTURED_BUFFER";
|
|
case D3D_SVT_APPEND_STRUCTURED_BUFFER:
|
|
return "D3D_SVT_APPEND_STRUCTURED_BUFFER";
|
|
case D3D_SVT_CONSUME_STRUCTURED_BUFFER:
|
|
return "D3D_SVT_CONSUME_STRUCTURED_BUFFER";
|
|
case D3D_SVT_MIN8FLOAT:
|
|
return "D3D_SVT_MIN8FLOAT";
|
|
case D3D_SVT_MIN10FLOAT:
|
|
return "D3D_SVT_MIN10FLOAT";
|
|
case D3D_SVT_MIN16FLOAT:
|
|
return "D3D_SVT_MIN16FLOAT";
|
|
case D3D_SVT_MIN12INT:
|
|
return "D3D_SVT_MIN12INT";
|
|
case D3D_SVT_MIN16INT:
|
|
return "D3D_SVT_MIN16INT";
|
|
case D3D_SVT_MIN16UINT:
|
|
return "D3D_SVT_MIN16UINT";
|
|
case D3D_SVT_INT16:
|
|
return "D3D_SVT_INT16";
|
|
case D3D_SVT_UINT16:
|
|
return "D3D_SVT_UINT16";
|
|
case D3D_SVT_FLOAT16:
|
|
return "D3D_SVT_FLOAT16";
|
|
case D3D_SVT_INT64:
|
|
return "D3D_SVT_INT64";
|
|
case D3D_SVT_UINT64:
|
|
return "D3D_SVT_UINT64";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
|
|
LPCSTR ToString(D3D_SHADER_VARIABLE_FLAGS Flag) {
|
|
switch (Flag) {
|
|
case D3D_SVF_USERPACKED:
|
|
return "D3D_SVF_USERPACKED";
|
|
case D3D_SVF_USED:
|
|
return "D3D_SVF_USED";
|
|
case D3D_SVF_INTERFACE_POINTER:
|
|
return "D3D_SVF_INTERFACE_POINTER";
|
|
case D3D_SVF_INTERFACE_PARAMETER:
|
|
return "D3D_SVF_INTERFACE_PARAMETER";
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
LPCSTR ToString(D3D_SHADER_INPUT_FLAGS Flag) {
|
|
switch (Flag) {
|
|
case D3D_SIF_USERPACKED:
|
|
return "D3D_SIF_USERPACKED";
|
|
case D3D_SIF_COMPARISON_SAMPLER:
|
|
return "D3D_SIF_COMPARISON_SAMPLER";
|
|
case D3D_SIF_TEXTURE_COMPONENT_0:
|
|
return "D3D_SIF_TEXTURE_COMPONENT_0";
|
|
case D3D_SIF_TEXTURE_COMPONENT_1:
|
|
return "D3D_SIF_TEXTURE_COMPONENT_1";
|
|
case D3D_SIF_TEXTURE_COMPONENTS:
|
|
return "D3D_SIF_TEXTURE_COMPONENTS";
|
|
case D3D_SIF_UNUSED:
|
|
return "D3D_SIF_UNUSED";
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
LPCSTR ToString(D3D_SHADER_CBUFFER_FLAGS Flag) {
|
|
switch (Flag) {
|
|
case D3D_CBF_USERPACKED:
|
|
return "D3D_CBF_USERPACKED";
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
LPCSTR ToString(D3D_PARAMETER_FLAGS Flag) {
|
|
switch (Flag) {
|
|
case D3D_PF_IN:
|
|
return "D3D_PF_IN";
|
|
case D3D_PF_OUT:
|
|
return "D3D_PF_OUT";
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
#ifndef D3D_NAME_SHADINGRATE
|
|
#define D3D_NAME_SHADINGRATE \
|
|
((D3D_NAME)hlsl::DxilProgramSigSemantic::ShadingRate)
|
|
#endif
|
|
#ifndef D3D_NAME_CULLPRIMITIVE
|
|
#define D3D_NAME_CULLPRIMITIVE \
|
|
((D3D_NAME)hlsl::DxilProgramSigSemantic::CullPrimitive)
|
|
#endif
|
|
|
|
LPCSTR ToString(D3D_NAME Name) {
|
|
switch (Name) {
|
|
case D3D_NAME_UNDEFINED:
|
|
return "D3D_NAME_UNDEFINED";
|
|
case D3D_NAME_POSITION:
|
|
return "D3D_NAME_POSITION";
|
|
case D3D_NAME_CLIP_DISTANCE:
|
|
return "D3D_NAME_CLIP_DISTANCE";
|
|
case D3D_NAME_CULL_DISTANCE:
|
|
return "D3D_NAME_CULL_DISTANCE";
|
|
case D3D_NAME_RENDER_TARGET_ARRAY_INDEX:
|
|
return "D3D_NAME_RENDER_TARGET_ARRAY_INDEX";
|
|
case D3D_NAME_VIEWPORT_ARRAY_INDEX:
|
|
return "D3D_NAME_VIEWPORT_ARRAY_INDEX";
|
|
case D3D_NAME_VERTEX_ID:
|
|
return "D3D_NAME_VERTEX_ID";
|
|
case D3D_NAME_PRIMITIVE_ID:
|
|
return "D3D_NAME_PRIMITIVE_ID";
|
|
case D3D_NAME_INSTANCE_ID:
|
|
return "D3D_NAME_INSTANCE_ID";
|
|
case D3D_NAME_IS_FRONT_FACE:
|
|
return "D3D_NAME_IS_FRONT_FACE";
|
|
case D3D_NAME_SAMPLE_INDEX:
|
|
return "D3D_NAME_SAMPLE_INDEX";
|
|
case D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR:
|
|
return "D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR";
|
|
case D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR:
|
|
return "D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR";
|
|
case D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR:
|
|
return "D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR";
|
|
case D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR:
|
|
return "D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR";
|
|
case D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR:
|
|
return "D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR";
|
|
case D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR:
|
|
return "D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR";
|
|
case D3D_NAME_BARYCENTRICS:
|
|
return "D3D_NAME_BARYCENTRICS";
|
|
case D3D_NAME_TARGET:
|
|
return "D3D_NAME_TARGET";
|
|
case D3D_NAME_DEPTH:
|
|
return "D3D_NAME_DEPTH";
|
|
case D3D_NAME_COVERAGE:
|
|
return "D3D_NAME_COVERAGE";
|
|
case D3D_NAME_DEPTH_GREATER_EQUAL:
|
|
return "D3D_NAME_DEPTH_GREATER_EQUAL";
|
|
case D3D_NAME_DEPTH_LESS_EQUAL:
|
|
return "D3D_NAME_DEPTH_LESS_EQUAL";
|
|
case D3D_NAME_STENCIL_REF:
|
|
return "D3D_NAME_STENCIL_REF";
|
|
case D3D_NAME_INNER_COVERAGE:
|
|
return "D3D_NAME_INNER_COVERAGE";
|
|
case D3D_NAME_SHADINGRATE:
|
|
return "D3D_NAME_SHADINGRATE";
|
|
case D3D_NAME_CULLPRIMITIVE:
|
|
return "D3D_NAME_CULLPRIMITIVE";
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
LPCSTR ToString(D3D_REGISTER_COMPONENT_TYPE CompTy) {
|
|
switch (CompTy) {
|
|
case D3D_REGISTER_COMPONENT_UNKNOWN:
|
|
return "D3D_REGISTER_COMPONENT_UNKNOWN";
|
|
case D3D_REGISTER_COMPONENT_UINT32:
|
|
return "D3D_REGISTER_COMPONENT_UINT32";
|
|
case D3D_REGISTER_COMPONENT_SINT32:
|
|
return "D3D_REGISTER_COMPONENT_SINT32";
|
|
case D3D_REGISTER_COMPONENT_FLOAT32:
|
|
return "D3D_REGISTER_COMPONENT_FLOAT32";
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
LPCSTR ToString(D3D_MIN_PRECISION MinPrec) {
|
|
switch (MinPrec) {
|
|
case D3D_MIN_PRECISION_DEFAULT:
|
|
return "D3D_MIN_PRECISION_DEFAULT";
|
|
case D3D_MIN_PRECISION_FLOAT_16:
|
|
return "D3D_MIN_PRECISION_FLOAT_16";
|
|
case D3D_MIN_PRECISION_FLOAT_2_8:
|
|
return "D3D_MIN_PRECISION_FLOAT_2_8";
|
|
case D3D_MIN_PRECISION_RESERVED:
|
|
return "D3D_MIN_PRECISION_RESERVED";
|
|
case D3D_MIN_PRECISION_SINT_16:
|
|
return "D3D_MIN_PRECISION_SINT_16";
|
|
case D3D_MIN_PRECISION_UINT_16:
|
|
return "D3D_MIN_PRECISION_UINT_16";
|
|
case D3D_MIN_PRECISION_ANY_16:
|
|
return "D3D_MIN_PRECISION_ANY_16";
|
|
case D3D_MIN_PRECISION_ANY_10:
|
|
return "D3D_MIN_PRECISION_ANY_10";
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
LPCSTR CompMaskToString(unsigned CompMask) {
|
|
static const LPCSTR masks[16] = {
|
|
"----", "x---", "-y--", "xy--", "--z-", "x-z-", "-yz-", "xyz-",
|
|
"---w", "x--w", "-y-w", "xy-w", "--zw", "x-zw", "-yzw", "xyzw"};
|
|
if (CompMask < 16) {
|
|
return masks[CompMask];
|
|
}
|
|
return "<invalid mask>";
|
|
}
|
|
|
|
// These macros define the implementation of the DXC ToString functions
|
|
#define DEF_RDAT_ENUMS DEF_RDAT_DUMP_IMPL
|
|
#define DEF_DXIL_ENUMS DEF_RDAT_DUMP_IMPL
|
|
#include "dxc/DxilContainer/RDAT_Macros.inl"
|
|
|
|
} // namespace dump
|
|
} // namespace hlsl
|