aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes/05-render.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tomes/05-render.md')
-rw-r--r--docs/tomes/05-render.md17
1 files changed, 10 insertions, 7 deletions
diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md
index 545b8db..6c0524d 100644
--- a/docs/tomes/05-render.md
+++ b/docs/tomes/05-render.md
@@ -845,20 +845,23 @@ swapchain resources, создаёт один `vk::Pipeline` на уникаль
созданные variants. Baseline оригинального MSH подтверждён с состоянием
`opaque + depth disabled + cull disabled + alpha-test disabled`.
-`SourceAlpha` и front/back culling имеют Vulkan mapping в этом кэше. Запрос
-depth или alpha-test сейчас завершается явной ошибкой: renderer ещё не имеет
-depth attachment либо alpha-test shader variant, поэтому он не должен молча
-подменять state. Также не установлен источник значений для Batch20/MAT0: их
+`SourceAlpha`, front/back culling и depth modes имеют Vulkan mapping в этом
+кэше. При создании swapchain resources renderer выбирает capability-approved
+depth/stencil format, выделяет device-local attachment, очищает его в render
+pass и прикрепляет к каждому framebuffer. `TestWrite` включает depth test и
+write; `TestReadOnly` включает test без write. Alpha-test пока завершается
+явной ошибкой: shader variant ещё не существует, поэтому renderer не должен
+молча подменять state. Также не установлен источник значений для Batch20/MAT0: их
поля нельзя объявлять blend/depth/cull mapping без dynamic capture или
дополнительного дизассемблирования. Это частично реализованная compatibility
boundary, а не заявление о готовой parity fixed-function state.
-Выбор будущего depth/stencil attachment уже отделён от renderer lifetime:
+Выбор depth/stencil attachment отделён от renderer lifetime:
`select_depth_stencil_attachment_format` применяет тот же фиксированный порядок
форматов, что и capability gate, к фактически поддерживаемому списку GPU.
Это исключает ситуацию, когда admission принимает один совместимый формат, а
-allocation позднее выбирает другой; сам attachment и render-pass integration
-остаются следующей отдельной задачей.
+allocation позднее выбирает другой; resource уничтожается после framebuffer и
+render pass при recreate/teardown.
После последнего world pass renderer закрывает сцену и выводит back buffer.
World3D снимает `in_render`, восстанавливает временный viewport state и вызывает