На проходящей сейчас GDC 2015 Microsoft продолжает демонстрировать всё новые и новые возможности DirectX 12. Так было заявлено о команде ExecuteIndirect, которая заменит DrawIndirect и DispatchIndirect, и сможет добавить производительности к и без того внушающим результатам DirectX 12.
Макс МакГулен, ведущий разработчик Direct3D и DXGI, решил наглядно продемонстрировать разницу между старыми и новыми методами обработки графики на примере бенчмарка Asteroid от Intel.
Для начала, результат при использовании DirectX 11. Всего 29 fps.
![](http://www.dsogaming.com/wp-content/uploads/2015/03/DX11-Asteroids.jpg)
Обычное переключение на DirectX 12 даёт двухкратный прирост производительности. Результат - 75 fps.
![](http://www.dsogaming.com/wp-content/uploads/2015/03/DX12-Asteroids.jpg)
Благодаря bindless режиму в DX12 производительность может повыситься еще немного.
![](http://www.dsogaming.com/wp-content/uploads/2015/03/DX12-Bindless-Asteroids.jpg)
И для финала, благодаря команде ExecuteIndirect, демо достигает практически 90 fps. Но, что более важно, обратите внимание на нагрузку на ЦПУ, которая значительно снизилась, что делает данный метод весьма привлекательным в использовании для ЦПУ-нагружающих сцен.
![](http://www.dsogaming.com/wp-content/uploads/2015/03/DX12-ExecuteIndirect-Asteroids.jpg)
Остаётся надеяться, что и другие разработчики смогут использовать все преимущества DirectX 12 в скором будущем.
Источник
|