다음을 통해 공유


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]

참고 이 멤버는 픽셀 셰이더 전용인 [stampIndex]입니다.
 
각 스탬프에 대해 적용되는 MSAA 샘플을 나타내는 마스크입니다. 이 적용 범위는 알파-검사, 깊이 및 스텐실 작업이 픽셀에서 수행되기 전에 발생합니다. MSAA가 아닌 경우 LSB(최소 비트)를 검사합니다. 이 마스크는 인접 픽셀에 대한 파생을 지원하기 위해 실행되는 픽셀의 경우 0일 수 있습니다.

PixelDiscardedMask[4]

참고 이 멤버는 픽셀 셰이더 전용인 [stampIndex]입니다.
 
삭제된 샘플을 나타내는 마스크입니다. 픽셀 셰이더가 픽셀 주파수에서 실행되는 경우 "무시"는 모든 샘플을 끕니다. 모든 샘플이 꺼져 있으면 다음 4개의 마스크 멤버도 0입니다.

PixelCoverageMaskAfterShader[4]

참고 이 멤버는 픽셀 셰이더 전용인 [stampIndex]입니다.
 
적용되는 MSAA 샘플을 나타내는 마스크입니다. MSAA가 아닌 경우 LSB를 검사합니다.

PixelCoverageMaskAfterA2CSampleMask[4]

참고 이 멤버는 픽셀 셰이더 전용인 [stampIndex]입니다.
 
알파-검사+sampleMask 뒤의 깊이 및 스텐실 앞에 적용되는 MSAA 샘플을 나타내는 마스크입니다. MSAA가 아닌 경우 LSB를 검사합니다.

PixelCoverageMaskAfterA2CSampleMaskDepth[4]

참고 이 멤버는 픽셀 셰이더 전용인 [stampIndex]입니다.
 
alpha-to-coverage+sampleMask+depth 이후와 스텐실 이전에 적용되는 MSAA 샘플을 나타내는 마스크입니다. MSAA가 아닌 경우 LSB를 검사합니다.

PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]

참고 이 멤버는 픽셀 셰이더 전용인 [stampIndex]입니다.
 
알파-검사+sampleMask+depth+스텐실 다음에 적용되는 MSAA 샘플을 나타내는 마스크입니다. MSAA가 아닌 경우 LSB를 검사합니다.

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_COMPONENT_MASK 대한 자세한 내용은 D3D11_TRACE_VALUE 참조하세요.

D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER 값은 ID3D11ShaderTrace::GetInitialRegisterContents 메서드 호출을 통해 사용할 수 있습니다.

DSInputPatchConstantMask[32]

참고 이 멤버는 도메인 셰이더 전용입니다.
 
도메인 셰이더 입력에 대한 구성 요소 추적 마스크입니다. D3D11_TRACE_COMPONENT_MASK 대한 자세한 내용은 D3D11_TRACE_VALUE 참조하세요.

다음 값은 ID3D11ShaderTrace::GetInitialRegisterContents 메서드 호출을 통해 사용할 수 있습니다.

설명

이 API에는 Windows 8 Windows SDK(소프트웨어 개발 키트)가 필요합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
머리글 d3d11shadertracing.h

추가 정보

ID3D11ShaderTrace::GetTraceStats

셰이더 구조체