Изменение размера пула плитокTile pool resizing

Увеличьте размер пула плиток, если приложению требуется более широкий рабочий набор для сопоставленных потоковых ресурсов, или уменьшите его, если требуется меньше места.Resize a tile pool to grow a tile pool if the application needs more working set for the streaming resources mapping into it, or to shrink if less space is needed. Другой вариант для приложений — выделение дополнительных пулов плиток для новых потоковых ресурсов.Another option for applications is to allocate additional tile pools for new streaming resources. Однако если одному из потоковых ресурсов требуется больше места, чем изначально доступно в его пуле плиток, увеличение пула плиток является хорошим решением.But if any single streaming resource needs more space than initially available in its tile pool, growing the tile pool is a good option. Потоковый ресурс не может быть сопоставлен с несколькими пулами плиток одновременно.A streaming resource can't have mappings into multiple tile pools at the same time.

При увеличения пула плиток дополнительные плитки добавляются в конец драйвером дисплея посредством одного или нескольких выделений.When a tile pool is grown, additional tiles are added to the end via one or more new allocations by the display driver. Разбивка выделения памяти недоступна для приложения.This breakdown into allocations isn't visible to the application. Существующая память в пуле плиток не затрагивается, так же как и существующие сопоставления потоковых ресурсов с этой памятью.Existing memory in the tile pool is left untouched, and existing streaming resource mappings into that memory remain intact.

При уменьшении пула плитки удаляются с конца.When a tile pool is shrunk, tiles are removed from the end. Плитки удаляются даже при размере ниже исходного, до 0. Это означает, что новые сопоставления не могут быть сделаны за пределами нового размера.Tiles are removed even below the initial allocation size, down to 0, which means new mappings can't be made past the new size. При этом существующие сопоставления за пределами нового размера остаются без изменений и могут быть использованы.But, existing mappings past the end of the new size remain intact and useable. Драйвер дисплея сохраняет выделенную память до тех пор, пока существуют сопоставления с любой частью выделенной памяти, используемой драйвером в качестве памяти для пула плиток.The display driver will keep the memory around as long as mappings to any part of the allocations that the driver uses for the tile pool memory remains. Если после уменьшения часть памяти остается активной, поскольку на нее указывают сопоставления плиток, а затем пул плиток снова увеличивается (на любое значение), сначала повторно используется существующая память, а затем выделяется дополнительная память для обслуживания операции по увеличению.If after shrinking some memory has been kept alive because tile mappings are pointing to it and then the tile pool is regrown again (by any amount), the existing memory is reused first before any additional allocations occur to service the size of the grow operation.

Чтобы сэкономить память, приложение должно не только уменьшать пул плиток, но и удалять или преобразовывать существующие сопоставления за пределами нового уменьшенного размера пула плиток.To be able to save memory, an application has to not only shrink a tile pool but also remove/remap existing mappings past the end of the new smaller tile pool size.

Процесс уменьшения (и удаления сопоставлений) не всегда непосредственно приводит к экономии памяти.The act of shrinking (and removing mappings) doesn't necessarily produce immediate memory savings. Освобождение памяти зависит от того, насколько детально базовое распределение драйвером дисплея памяти для пула плиток.Freeing of memory depends on how granular the display driver's underlying allocations for the tile pool are. Если уменьшения пула достаточно, чтобы выделенная драйвером дисплея память перестала использоваться, драйвер может ее освободить.When shrinking happens to be enough to make a display driver allocation unused, the display driver can free it. Если пул плиток увеличился, уменьшение его до предыдущего размера (и соответствующее удаление или переназначение сопоставлений плиток) с большей вероятностью приведет к экономии памяти, хотя и не гарантируется, если размеры в точности не соответствуют размерам базового распределения, выбранным драйвером дисплея.If a tile pool was grown, shrinking to previous sizes (and removing/remapping tile mappings correspondingly) is most likely to yield memory savings, though not guaranteed in the case that the sizes don't exactly align with the underlying allocation sizes chosen by the display driver.

Связанные разделыRelated topics

Сопоставления являются в пул плиткиMappings are into a tile pool