Использование вершинных или пиксельных шейдеров DirectX 10.0 или 11.0, кроме вызова API Draw () в графическом драйвере - PullRequest
0 голосов
/ 05 января 2012

Наш проект состоит в профилировании различных шейдеров Vertex и Pixel, Geometry, используемых в приложении DirectX 10 или 11 SDK или в приложениях Game (BioShock, Far Cry и т. Д.).

Теперь нам нужно техническое пониманиекогда шейдеры (VS, GS, PS) используются или, скорее, выполняются в конвейере, мы знаем, что во время вызова API DirectX Draw () настройки get шейдера выполняются в конвейере.

  1. Существует ли какой-либо другой API, кроме вызова Draw (), который может внутренне выполнить или использовать шейдер, настроенный на конвейер с помощью SetShader ()?

  2. Является ли API устройства (например,, Map, unmap, getResourcem и Copy resource) манипулируют шейдерами косвенно?

Любые указатели, связанные с использованием шейдеров во время выполнения DirectX или графического драйвера, кроме вызовов API DirectX Draw (), будутполезно для нас, чтобы идентифицировать и иметь надежную реализацию.

1 Ответ

1 голос
/ 10 января 2012
  1. Да, проверьте Compute Shaders и, в частности, метод Dispatch ().
  2. Нет, шейдеры - это просто информация о состоянии, поэтому после загрузки в объекты ID3D11 * шейдера они не подлежат изменению. Если вы хотите декомпилировать их, взгляните на API Shader Reflection.
...