HLSL ID3D11DeviceContext :: UpdateSubresource Ошибка

В порядке,

так что у меня есть шейдер, который ожидает два постоянных буфера, но когда я использую

ID3D11DeviceContext::UpdateSubresource

И я устанавливаю SubResource в 1 (второй буфер), затем я предупреждаю (ошибка …):

D3D11: ERROR: ID3D11DeviceContext::UpdateSubresource: DstSubresource index (1) out of range, must be less than 1. [ RESOURCE_MANIPULATION ERROR #287: UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE ]

Я понимаю ошибку, но только не почему она появляется, т.е. почему это происходит?

Благодарю вас

0

Решение

SubResource предназначен для TextureArrays / Mipmaps, так что вы можете, например, читать / записывать определенный фрагмент mip. В случае буферов SubResource всегда равен нулю (так как это просто более или менее необработанные данные).

Вы можете найти некоторую информацию о SubResources Вот

Таким образом, вы можете использовать 0 для обновления каждого из ваших постоянных буферов, затем вам нужно назначить каждый постоянный буфер для слота шейдера, используя PSSetConstantBuffers (и для каждого этапа, где это необходимо), затем выбрать соответствующий начальный интервал (который должен соответствовать регистру) номер в вашем шейдере).

0

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

Других решений пока нет …

По вопросам рекламы [email protected]