Unity 6.3
0 онлайн 38 гостей 3 в системе
Вход

PlayerSettings.useFlipModelSwapchain

Declaration

public static bool useFlipModelSwapchain;

Описание

Используйте DXGI флип модель обмен цепи для D3D11.

Direct3D 11 поддерживает два режима презентации: Windows 7-style BitBlt и современные модели flip. Модель BitBlt исторически была единственным способом представления цепи обмена Direct3D на экране. Каждый раз, когда требуется отобразить кадр, она создает копию поверхности цепи обмена и вставляет ее в буфер экрана. Windows 8.1 ввела модель flip DXGI, позволяющую менеджеру окон рабочего стола использовать поверхность цепи обмена непосредственно.

DXGI модель flip цепи обмена обеспечивает наилучшую производительность. При запуске в окно режиме она повышает производительность, устранив дорогостоящий и избыточный вставление поверхности в буфер экрана. При запуске в окна (без границ) полноэкранном режиме, она отображает цепочку обмена приложения непосредственно на экране, что снижает задержку входа на один кадр и устраняет компоновку рабочего стола, выполняемую менеджером окон рабочего стола таким же образом, как это делает эксклюзивный полноэкранный режим. Эта оптимизация известна как "Независимый Flip".

Чтобы воспользоваться преимуществами модели flip DXGI с Direct3D 11, вам нужно запустить проигрыватель на Windows 8.1 или выше и не использовать FullScreenMode.ExclusiveFullScreen. Если любое из этих условий не выполнено, Unity автоматически вернется к использованию модели цепи обмена Windows 7-стиля BitBlt, даже если эта настройка включена. Unity использует модель BitBlt при использовании эксклюзивного полноэкранного режима, поскольку цепи обмена модели flip не поддерживают объекты с задержкой кадра при запуске в эксклюзивном полноэкранном режиме, что приводит к увеличению задержки ввода.

DXGI цепи обмена модели flip не поддерживают прозрачность при использовании функции DwmExtendFrameIntoClientArea, поэтому если вам нужно сделать части окна прозрачными или невидимым, вам придется отключить эту настройку и использовать цепочку обмена модели BitBlt.

Unity по умолчанию использует модель flip DXGI для графики Direct3D 11 API. Unity всегда использует модель flip DXGI при использовании Direct3D 12, поэтому эта настройка влияет только на Direct3D 11. Лучше всего оставить эту настройку включенной.

Цепь обмена модели flip может быть принудительно встроена в проигрыватель, передавая ей аргумент командной строки "-force-d3d11-flip-model". Аналогичным образом, цепь обмена модели BitBlt может быть принудительно установлена путем передачи аргумента командной строки "-force-d3d11-bitblt-model".

См. https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/dxgi-flip-model и https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/for-best-performance--use-dxgi-flip-model для дополнительной информации.