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


Метод ID3D11DeviceContext::D ispatch (d3d11.h)

Выполнение списка команд из группы потоков.

Синтаксис

void Dispatch(
  [in] UINT ThreadGroupCountX,
  [in] UINT ThreadGroupCountY,
  [in] UINT ThreadGroupCountZ
);

Параметры

[in] ThreadGroupCountX

Тип: UINT

Количество групп, отправленных в направлении x. ThreadGroupCountX должен быть меньше или равен D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535).

[in] ThreadGroupCountY

Тип: UINT

Количество групп, отправленных в направлении y. ThreadGroupCountY должен быть меньше или равен D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535).

[in] ThreadGroupCountZ

Тип: UINT

Количество групп, отправленных в направлении z. ThreadGroupCountZ должен быть меньше или равен D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535). На уровне компонентов 10 значение ThreadGroupCountZ должно быть равно 1.

Возвращаемое значение

None

Remarks

Метод Dispatch вызывается для выполнения команд в вычислительном шейдере. Шейдер вычислений может выполняться параллельно на нескольких потоках в пределах группы потоков. Индексирование определенного потока в группе потоков с помощью трехмерного вектора, заданного параметром (x, y, z).

На следующем рисунке предположим, что группа потоков содержит 50 потоков, в которых размер группы задан (5,5,2). Один поток определяется из группы потоков с 50 потоками в ней с помощью вектора (4, 1, 1).

Иллюстрация одного потока в группе потоков из 50 потоков

На следующем рисунке показана связь между параметрами, передаваемыми в ID3D11DeviceContext::D ispatch, Dispatch(5,3,2), значениями, указанными в атрибуте numthreads, numthreads(10,8,3), и значениями, которые будут переданы вычислительному шейдеру для системных значений, связанных с потоками (SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID).

Иллюстрация связи между диспетчером, группами потоков и потоками

Требования

Требование Значение
Целевая платформа Windows
Header d3d11.h
Библиотека D3D11.lib

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

ID3D11DeviceContext