screen-gles2-glmark2

Утилита оценки производительности OpenGL ES для окружения Screen

Синтаксис:

screen-gles2-glmark2 [опции]

Опции:

-b BENCH
--benchmark BENCH
Имя теста и его параметры в формате "test:opt1=val1".
-f FILE
--benchmark-file FILE
Имя файла, содержащего список тестов (1 тест с параметрами на строку) для исполнения; опция может быть использована повторно.
--validate
Запуск краткого валидационного теста вместо полноценной оценки производительности.
--frame-end METHOD
Способ завершения кадра (возможные значения аргумента METHOD: default, none, swap, finish, readpixels).
--off-screen
Рендеринг сцены в offscreen поверхность.
--visual-config CONFIG
Конфигурация рендеринга сцены (формат: "red=R:green=G:blue=B:alpha=A:buffer=BUF"; параметры могут быть заданы в произвольном порядке, все опущенные параметры полагаются равными 1).
--reuse-context
Использование одного контекста для всех тестов (по умолчанию каждый тест использует собственный контекст).
-s WIDTHxHEIGHT
--size WIDTHxHEIGHT
Рзмер окна сцены в виде двух аргументов: WIDTH и HEIGHT (по умолчанию используется значение 800x600).
--fullscreen
Запуск теста в полноэкранном режиме (равносильно опции "--size -1x-1").
-l
--list-scenes
Вывод списка тестов с доступными параметрами.
--show-all-options
Вывод всех опций тестов; по умолчанию отображаются только опции, задаваемые явно.
--run-forever
Запускать тесты в непрерывном цикле от первого к последнему.
--annotate
Аннотирование результатов тестов (равносильно передаче опции "-b :show-fps=true:title=#info#").
-d
--debug
Отображение отладочных сообщений.
-h
--help
Отображение встроенной справки утилиты.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

arm, e2k, mips

Описание:

Утилита использует API библиотеки Screen для создания окна, предназначенного для отображения тестов производительности. Утилита является портированной версией утилиты с открытым исходным кодом glmark2.


Caution: Работоспособность утилиты не гарантируется вне окружения Screen и при некорректных настройках компонентов графической подсистемы, препятствующих работе Screen.

Примеры использования:

Тест Параметры Комментарий Пример выполнения
 
build
 
use-vbo=false
Рендеринг полигональных моделей:
  • 3582 вершины
  • 7172 полигона

screen-gles2-glmark2-1.gif

 
build
 
use-vbo=true
Рендеринг полигональных моделей с использованием VBO (Vertex Buffer Object):
  • 3582 вершины
  • 7172 полигона

screen-gles2-glmark2-2.gif

 
texture
 
texture-filter=nearest
Текстурирование моделей с различными режимами фильтрации текстур:
  • glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
  • glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );

screen-gles2-glmark2-3.gif

 
texture
 
texture-filter=linear
Текстурирование моделей с различными режимами фильтрации текстур:
  • glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
  • glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

screen-gles2-glmark2-4.gif

 
texture
 
texture-filter=mipmap
Текстурирование моделей с различными режимами фильтрации текстур:
  • glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
  • glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

screen-gles2-glmark2-5.gif

 
shading
 
shading=gouraud
Оценка производительности рендеринга полигональных моделей с использованием различных моделей освещения:
  • модель Гуро
  • 7340 вершин
  • 14348 полигонов

screen-gles2-glmark2-6.gif

 
shading
 
shading=blinn-phong-inf
Оценка производительности рендеринга полигональных моделей с использованием различных моделей освещения:
  • модель Блинна-Фонга с бесконечно удаленным источником света
  • 7340 вершин
  • 14348 полигонов

screen-gles2-glmark2-7.gif

 
shading
 
shading=phong
Оценка производительности рендеринга полигональных моделей с использованием различных моделей освещения:
  • модель Блинна-Фонга
  • 7340 вершин
  • 14348 полигонов

screen-gles2-glmark2-8.gif

 
shading
 
shading=cel
Оценка производительности рендеринга полигональных моделей с использованием различных моделей освещения:
  • модель Блинна-Фонга в сочетании с эффектом cel-шейдинга
  • 7340 вершин
  • 14348 полигонов

screen-gles2-glmark2-9.gif

 
bump
 
bump-render=high-poly
Методы рельефного текстурирования с визуальным повышением детализации моделей:
  • 24002 вершины
  • 48000 полигонов

screen-gles2-glmark2-10.gif

 
bump
 
bump-render=normals
Методы рельефного текстурирования с визуальным повышением детализации моделей:
  • используется карта нормалей (normal map)
  • 262 вершины
  • 480 полигонов

screen-gles2-glmark2-11.gif

 
bump
 
bump-render=height
Методы рельефного текстурирования с визуальным повышением детализации моделей:
  • используется карта высот (height map)
  • 262 вершины
  • 480 полигонов

screen-gles2-glmark2-12.gif

 
effect2d
 
kernel=0,1,0;1,-4,1;0,1,0;
Использование матриц свертки для изменения изображений (операция детектирования границ)

screen-gles2-glmark2-13.gif

 
effect2d
 
kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;
Использование матриц свертки для изменения изображений (эффект размытия)

screen-gles2-glmark2-14.gif

 
pulsar
 
light=false:quads=5:texture=false
Производительность афинных преобразований с включенным альфа-тестом

screen-gles2-glmark2-15.gif

 
desktop
 
blur-radius=5:effect=blur:passes=1:separable=true:windows=4
Моделирование оконных окружений с учетом следующих особенностей:
  • текстурирование
  • альфа-смешивание
  • размытие фонового изображения

screen-gles2-glmark2-16.gif

 
desktop
 
effect=shadow:windows=4
Моделирование оконных окружений с учетом следующих особенностей:
  • текстурирование
  • альфа-смешивание
  • декорирование окна с эффектом тени

screen-gles2-glmark2-17.gif

 
buffer
 
columns=200:interleave=false:update-dispersion=0.9:
update-fraction=0.5:update-method=map
Обновление VBO посредством функций семейства glMapBuffer*()

screen-gles2-glmark2-18.gif

 
buffer
 
columns=200:interleave=false:update-dispersion=0.9:
update-fraction=0.5:update-method=subdata
Обновление VBO посредством функции glBufferSubData()

screen-gles2-glmark2-19.gif

 
buffer
 
columns=200:interleave=true:update-dispersion=0.9:
update-fraction=0.5:update-method=map
Обновление VBO посредством функций семейства glMapBuffer*() с учетом интерливинга атрибутов

screen-gles2-glmark2-20.gif

 
ideas
 
speed=duration
Стандартная демонстрация SGI "Ideas In Motion":
  • сочетание различных моделей освещения
  • расчет освещения и трансформаций в реальном времени
  • несколько объектов с разной детализацией (384, 1200 и 2016 полигонов)

screen-gles2-glmark2-21.gif

 
jellyfish
 
Демонстрация "Jellyfish" by Aleksandar Rodic:
  • мультитекстурирование и анимация текстур
  • 2808 вершин
  • 4400 полигонов

screen-gles2-glmark2-22.gif

 
terrain
 
Демонстрация "WebGL Terrain" by AlteredQualia:
  • процедурная генерация ландшафта
  • генерация 3D Simplex Noise
  • тест очень сильно нагружает все имеющиеся ALU GPU

screen-gles2-glmark2-23.gif

 
shadow
 
Рендеринг карт теней:
  • Использование расширений GL_OES_depth_texture и GL_ARB_depth_texture
  • 3582 вершины
  • 7172 полигона

screen-gles2-glmark2-24.gif

 
refract
 
Рендеринг освещения с учетом преломления лучей:
  • 34835 вершин
  • 69666 полигонов

screen-gles2-glmark2-25.gif

 
conditionals
 
fragment-steps=0:vertex-steps=0
Производительность условных операций в шейдерах:
  • количество операций в вершинном шейдере: 0
  • количество операций во фрагментном шейдере: 0

screen-gles2-glmark2-26.gif

 
conditionals
 
fragment-steps=5:vertex-steps=0
Производительность условных операций в шейдерах:
  • количество операций в вершинном шейдере: 0
  • количество операций во фрагментном шейдере: 5

screen-gles2-glmark2-28.gif

 
conditionals
 
fragment-steps=0:vertex-steps=5
Производительность условных операций в шейдерах:
  • количество операций в вершинном шейдере: 5
  • количество операций во фрагментном шейдере: 0

screen-gles2-glmark2-28.gif

 
function
 
fragment-complexity=low:fragment-steps=5
Вызов функций во фрагментном шейдере:
  • вызов функций осуществляется в цикле на 5 итераций
  • осуществляется вызов функции fract()

screen-gles2-glmark2-29.gif

 
function
 
fragment-complexity=medium:fragment-steps=5
Вызов функций во фрагментном шейдере:
  • вызов функций осуществляется в цикле на 5 итераций
  • осуществляется вызов функций fract() и sqrt()

screen-gles2-glmark2-30.gif

 
loop
 
fragment-loop=false:fragment-steps=5:vertex-steps=5
Производительность циклических операций в шейдерах:
  • количество операций в вершинном шейдере: 5
  • количество операций во фрагментном шейдере: 1

screen-gles2-glmark2-30.gif

 
loop
 
fragment-steps=5:fragment-uniform=false:vertex-steps=5
Производительность циклических операций в шейдерах:
  • количество операций в вершинном шейдере: 5
  • количество операций во фрагментном шейдере: 5
  • счетчик операций во фрагментном шейдере задается в виде константы

screen-gles2-glmark2-30.gif

 
loop
 
fragment-steps=5:fragment-uniform=true:vertex-steps=5
Производительность циклических операций в шейдерах:
  • количество операций в вершинном шейдере: 5
  • количество операций во фрагментном шейдере: 5
  • счетчик операций во фрагментном шейдере задается в виде uniform

screen-gles2-glmark2-29.gif

Возвращаемое значение:

0
Успешное завершение.
1
Утилита завершилась с ошибками.

Классификация:

Графическая подсистема ЗОСРВ «Нейтрино»

Тематические ссылки:

devg-screen.so




Предыдущий раздел: Тестовые утилиты