D3D11_INPUT_ELEMENT_DESC: Типы элементов / заказ / упаковка

Есть ли проблемы (производительность или другие), связанные с типами / порядком элементов в структуре D3D11_INPUT_ELEMENT_DESC? Например, теперь у меня есть макет ввода, определенный следующим образом:

D3D11_INPUT_ELEMENT_DESC QuadInputLayoutDescription[] = {
{ "PRECT",  0, DXGI_FORMAT_R32G32B32A32_FLOAT,  0, 0,                               D3D11_INPUT_PER_INSTANCE_DATA, 1 },
{ "DEPTH",  0, DXGI_FORMAT_R32_FLOAT,           0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 },
{ "TEXID",  0, DXGI_FORMAT_R32_UINT,            0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 },
{ "SLICE",  0, DXGI_FORMAT_R32_FLOAT,           0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 },
{ "UVRCT",  0, DXGI_FORMAT_R32G32B32A32_FLOAT,  0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 },
{ "COLOR",  0, DXGI_FORMAT_R32G32B32A32_FLOAT,  0, D3D11_APPEND_ALIGNED_ELEMENT,    D3D11_INPUT_PER_INSTANCE_DATA, 1 } };

Имеет ли значение, что TEXID элемент имеет тип UINT скорее, чем FLOAT Вот? Является ли предпочтительным «выравнивание» по четырехкомпонентной векторной структуре (float4); Должен ли я «упаковать» все R32G32B32A32_FLOATвместе в начале макета? Есть что-нибудь подбитое?

0

Решение

Основной проблемой производительности входных макетов является их общий размер, поскольку он напрямую влияет на объем данных, которые должны пройти через кеш вершин до и после преобразования. Исторически общий размер идеи составлял 32 байта или 64 байта.

В противном случае используемые вами типы обычно не имеют большого значения с точки зрения производительности. Ограничение на количество используемых типов — ваше целевое оборудование. Уровень функции.

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector