Методы 10Level9 ID3D11DeviceContext

В этом разделе перечислены различия между каждым уровнем функций 10Level9 и уровнем функций D3D_FEATURE_LEVEL_11_0 и выше для методов ID3D11DeviceContext .

ID3D11DeviceContext::CopySubresourceRegion

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 В доступной для GPU памяти можно копировать только Texture2D и буферы.
Texture3D нельзя скопировать из доступной для GPU памяти в память, доступную для ЦП.
Любой ресурс, имеющий только D3D10_BIND_SHADER_RESOURCE, не может быть скопирован из доступной для GPU памяти в память, доступную для ЦП.
Вы не можете копировать текстуры тома mipmapped.
${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CopyResource

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 В доступной для GPU памяти можно копировать только Texture2D и буферы.
Texture3D нельзя скопировать из доступной для GPU памяти в память, доступную для ЦП.
Любой ресурс, имеющий только D3D10_BIND_SHADER_RESOURCE, не может быть скопирован из доступной для GPU памяти в память, доступную для ЦП.
${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CopyStructureCount

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::ClearUnorderedAccessViewFloat

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::ClearUnorderedAccessViewUint

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::ClearRenderTargetView

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Будет очищен только первый срез массива. Приложения должны создать целевое представление отрисовки для каждого среза лица или массива, а затем очистить каждое представление по отдельности.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetConstantBuffers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetSamplers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetShaderResources

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetUnorderedAccessViews

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::D ispatch

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::D ispatchIndirect

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::Draw

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Число примитивов не может превышать 65535.
Текстуры не могут повторяться над одним примитивом более 128 раз.
D3D_FEATURE_LEVEL_9_2 Число примитивов не может превышать 1048575.
Текстуры не могут повторяться более 2048 раз над одним примитивом.
D3D_FEATURE_LEVEL_9_3 Число примитивов не может превышать 1048575.
Текстуры не могут повторяться более 8192 раз над одним примитивом.

ID3D11DeviceContext::DrawAuto

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::DrawIndexed

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Число примитивов не может превышать 65535.
Текстуры не могут повторяться над одним примитивом более 128 раз.
Значения индекса не могут превышать 65534.
Индексированные списки точек не поддерживаются.
D3D_FEATURE_LEVEL_9_2 Число примитивов не может превышать 1048575.
Текстуры не могут повторяться более 2048 раз над одним примитивом.
Значения индекса не могут превышать 1048575.
Индексированные списки точек не поддерживаются.
D3D_FEATURE_LEVEL_9_3 Число примитивов не может превышать 1048575.
Текстуры не могут повторяться более 8192 раз над одним примитивом.
Значения индекса не могут превышать 1048575.
Индексированные списки точек не поддерживаются.

ID3D11DeviceContext::DrawIndexedInstanced

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 Число примитивов не может превышать 1048575.
Текстуры не могут повторяться более 8192 раз над одним примитивом.
Значения индекса не могут превышать 1048575.
Примечание: При вызове метода DrawIndexedInstanced с вершинным шейдером, который привязан к конвейеру и не импортирует данные для каждого экземпляра, некоторые графические устройства Direct3D 9 могут ничего не рисовать. В частности, если вершинный шейдер не использует данные для каждого экземпляра, вызов DrawIndexedInstanced с 1 экземпляром не эквивалентен вызову Draw.

ID3D11DeviceContext::D rawIndexedInstancedIndirect

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::DrawInstanced

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::D rawInstancedIndirect

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::D SSetConstantBuffers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::D SSetSamplers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::D SSetShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::D SSetShaderResources

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::GSSetConstantBuffers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::GSSetSamplers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::GSSetShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::GSSetShaderResources

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::HSSetConstantBuffers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::HSSetSamplers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::HSSetShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::HSSetShaderResources

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::IASetIndexBuffer

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Формат может отличаться от формата, указанного при создании буфера, но преобразование будет дорогостоящим.
Разрешает буферы индексов только в формате DXGI_FORMAT_R16_UINT.
D3D_FEATURE_LEVEL_9_2 Формат может отличаться от формата, указанного при создании буфера, но преобразование будет дорогостоящим.
Позволяет использовать буферы индексов с DXGI_FORMAT_R16_UINT и DXGI_FORMAT_R32_UINT форматами, такими как D3D_FEATURE_LEVEL_10_0 и более поздние версии.
${REMOVE}$
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::IASetPrimitiveTopology

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Топологии-примитивы с смежностью не поддерживаются${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::OMSetBlendState

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 SampleMask не может быть равен нулю${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::OMSetRenderTargets

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Поддерживается только один целевой объект отрисовки${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 Поддерживаются только четыре целевых объекта отрисовки, а все связанные ресурсы должны иметь одинаковую битовую глубину.

ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::P SSetConstantBuffers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 См. уровень компонентов 10.0, но общее количество констант, используемых шейдером, не может превышать 32${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::P SSetSamplers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не более 16 выборок могут быть привязаны${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::P SSetShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Только ps_4_0_level_9_1${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 Только ps_4_0_level_9_3 или ps_4_0_level_9_1

ID3D11DeviceContext::P SSetShaderResources

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не более 8 одновременно связанных ресурсов шейдера${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::RSSetScissorRects

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Доступен только нулевой прямоугольник ножницы${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::RSSetViewports

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Доступно только нулевое окно просмотра${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

Несмотря на то, что значения с плавающей точкой указываются для членов структуры D3D11_VIEWPORT массива pViewports в вызове ID3D11DeviceContext::RSSetViewports для уровней функций 9_x, RSSetViewports использует DWORD внутри организации. Из-за этого при использовании отрицательного верхнего левого угла окна просмотра вызов RSSetViewports для уровней функций 9_x завершается ошибкой. Эта ошибка возникает из-за того, что RSSetViewports для 9_x приводит значения с плавающей запятой к целым числам без проверки без проверки, что приводит к переполнению целочисленных чисел.

Вызов ID3D11DeviceContext::RSSetViewports для уровней функций 10_x и 11_x работает должным образом, даже если для окна просмотра используется отрицательный левый верхний угол.

ID3D11DeviceContext::SetPredication

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::SOSetTargets

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::VSSetConstantBuffers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 См. уровень компонентов 10.0, но общее количество констант, используемых шейдером, не может превышать 255${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::VSSetSamplers

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::VSSetShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Только vs_4_0_level_9_1${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 Только vs_4_0_level_9_3 или vs_4_0_level_9_1

ID3D11DeviceContext::VSSetShaderResources

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.*.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

Справочник по 10Level9