IT-словарь › Программирование › Объект состояния конвейера (PSO)

Объект состояния конвейера (PSO)

Программирование Svenska → Обновлено: 2026-10-26

Неизменяемый объект, который собирает почти всё фиксированное состояние GPU — шейдеры, смешивание, тест глубины, формат вершин — в одну заранее скомпилированную единицу.

Старые API вроде OpenGL и D3D11 позволяли переключать состояние рендера по одному флагу, после чего драйвер тихо перекомпилировал и проверял комбинацию при первом draw call — непредсказуемый подвис посреди кадра. Direct3D 12 (2015) и Vulkan перевернули подход: всё состояние объявляется заранее как pipeline state object, драйвер компилирует его один раз, а привязка при рендеринге — дешёвая подмена указателя.

Цена — жёсткость. Каждая уникальная комбинация шейдеров и состояния — отдельный PSO, так что движку их могут понадобиться тысячи, и лучше строить их при загрузке, чтобы новый PSO посреди игры не вызывал статтер. У mesh- и compute-конвейеров есть свои, более простые варианты PSO.

← Назад к словарю