В этом разделе перечислены различия между каждым уровнем функций 10Level9 и уровнем функций D3D_FEATURE_LEVEL_11_0 и выше для методов ID3D11DeviceContext .
В доступной для 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}$
Не поддерживается на уровне компонентов 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.
Не поддерживается на уровне компонентов 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
Поддерживаются только четыре целевых объекта отрисовки, а все связанные ресурсы должны иметь одинаковую битовую глубину.
Не поддерживается на уровне компонентов 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 приводит значения с плавающей запятой к целым числам без проверки без проверки, что приводит к переполнению целочисленных чисел.