В первую очередь для целей отладки я хочу сохранить и повторно использовать в будущем буфер глубины вызовов рендеринга, который не ограничен диапазоном [0.0, 1.0], как ограничено спецификацией Vulkan.VK_EXT_depth_range_unrestricted, кажется, именно то, что мне нужно, поэтому у меня было
- Включено VK_EXT_depth_range_unrestricted,
- Установите диапазон глубины в окне просмотра на [0.0, 10.0],
- SetГраницы глубины VkPipelineDepthStencilStateCreateInfo равны [0.0, 10.0], deepTestEnable и deepWriteEnable равны VK_TRUE,
- Установите значение глубины очистки для прохода рендеринга равным 10,
- Растризовал некоторые треугольники, глубина каждой вершины равнадо 3,0
и обнаружил, что все пиксели карты глубины равны 1,0.Но я ожидал, что растеризованные пиксели будут иметь глубину 3,0, а не растеризованные - 10,0 (проверяется как в renderdoc, так и путем выгрузки буфера глубины в память хоста).
Отсюда мой вопрос: Возможно ли реально сохранить ненормализованную глубину в буфере глубины в Vulkan?Если да, то как мне это сделать?
ОБНОВЛЕНИЕ: Я создал репродуктор из примера рисования треугольника Саша Виллемса.Он находится в fork . При выполнении примера проверка ничего не сообщает.Я вижу пустое изображение (каждый пиксель очищен), однако я ожидал, что будет нарисован один треугольник (потому что каждая его вершина имеет глубину 3, а очищенная глубина - 5).На всякий случай устройство Vega RX, драйвер 18.50-ubuntu16.04.