aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tomes')
-rw-r--r--docs/tomes/05-render.md15
1 files changed, 13 insertions, 2 deletions
diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md
index 8f9dd11..c1563fc 100644
--- a/docs/tomes/05-render.md
+++ b/docs/tomes/05-render.md
@@ -1151,6 +1151,17 @@ WEAR и MAT0 до объединения геометрии. Индексы GPU
`u16`. Terrain передаёт в shader базовый, detail и overlay stages, lightmap и
animation phase; object batches сохраняют их legacy blend/depth/alpha state.
+При первоначальной загрузке одинаковые текстуры разных material slots
+используют один GPU image. Ключ включает размеры, RGBA8 и всю авторскую
+mip-цепочку: совпадения только базового изображения недостаточно. Хеш ускоряет
+поиск, а полное сравнение данных исключает ошибочное объединение при коллизии.
+Слоты сохраняют собственные descriptors, UV и параметры материала. При первой
+смене общей текстуры renderer создаёт отдельный image только для изменяемого
+слота; следующие фазы обновляют его на месте. Поэтому анимация одного материала
+не меняет соседний. Строка `render_texture_upload` показывает число слотов,
+начальных GPU images и отделений при обновлении. CPU-копии исходных пикселей
+в материалах эта оптимизация не объединяет.
+
Рельеф образует неизменяемое начало общего vertex buffer. Control-анимация,
FX и окружение обновляют следующие вершины, а новые индексы нужны только
геометрии проекционных теней в конце index buffer. Поэтому кадр записывает
@@ -1160,8 +1171,8 @@ FX и окружение обновляют следующие вершины, Ð
Перед записью общих ресурсов renderer ждёт fences всех отправленных кадров.
Одного fence текущего кадрового слота недостаточно: другой кадр ещё может
-читать ту же память. Ожидание всего устройства остаётся на пересоздании
-swapchain, диагностическом readback и завершении работы. Загрузка изменённых
+читать ту же память. Ожидание всего устройства пока остаётся на пересоздании
+swapchain и набора pipelines, диагностическом readback и завершении работы. Загрузка изменённых
текстур пока использует отдельную синхронную transfer-команду. Строка
`render_geometry_upload` показывает записанные vertex/index bytes и объём,
который потребовался бы при полной перезаливке, без начальной загрузки.