aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-07-18 07:40:40 +0300
committerValentin Popov <valentin@popov.link>2026-07-18 07:40:40 +0300
commit4feada1bf4e2cb14f1be4f35bb789b8902e88926 (patch)
tree90f3f5f7869dce639fc6e43f5f6ed22c014efc2b /docs/tomes
parent4b741fb19c495a29bc12f6f057df01c91c1d9097 (diff)
downloadfparkan-4feada1bf4e2cb14f1be4f35bb789b8902e88926.tar.xz
fparkan-4feada1bf4e2cb14f1be4f35bb789b8902e88926.zip
feat(vulkan): add alpha test shader path
Diffstat (limited to 'docs/tomes')
-rw-r--r--docs/tomes/05-render.md9
1 files changed, 6 insertions, 3 deletions
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.