Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Функция диспетчера выполняет шейдер вычислений.
Синтаксис
PFND3D11DDI_DISPATCH Pfnd3d11ddiDispatch;
VOID Pfnd3d11ddiDispatch(
D3D10DDI_HDEVICE unnamedParam1,
UINT unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4
)
{...}
Параметры
unnamedParam1
hDevice [in]
Дескриптор устройства отображения (графический контекст).
unnamedParam2
ThreadGroupCountX [in]
Размер в группах потоков x-измерения сетки группы потоков. Максимальный размер — 65535.
unnamedParam3
ThreadGroupCountY [in]
Размер в группах потоков в измерении y сетки группы потоков. Максимальный размер — 65535.
unnamedParam4
ThreadGroupCountZ [in]
Размер в группах потоков z-измерения сетки группы потоков. Максимальный размер — 65535.
Возвращаемое значение
Никакой
Замечания
Драйвер может использовать функцию обратного вызова pfnSetErrorCb для задания кода ошибки.
Среда выполнения Direct3D вызывает функцию диспетчера драйвера на отображаемом устройстве для выполнения шейдера вычислений. Шейдер вычислений определяет набор инструкций, выполняемых для каждого потока, и количество потоков, выполняемых для каждой группы. Параметры группы потоков (ThreadGroupCountX, ThreadGroupCountYи ThreadGroupCountZ) указывают количество выполняемых групп потоков. Каждая группа потоков содержит то же количество потоков, что и скомпилированный шейдер вычислений. Группы потоков организованы в трехмерной сетке. Общее количество групп потоков, выполняемых шейдером вычислений, определяется следующим вычислением:
ThreadGroupCountX * ThreadGroupCountY * ThreadGroupCountZ
В частности, если какие-либо значения в параметрах группы потоков имеют значение 0, функция диспетчера ничего не делает.
Драйвер не должен столкнуться с ошибкой, за исключением D3DDDIERR_DEVICEREMOVED. Таким образом, если драйвер передает любую ошибку, за исключением D3DDDIERR_DEVICEREMOVED, при вызове функции pfnSetErrorCb среда выполнения Direct3D определяет, что ошибка является критической. Даже если устройство удалено, драйвер не требуется возвращать D3DDDIERR_DEVICEREMOVED; Однако если удаление устройства вмешивается в работу диспетчера (что обычно не должно произойти), драйвер может вернуть D3DDDIERR_DEVICEREMOVED.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Диспетчеризация поддерживается начиная с операционной системы Windows 7. |
| целевая платформа | Настольный |
| заголовка | d3d10umddi.h (include D3d10umddi.h) |