Поделиться через


Подлокация в буферах

Буферы имеют все функции, необходимые в D3D12 для приложений для передачи большого диапазона временных данных с ЦП на GPU. В этом разделе рассматриваются четыре распространенных сценария использования ресурсов и буферов и управления ими.

Как и d3D11, приложения в D3D12 по-прежнему должны объявлять использование памяти при выделении буферов в D3D12 по сравнению с динамическими и промежуточными ресурсами в D3D11, но в D3D12 разработчики имеют большую гибкость и более жесткий контроль над использованием памяти. Буферы с помощью подлокации имеют все функции, необходимые для управления памятью низкого уровня.

В этом разделе

Тема Описание
отправке различных типов ресурсов
Показывает, как использовать один буфер для отправки данных буфера констант и данных буфера вершин в GPU, а также правильное выделение и размещение данных в буферах. Использование одного буфера повышает гибкость использования памяти и обеспечивает приложения с более жестким контролем использования памяти. Также показаны различия между моделями D3D11 и D3D12 для отправки различных типов ресурсов.
отправка данных текстуры через буферы
Отправка данных текстуры 2D или трехмерной текстуры аналогична отправке 1D-данных, за исключением того, что приложениям необходимо обратить пристальное внимание на выравнивание данных, связанных с шагом строки. Буферы можно использовать ортогонально и одновременно из нескольких частей графического конвейера и очень гибки.
считывать данные обратно с помощью буфера
Чтение данных обратно с GPU, например запись с экрана снимок экрана, включает использование кучи обратного чтения.
Fence-Based управления ресурсами
Показывает, как управлять жизненным циклом данных ресурсов путем отслеживания хода выполнения GPU с помощью заборов. Память можно эффективно повторно использовать с заборами, тщательно управляя доступностью свободного места в памяти, например в реализации буфера кольца для кучи отправки.

управления памятью