Для DX9, насколько я знаю, DX9 автоматически исправляет ваши шейдеры. То есть, если ваш пиксельный шейдер ожидает float2
, а ваш вершинный шейдер предоставляет float3
, он все равно будет работать. В DirectX10 / 11 вы можете использовать отражение шейдера, чтобы запросить скомпилированный шейдер и выяснить, что он ожидает.
Вопрос: что вы имеете в виду под «правильным типом»? Это полностью зависит от вашего пиксельного шейдера, одного вершинного шейдера недостаточно для принятия решения.