From 4feada1bf4e2cb14f1be4f35bb789b8902e88926 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 08:40:40 +0400 Subject: feat(vulkan): add alpha test shader path --- docs/tomes/05-render.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'docs/tomes') diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md index 6c0524d..50fe0e4 100644 --- a/docs/tomes/05-render.md +++ b/docs/tomes/05-render.md @@ -849,9 +849,12 @@ swapchain resources, создаёт один `vk::Pipeline` на уникаль кэше. При создании 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: их +write; `TestReadOnly` включает test без write. Alpha test выполняется во +fragment shader: перед каждым draw renderer передаёт через push constant +`alpha_test_reference / 255`, а shader отбрасывает fragment с меньшей alpha. +При выключенном `alpha_test` cutoff принудительно равен нулю; reference остаётся +dynamic material data и не входит в `PipelineKey`. Также не установлен источник +значений для Batch20/MAT0: их поля нельзя объявлять blend/depth/cull mapping без dynamic capture или дополнительного дизассемблирования. Это частично реализованная compatibility boundary, а не заявление о готовой parity fixed-function state. -- cgit v1.2.3