diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 07:40:40 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 07:40:40 +0300 |
| commit | 4feada1bf4e2cb14f1be4f35bb789b8902e88926 (patch) | |
| tree | 90f3f5f7869dce639fc6e43f5f6ed22c014efc2b /docs/tomes | |
| parent | 4b741fb19c495a29bc12f6f057df01c91c1d9097 (diff) | |
| download | fparkan-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.md | 9 |
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. |
