Рис. 4.1. Тестовое приложение, запущенное с помощью Intel GPA Monitor
В левом верхнем углу представлена информация о разрешении, версии DirectX, количестве кадров в секунду. Можно посмотреть графики загрузки CPU и GPU (CTRL+F1).
Кнопки справа предоставляют доступ к экспериментам, которые являются частью запущенного приложения (например, изменение числа источников света).
Проследите, как меняются показатели FPS, загруженности CPU и GPU (в зависимости от экспериментов). Чем ограничивается производительность приложения: CPU или GPU?
Не закрывая приложение, запустите Intel GPA System Analyzer.
В появившемся окне (Рис. 4.2) указывается устройство, на котором запущено анализируемое приложение.
Рис. 4.2. Возможность удаленной отладки
С помощью Intel GPA System Analyzer можно подробнее оценить степень зависимости приложения от CPU/GPU и эффективность распараллеливания. Достаточно "перетащить" интересующий параметр на график (Рис. 4.3).
Рис. 4.3. График полной (по всем ядрам) загрузки CPU
Также можно проводить DirectX-эксперименты реального времени. Например, Disable Alpha Blending отключит использование альфа-канала (Рис. 4.4).
Проследите за изменением параметров приложения при различных экспериментах реального времени. Например, ответьте на вопрос, как сильно влияют на загрузку GPU текстуры и альфа-канал.
Рис. 4.4. Эксперимент реального времени Disable Alpha Blending
"Перехватите" кадр приложения (CTRL+SHIFT+C).
Запустите Intel GPA Frame Analyzer и откройте перехваченный кадр.
С помощью расположенной вверху гистограммы ответьте на следующие вопросы: сколько эргов участвует в отрисовке кадра и какой из эргов выполняется дольше остальных?
В Intel GPA Fame Analyzer тоже можно проводить DirectX-эксперименты (вкладка Experiments). Посмотрите, как при этом изменится высота эргов.
Запустите и проанализируйте аналогичным образом любое другое приложение, удовлетворяющее программным требованиям Intel GPA. Например, компьютерную игру, написанную с использованием DirectX 9.
Также, при наличии Android-устройства, попытайтесь проанализировать OpenGL-приложение, используя возможность удаленной отладки.