feat(vulkan): add depth attachment pipeline support
This commit is contained in:
+10
-7
@@ -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 и вызывает
|
||||
|
||||
Reference in New Issue
Block a user