diff options
Diffstat (limited to 'docs/tomes/05-render.md')
| -rw-r--r-- | docs/tomes/05-render.md | 17 |
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 и вызывает |
