D3D11_TRACE_STATS 구조체(d3d11shadertracing.h)
추적에 대한 통계를 지정합니다.
구문
typedef struct D3D11_TRACE_STATS {
D3D11_SHADER_TRACE_DESC TraceDesc;
UINT8 NumInvocationsInStamp;
UINT8 TargetStampIndex;
UINT NumTraceSteps;
D3D11_TRACE_COMPONENT_MASK InputMask[32];
D3D11_TRACE_COMPONENT_MASK OutputMask[32];
UINT16 NumTemps;
UINT16 MaxIndexableTempIndex;
UINT16 IndexableTempSize[4096];
UINT16 ImmediateConstantBufferSize;
UINT PixelPosition[4][2];
UINT64 PixelCoverageMask[4];
UINT64 PixelDiscardedMask[4];
UINT64 PixelCoverageMaskAfterShader[4];
UINT64 PixelCoverageMaskAfterA2CSampleMask[4];
UINT64 PixelCoverageMaskAfterA2CSampleMaskDepth[4];
UINT64 PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4];
BOOL PSOutputsDepth;
BOOL PSOutputsMask;
D3D11_TRACE_GS_INPUT_PRIMITIVE GSInputPrimitive;
BOOL GSInputsPrimitiveID;
D3D11_TRACE_COMPONENT_MASK HSOutputPatchConstantMask[32];
D3D11_TRACE_COMPONENT_MASK DSInputPatchConstantMask[32];
} D3D11_TRACE_STATS;
멤버
TraceDesc
이 구조체가 통계를 지정하는 셰이더 추적 개체를 설명하는 D3D11_SHADER_TRACE_DESC 구조체입니다.
NumInvocationsInStamp
추적에 대한 스탬프의 호출 수입니다. 이 값은 꼭짓점 셰이더, 헐 셰이더, 도메인 셰이더, 기하 도형 셰이더 및 컴퓨팅 셰이더의 경우 항상 1입니다. 이 값은 픽셀 셰이더의 경우 4입니다.
TargetStampIndex
대상 스탬프의 인덱스입니다. 이 값은 꼭짓점 셰이더, 헐 셰이더, 도메인 셰이더, 기하 도형 셰이더 및 컴퓨팅 셰이더의 경우 항상 0입니다. 그러나 픽셀 셰이더의 경우 이 값은 스탬프의 4개 픽셀 중 추적 대상이 되는 픽셀을 나타냅니다. 스탬프의 다른 픽셀에 대한 추적을 검사하여 파생 계산이 어떻게 발생했는지 확인할 수 있습니다. 추적 간에 레지스터의 상관 관계를 지정하여 이 결정을 내릴 수 있습니다.
NumTraceSteps
추적의 총 단계 수입니다. 이 숫자는 모든 스탬프 호출에 대해 동일합니다.
InputMask[32]
각 입력 v# 레지스터에 대한 구성 요소 추적 마스크입니다. D3D11_TRACE_COMPONENT_MASK 대한 자세한 내용은 D3D11_TRACE_VALUE 참조하세요.
꼭짓점 셰이더, 기하 도형 셰이더, 픽셀 셰이더, 헐 셰이더 및 도메인 셰이더의 경우 유효한 범위는 [0..31]입니다. 컴퓨팅 셰이더의 경우 이 멤버는 적용되지 않습니다. 또한 기하 도형 셰이더에 대한 입력은 2D 인덱싱됩니다. 예를 들어 v[꼭짓점][특성]을 고려합니다. 이 예제에서 [특성] 범위는 [0..31]입니다. [꼭짓점] 축은 GSInputPrimitive 멤버에 의해 결정되는 모든 입력에 대해 동일한 크기입니다.
마찬가지로 헐 셰이더 및 도메인 셰이더에 대한 입력은 2D 인덱싱됩니다. 예를 들어 v[꼭짓점][특성]을 고려합니다. 이 예제에서 [특성] 범위는 [0..15]입니다. [꼭짓점] 축은 모든 입력에 대해 동일한 크기입니다.
OutputMask[32]
각 출력 o# 레지스터에 대한 구성 요소 추적 마스크입니다. D3D11_TRACE_COMPONENT_MASK 대한 자세한 내용은 D3D11_TRACE_VALUE 참조하세요.
꼭짓점 셰이더 및 기하 도형 셰이더의 경우 유효한 범위는 [0..31]입니다. 픽셀 셰이더의 경우 유효한 범위는 [0..7]입니다. 컴퓨팅 셰이더의 경우 이 멤버는 적용되지 않습니다. 헐 셰이더의 출력 제어 지점의 경우 레지스터는 2D 인덱싱됩니다. 예를 들어 ocp[vertex][attribute]를 고려합니다. 이 예제에서 [특성] 범위는 [0..31]입니다. [꼭짓점] 축은 모든 입력에 대해 동일한 크기입니다.
NumTemps
선언된 4x32 비트 r# 레지스터인 temps의 수입니다.
MaxIndexableTempIndex
선언된 모든 인덱싱 가능한 temps x#[]의 최대 인덱스 #+1입니다. 드물게 선언된 경우(예: x3[12] 및 x200[30]에만 해당) 이 값은 201(200+1)입니다.
IndexableTempSize[4096]
인덱싱 가능한 각 temp x#[numTemps]의 temps 수입니다. MaxIndexableTempIndex 멤버의 값까지만 temps를 가질 수 있습니다.
ImmediateConstantBufferSize
즉시 상수 버퍼에 있는 4x32 비트 값(있는 경우)의 수입니다.
PixelPosition[4]
PixelCoverageMask[4]
PixelDiscardedMask[4]
PixelCoverageMaskAfterShader[4]
PixelCoverageMaskAfterA2CSampleMask[4]
PixelCoverageMaskAfterA2CSampleMaskDepth[4]
PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]
PSOutputsDepth
이 추적이 oDepth 레지스터를 출력하는 픽셀 셰이더용인지 여부를 지정하는 값입니다. TRUE는 픽셀 셰이더가 oDepth 레지스터를 출력한다는 것을 나타냅니다. 그렇지 않으면 FALSE입니다.
PSOutputsMask
이 추적이 oMask 레지스터를 출력하는 픽셀 셰이더용인지 여부를 지정하는 값입니다. TRUE는 픽셀 셰이더가 oMask 레지스터를 출력한다는 것을 나타냅니다. 그렇지 않으면 FALSE입니다.
GSInputPrimitive
기하 도형 셰이더 입력 기본 형식을 식별하는 D3D11_TRACE_GS_INPUT_PRIMITIVE 형식의 값입니다. 즉, 이 값은 {point, line, triangle, line_adj, triangle_adj} 또는 꼭짓점 수(각각 1, 2, 3, 4 또는 6)를 식별합니다. 예를 들어 줄의 경우 입력 v[][#]은 실제로 v[2][#]입니다. 꼭짓점 셰이더 및 픽셀 셰이더의 경우 이 멤버를 D3D11_TRACE_GS_INPUT_PRIMITIVE_UNDEFINED 설정합니다.
GSInputsPrimitiveID
이 추적이 PrimitiveID 레지스터를 입력하는 기하 도형 셰이더용인지 여부를 지정하는 값입니다. TRUE는 기하 도형 셰이더가 PrimitiveID 레지스터를 입력했음을 나타냅니다. 그렇지 않으면 FALSE입니다.
HSOutputPatchConstantMask[32]
D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER 값은 ID3D11ShaderTrace::GetInitialRegisterContents 메서드 호출을 통해 사용할 수 있습니다.
DSInputPatchConstantMask[32]
다음 값은 ID3D11ShaderTrace::GetInitialRegisterContents 메서드 호출을 통해 사용할 수 있습니다.
설명
이 API에는 Windows 8 Windows SDK(소프트웨어 개발 키트)가 필요합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱만 해당] |
머리글 | d3d11shadertracing.h |