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