Поделиться через


структура 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 для вершинных шейдеров, шейдеров корпусов, шейдеров предметной области, геометрических шейдеров и вычислительных шейдеров. Однако для шейдеров пикселей это значение указывает, какой из четырех пикселей в метке является целевым объектом для трассировки. Вы можете изучить трассировки для других пикселей в метке, чтобы определить, как выполнялись производные вычисления. Это определение можно сделать, соотнося регистры между трассировками.

NumTraceSteps

Общее количество шагов для трассировки. Это число одинаково для всех вызовов метки.

InputMask[32]

Маска трассировки компонента для каждого входного регистра v#. Сведения о D3D11_TRACE_COMPONENT_MASK см. в разделе D3D11_TRACE_VALUE.

Для вершинных шейдеров, геометрических шейдеров, пиксельных шейдеров, шейдеров корпусов и шейдеров предметной области допустимым диапазоном является [0..31]. Для вычислительных шейдеров этот элемент неприменим. Кроме того, входные данные для геометрических шейдеров 2D индексируются. Например, рассмотрим v[vertex][attribute]. В этом примере диапазон [атрибута] — [0..31]. Ось [вершины] имеет одинаковый размер для всех входных данных, которые определяются элементом GSInputPrimitive .

Аналогичным образом входные данные для шейдера корпуса и шейдера предметной области индексируются в двухмерном формате. Например, рассмотрим v[vertex][attribute]. В этом примере диапазон [атрибута] — [0..15]. Ось [вершины] имеет одинаковый размер для всех входных данных.

OutputMask[32]

Маска трассировки компонента для каждого выходного регистра o#. Сведения о D3D11_TRACE_COMPONENT_MASK см. в разделе D3D11_TRACE_VALUE.

Для вершинных шейдеров и геометрических шейдеров допустимым диапазоном является [0..31]. Для пиксельных шейдеров допустимым диапазоном является [0..7]. Для вычислительных шейдеров этот элемент неприменим. Для контрольных точек вывода для шейдеров корпуса регистры индексируются в двухмерном формате. Например, рассмотрим ocp[vertex][attribute]. В этом примере диапазон [атрибута] — [0..31]. Ось [вершины] имеет одинаковый размер для всех входных данных.

NumTemps

Число объявленных регистров temps, то есть 4x32-разрядных регистров r#.

MaxIndexableTempIndex

Максимальный индекс #+1 всех объявленных индексируемых временных параметров x#[]. Если они объявлены разреженно (например, x3[12] и x200[30]), это значение равно 201 (200+1).

IndexableTempSize[4096]

Количество temps для каждого индексируемого temp x#[numTemps]. В элементе MaxIndexableTempIndex можно использовать только значения temps.

ImmediateConstantBufferSize

Число 4x32-разрядных значений (если таковые имеются), которые находятся в непосредственном буфере констант.

PixelPosition[4]

PixelCoverageMask[4]

Примечание Этот элемент предназначен только для пиксельных шейдеров[ stampIndex].
 
Маска, указывающая, какие примеры MSAA охватываются для каждой метки. Это покрытие происходит перед выполнением операций альфа-охвата, глубины и трафарета с пикселем. Для не msaa проверьте наименьший значимый бит (LSB). Эта маска может иметь значение 0 для пикселей, которые выполняются только для поддержки производных для соседних пикселей.

PixelDiscardedMask[4]

Примечание Этот элемент предназначен только для пиксельных шейдеров[ stampIndex].
 
Маска, указывающая на отклоненные образцы. Если пиксельный шейдер работает с частотой пикселей, функция "отменить" отключает все образцы. Если все образцы отключены, следующие четыре элемента маски также имеют значение 0.

PixelCoverageMaskAfterShader[4]

Примечание Этот элемент предназначен только для пиксельных шейдеров[ stampIndex].
 
Маска, показывающая охваченные примеры MSAA. Для не MSAA изучите LSB.

PixelCoverageMaskAfterA2CSampleMask[4]

Примечание Этот элемент предназначен только для пиксельных шейдеров[ stampIndex].
 
Маска, указывающая образцы MSAA, которые охватываются после альфа-покрытия+ sampleMask, но до глубины и набора элементов. Для не MSAA изучите LSB.

PixelCoverageMaskAfterA2CSampleMaskDepth[4]

Примечание Этот элемент предназначен только для пиксельных шейдеров[ stampIndex].
 
Маска, указывающая примеры MSAA, которые охватываются после альфа-охвата+sampleMask+глубина, но перед набором элементов. Для не MSAA изучите LSB.

PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]

Примечание Этот элемент предназначен только для пиксельных шейдеров[ stampIndex].
 
Маска, указывающая примеры MSAA, которые охватываются после альфа-покрытия+sampleMask+depth+stencil. Для не MSAA изучите LSB.

PSOutputsDepth

Значение типа , указывающее, является ли эта трассировка для пиксельного шейдера, который выводит регистр oDepth. ЗНАЧЕНИЕ TRUE указывает, что шейдер пикселей выводит регистр oDepth; в противном случае — FALSE.

PSOutputsMask

Значение типа , указывающее, является ли эта трассировка для пиксельного шейдера, который выводит регистр oMask. ЗНАЧЕНИЕ TRUE указывает, что шейдер пикселей выводит регистр oMask; в противном случае — FALSE.

GSInputPrimitive

D3D11_TRACE_GS_INPUT_PRIMITIVE типизированное значение, определяющее тип входного примитива геометрического шейдера. То есть это значение определяет: {точка, линия, треугольник, 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 (SDK) для Windows 8.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Верхняя часть d3d11shadertracing.h

См. также раздел

ID3D11ShaderTrace::GetTraceStats

Структуры шейдеров