Форумы Modlabs.net: CubeMark3D - Маленький 3D бенчмарк. - Форумы Modlabs.net

Перейти к содержимому

  • (3 Страниц)
  • +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

CubeMark3D - Маленький 3D бенчмарк.

#1 Пользователь офлайн   White 

  • Белый человер
  • PipPipPipPipPipPipPip
  • Группа: Главный Администратор
  • Сообщений: 12 292
  • Регистрация: 16 Июль 05

Отправлено 22 Июнь 2023 - 12:17

Почему "Змей-Горыныч"? Потому, что видит 3xTMU и идея его создания взялась из обсуждения вопросов мультитекстурирования в старых играх.
Название будем менять по желанию разработчика и, надеюсь, воли народа ;)
0

#2 Пользователь офлайн   Huly-Gun 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 149
  • Регистрация: 15 Апрель 17

Отправлено 22 Июнь 2023 - 13:59

Перенес сюда cвой пост с описанием бенча и немного отредактировал инфу.

Я увлекся проблемой мультитектсурирования и накарябал на коленке демку, в которой можно играться с наложением текстур на кубики. Скачать можно отсюда: Линк на скачку. ~650Kb

Есть счетчик FPS, кол-во отрисованных треугольников, доступных блоков ТМУ и прочая инфа по сцене.

Наложением можно управлять кнопками F1, F2, F3, для первой, второй и третьей текстуры соответственно. Режим Off - текстура не накладывается, остальные режимы - просто разные способы смешивания в пределах фиксированного конвейера.

При нажатии пробела происходит переключение способов мультитекстурирования. По умолчанию - включен аппаратный, с задействованием всех доступных TMU. В софтовом используетсся только 1 TMU, но смешение текстур идет максимально корректно. Так как на многих старых видеокартах часто есть проблемы с правильной отрисовокой, то этот режим добавлен для просмотра "референса", т.е. так, как должно быть.

Выход из демки - по ESC.

Если в системе больше одной видеокарты, то при запуске выскочит окно где выдаст список и попросит выбрать, на чем рендериться. Аппаратное 3Д ускорение обязательно (S3 Trio32/64 и прочие ATi Mach64 в пролете).

Демка должна работать с любой виндой от 98 до 7-ки (выше и ниже не проверял).
Обязательное условие - установленный в системе пакет DirectX7 или выше.

Запускаться все должно на любом 3Д акселераторе, поддерживающем DX5, но на всяком старье типа S3 Virge и Ati RageII почти гарантированно будут разные приколы, глюки и артефакты. Плюс, в текущей версии теста стоит фиксированное разрешение экрана 800х600, поэтому на видеокартах у которых на борту 2МБ памяти тест может вылетать в ошибку еще при старте или вести себя неадекватно.

З.Ы. насчет названия. Мой рабочий вариант был CubeMark3D, но мнение народа мне не чуждо :).

Изображение
0

#3 Пользователь офлайн   aspire1gig 

  • Member
  • PipPipPip
  • Группа: R&D команда
  • Сообщений: 347
  • Регистрация: 18 Сентябрь 10

Отправлено 22 Июнь 2023 - 19:18

Ну тогда я тоже перенесу сюда свои изыскания и попытки запуска демки на разных видеокартах:

ATi Radeon 7000 (заявлено 3 TMU на конвейер):

Изображение
Изображение
3 TMU видны и отлично работают.

Matrox Parhelia (заявлено 4 TMU на конвейер):

Изображение
Изображение

Ati Radeon 9700Pro (один TMU на конвейер, но конвейеров восемь штук. Это по старым спецификациям, которые мало соотносятся с реальной архитектурой R300. На самом деле, корректнее рассматривать R300, как два квада (2 параллельных процессора, где текстурные блоки находятся не на самых важных позициях в плане общей производительности GPU)):

Изображение
Изображение

То есть, данная демка не годится для определения количества TMU на конвейер на картах уровня 9700Pro и выше. Действительно, лучше сконцентрироваться на разработке бенчмарка для карт уровня первых DX5/DX6-совместимых карточек.
0

#4 Пользователь офлайн   Huly-Gun 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 149
  • Регистрация: 15 Апрель 17

Отправлено 22 Июнь 2023 - 22:04

aspire1gig Еще раз спасибо за тесты!

Цитата

То есть, данная демка не годится для определения количества TMU на конвейер на картах уровня 9700Pro и выше.


Да, есть такой эффект, что у более свежих карт движек уже не очень корректно определяет кол-во ТМУ и набортной видеопамяти.

=========================================================

Обновил чутка демку. Ссылка та же.

Изменения:
- теперь в корне есть конфигурационный файлик, в котором можно поменять разрешение экрана, цветность, включить оконный режим и вертикальную синхронизацию. Если конфиг случайно запортачится в процессе, то его можно просто удалить, и при следующем запуске демки, файл восстановится с дефолтными значениями.
- по кнопке F12 теперь немедленно создается скриншот безобразия происходящего на экране. Сделано для удобства сохранения результатов. Правда, формат пока bmp, без сжатия.

Планируется:
- добавить замеры мин/сред/макс ФПС
- сделать сценарий автоматичесого прогона теста с 1, 2 и 3 текстурами, с фиксацией замеров ФПС
- накарябать прогу с мордой для настроек теста, чтобы в конфиг руками не лазить.
0

#5 Пользователь офлайн   aspire1gig 

  • Member
  • PipPipPip
  • Группа: R&D команда
  • Сообщений: 347
  • Регистрация: 18 Сентябрь 10

Отправлено 23 Июнь 2023 - 07:04

Huly-Gun

А можно добавить в тест еще одну текстуру, чтобы одновременно задействовать 4 TMU? :d:
0

#6 Пользователь офлайн   Huly-Gun 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 149
  • Регистрация: 15 Апрель 17

Отправлено 23 Июнь 2023 - 08:22

Просмотр сообщенияaspire1gig (23 Июнь 2023 - 07:04) писал:

Huly-Gun

А можно добавить в тест еще одну текстуру, чтобы одновременно задействовать 4 TMU? :d:


Движок вроде позволяет накладывать до 8 текстур. Сколько он при этом сможет задействовать ТМУ - вопрос открытый, требующий практической проверки :).
0

#7 Пользователь офлайн   aspire1gig 

  • Member
  • PipPipPip
  • Группа: R&D команда
  • Сообщений: 347
  • Регистрация: 18 Сентябрь 10

Отправлено 23 Июнь 2023 - 10:17

Huly-Gun
С практикой дело не заржавеет, Parhelia и Xabre ждут своей минуты славы)
0

#8 Пользователь офлайн   zx-c64 

  • Главный по разработке
  • PipPipPipPipPipPipPip
  • Группа: R&D команда
  • Сообщений: 827
  • Регистрация: 26 Апрель 14

Отправлено 23 Июнь 2023 - 19:33

можно ли его портировать под opengl?
0

#9 Пользователь офлайн   Huly-Gun 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 149
  • Регистрация: 15 Апрель 17

Отправлено 23 Июнь 2023 - 20:25

aspire1gig

Я обдумаю, как это можно сделать красиво. Типа, диффузная, нормалмап, детеил и енвайронмент. В виде отдельного спецрежима. Ибо сейчас S3 VirgeDX 2MB демку может запустить только 512х384. На 640х480 кубы уже не прорисовываются, пока все текстуры не отключишь, а на 800х600 вообще вылетает при старте.


zx-c64

Да, у движка есть неофициальный, но более-менее рабочий OpenGL порт. Можно будет и демку потом сделать на нем.
0

#10 Пользователь офлайн   zx-c64 

  • Главный по разработке
  • PipPipPipPipPipPipPip
  • Группа: R&D команда
  • Сообщений: 827
  • Регистрация: 26 Апрель 14

Отправлено 24 Июнь 2023 - 23:45

Цитата

Да, у движка есть неофициальный, но более-менее рабочий OpenGL порт. Можно будет и демку потом сделать на нем.

возможно это даст некоторую надежду.
0

#11 Пользователь офлайн   White 

  • Белый человер
  • PipPipPipPipPipPipPip
  • Группа: Главный Администратор
  • Сообщений: 12 292
  • Регистрация: 16 Июль 05

Отправлено 25 Июнь 2023 - 07:32

Считаю, что хотя бы тестовая версия openGL бенчмарка очень нужна.
0

#12 Пользователь офлайн   Huly-Gun 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 149
  • Регистрация: 15 Апрель 17

Отправлено 27 Июнь 2023 - 11:26

Благодаря тестированию камрадом aspire1gig видеокарточек Radeon 7500/8500/9000 всплыли прелюбопытные особенности.

1. Тест при подсчете кол-во ТМУ, детектит не их физическое наличие, а некое виртуальное число, совпадающее с кол-вом текстур которые видеочип способен наложить за один проход.

Так для Радеона 7000 (1х3) и 7500 (2х3) это 3ТМУ.
Для 8500 (4х2) и 9000 (4х1) это 6ТМУ!.
Для 9700 (8х1) это 8ТМУ. Как и для современного GF GTX 1660. При этом 8 накладываемых текстур это ограничение самого движка.

Кстати, движoк Quake3 показывает аналогичные значения. Так что, похоже, это не баг, а фича!

2. При этом, Радеон 9000, который все считают урезанным 8500, не смотря на наличие всего 1ТМУ на конвейер выдает заметно больший ФПС в тесте.
Как объясняют знающие люди, RV250 архитектурно гораздо ближе к R300, чем к R200, и в нем заметно переработан и улучшен механизм мультитекстурирования, что позволяет накладывать пачку текстур куда шустрее 8500.

White

Цитата

Считаю, что хотя бы тестовая версия openGL бенчмарка очень нужна.


Постараюсь заняться этим в обозримое время.
0

#13 Пользователь офлайн   zx-c64 

  • Главный по разработке
  • PipPipPipPipPipPipPip
  • Группа: R&D команда
  • Сообщений: 827
  • Регистрация: 26 Апрель 14

Отправлено 28 Июнь 2023 - 16:19

а есть ли возможность расширить функционал измерением скорости загрузки текстур в локальную видеопамять? было бы неплохо иметь альтернативу такого теста в final reality.
0

#14 Пользователь офлайн   aspire1gig 

  • Member
  • PipPipPip
  • Группа: R&D команда
  • Сообщений: 347
  • Регистрация: 18 Сентябрь 10

Отправлено 28 Июнь 2023 - 17:56

Просмотр сообщенияzx-c64 (28 Июнь 2023 - 16:19) писал:

а есть ли возможность расширить функционал измерением скорости загрузки текстур в локальную видеопамять? было бы неплохо иметь альтернативу такого теста в final reality.

Ты имеешь в виду скорость прокачки данных по шине? Я правильно понимаю? А что, Final Reality врёт?
(Уверен, что врет)
0

#15 Пользователь офлайн   White 

  • Белый человер
  • PipPipPipPipPipPipPip
  • Группа: Главный Администратор
  • Сообщений: 12 292
  • Регистрация: 16 Июль 05

Отправлено 28 Июнь 2023 - 18:08

aspire1gig,

Цитата

(Уверен, что врет)

В явном виде не врёт, однако с некоторыми версиями драйверов результаты могут разительно отличаться.

Вообще, я выражу своё мнение по поводу развития бенчмарка. Самое важное - отладить "синтетическую" измерительную базу. Научиться правильно определять устройства и их конфигурации, научиться проверять ПС шины, объём занятой видеопамяти и т.д. Считаю важным получить OpenGL порт. А после этого разумно будет увеличивать сложность демо-сцен. У меня есть навыки в области 3D моделирования и я могу создавать разные, в том числе высокополигональные модели, на основе которых можно было бы делать скриптованные сцены разной сложности, так что эти навыки можно применить в процессе создания. Плюс ко всему, могу написать сценарий для бенчмарка, а также сделать движение камеры, которые потом можно будет экспортировать для посадки на движок.
0

#16 Пользователь офлайн   Huly-Gun 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 149
  • Регистрация: 15 Апрель 17

Отправлено 28 Июнь 2023 - 19:53

Просмотр сообщенияzx-c64 (28 Июнь 2023 - 16:19) писал:

а есть ли возможность расширить функционал измерением скорости загрузки текстур в локальную видеопамять? было бы неплохо иметь альтернативу такого теста в final reality.


Интересная идея. Буду чесать репу на этот счет.


===========================


Итак, встречаем версию теста за номером 0.3.

Список изменений:
- добавил режим автопрогона теста с наложением от 1 до 3 текстур и фиксацией фпс раз в секунду
режим бенча запускается по кнопке Enter
тестирование завершается самостоятельно через 30 секунд
повторным нажатием на Enter можно прервать бенчмарк досрочно

- добавил отображения замеров макс, среднего и минимального фпс в каждом режиме после прогона бенча
- так же дополнительно отображается информация о кол-во проходов, затраченных на отрисовку сцены (вычисляется программно)
- после всех замеров теперь автоматически создается скриншот в папку с результатами screenshots/results
- подключил библиотеку для сжатия скриншотов, теперь они сохраняются в jpg и не жрут по килограмму места каждый

В дальнейших планах:
- спец режим с 4-мя накладываемыми тестурами для мучения Xabre und Parhelia, а так же DX8 вюдюх, умеющих в однопроход много текстур
- оптимизация под карточки с 2-4Мб памяти
- потенциально: вывод тестовой информации на экран через сторонню библиотеку, не оказывающую такую просадку ФПС (требуются дополнительные замеры)
- OpenGL версия
- UI прога-настройщик
- поступила заявка на измерение скорости загрузки текстур в видеопамять, изучается техническая возможность реализации подобного


Скачать можно по той же ссылке, что и раньше. Только чутка увеличился объем арихва.

Линк на скачку v0.3.1 ~1Мb

White

Цитата

Самое важное - отладить "синтетическую" измерительную базу.


Занимаюсь. Возможно, стоит попробовать сделать вычисление перцентелей и т.п.


Цитата

Научиться правильно определять устройства и их конфигурации


С этим плохо. Возможности движка весьма куцые в этом плане. И не самые адекватные с более поздним, чем DX7 железом.

Цитата

научиться проверять ПС шины


Можно попробовать.

Цитата

объём занятой видеопамяти


Есть штатная возможность определять кол-во доступной и общее кол-во памяти. Второе, к сожалению, не всегда определяется адекватно. Например, у S3 VirgeDX 2MB определяет памяти 1.4-1.6Мб в зависимости от разрешения в котором запускается тест.

Если же рассуждать чисто теоретически, то несколько лет назад разработчик движка открыл все исходники, и туда можно попытаться залезть с целью допилинга под наши нужды. Но у меня нет необходимой квалификации для подобного. Тут скорее стоит рассмотреть другой, более современный движок, типа Unity3d. B3D который я юзаю, хорош исключительно только скоростью разработки и простотой.


Цитата

У меня есть навыки в области 3D моделирования


Это круто, буду иметь ввиду.
Вообще, в дальних-предальних планах у меня была мысль заюзать 3Д модели из пары игрушек, которые я когда-то давно написал на этом движке. Но это будет явное утяжеление бенчмарка, когда предварительная идея пока сделать тестилку для самых маленьких.

Перезалил тест, версия 0.3.1.
Пофикшен краш при сохранении скриншотов, в случае, если требуемые папки были удалены или переименованы. Теперь они, в случае чего, пересоздаются автоматом.
0

#17 Пользователь офлайн   Huly-Gun 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 149
  • Регистрация: 15 Апрель 17

Отправлено 30 Июнь 2023 - 09:52

=======================================================================================================================
Залил минорное обновление 0.3.5

Список изменений:

- случилось чудо! Я вкорячил 4-ую текстуру на куб. Визуально ее не сильно заметно, но в штатном случае кубики становятся чуть ярче.
Включаются 4 текстуры сочетанием клавиш R_CTRL+ ENTER в обычном (просмотровом) режиме теста. При запуске автобенча пока осталось 3, как раньше.

- так же, покопавшись в недрах движка, нашел две интересные фичи: аппаратный dithering и w-buffer.

С первым все понятно, а вот описание второй:

W-buffering is a technique used to draw 3D object in order of their depth - i.e. the ones furthest away from the camera first, then the ones closer to the camera, and so on.

Normally, z-buffering is used to perform such a technique, but a z-buffer can be slightly inaccurate in 16-bit colour mode, for which the level of precision is less than in 24-bit or 32-bit colour modes. This means that in some situations, objects will appear to overlap each other when they shouldn't and so on.

To compensate for this, you can use w-buffering. This is a slightly more accurate technique than z-buffering, although it may be less compatible on some set-ups than z-buffering.


Добавил в конфиг две строчки для их включения/выключения
Дитеринг теперь включен по умолчанию. w-buffer нет.
Надеюсь, это поможет поправить часть глюков на некоторых альтернативно спроектированных картах.

Более мелкие изменения:

- вкл/откл программого текстуринга теперь висит на кнопке F11
- ручной скриншот по кнопке F12 теперь сохраняется в формате TIFF
- по кнопке F10 можно включить каркасный режим, просто для красоты
- по кнопке F9 отключаются весь текст кроме ФПС. Сделано, чтобы проверить влияние кучи писанины по экрану на скорость рендера.

Сегодня утром нашел мелкий баг, неправильно отображался счетчик текстур. Пофиксил в версии 0.3.6, перезалил.

Ссылка та же: Версия 0.3.6 ~1.2Mb
0

#18 Пользователь офлайн   zx-c64 

  • Главный по разработке
  • PipPipPipPipPipPipPip
  • Группа: R&D команда
  • Сообщений: 827
  • Регистрация: 26 Апрель 14

Отправлено 30 Июнь 2023 - 23:36

в contra hardcorps есть босс который из матрицы кубиков в танк и вертолет складывался, можно использовать эту идею вместе с музыкой.
0

#19 Пользователь офлайн   Huly-Gun 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 149
  • Регистрация: 15 Апрель 17

Отправлено 01 Июль 2023 - 09:18

Просмотр сообщенияzx-c64 (30 Июнь 2023 - 23:36) писал:

в contra hardcorps есть босс который из матрицы кубиков в танк и вертолет складывался, можно использовать эту идею вместе с музыкой.


Танчики, для меня пройденный этап! :)

Изображение

Можно скачать тут :).

==================================================================

Запилил версию 0.4.0.

Изменения:

- при старте приложения оно теперь замеряет доступную видеопамять.
И если тесту кажется, что ее мало (это касается видюх с 2МБ и некоторых с 4МБ), то апа предлагает дальше три варианта:

1) продолжить принудительно в разрешении указанном в config.ini (ENTER)
2) выйти из приложения (ESC)
3) продолжить запуск в разрешении 512х384 (Any Key)

- в режиме бенча убрал метод наложения Dot3. Он иммитирует рельеф, но у 90% DX5/DX6 видеокарт просто не работает и рисует всякое непотребство. Заменил его на обычный Multiply.

- строчку "TMUs:" переименовал в более правильную "Hw 1-Pass tex cnt". Чтобы не смущать общественность.
- кол-во видеопамяти теперь выводится в КБ.

Мысли вслух:

1) из-за глюков с Dot3 и прочим, родилась идея сделать еще отдельный режим контроля качества.
В этом режиме на половине экрана будет кубик в эталонной отрисовке, с софтовым наложением текстур, на второй - аппаратным, со всеми его косяками. После чего делается автоскриншот и тест переходит к следующему типовому варианту смешения текстур.
Единственное, для этого режима крайне желательно отображать правильно название видюхи, чтобы было сразу видно, чьи это косяки, а не какого-то "первичного видеодрайвера".
Начал исследовать, как получать от винды системную информацию без привлечения AIDA32.

2) Так же, после введения замеров ФПС, родилась идея сделать некий резюмирующий балл по итогам работы бенча.
Ибо, аналитика это хорошо, но и фаллометрию тоже никто не отменял!
Думаю сделать по такому же принципу, как в 3Д Марках: средний фпс в каждом тесте умножается на свой весовой коэффициент и потом все это суммируется.
Сейчас у нас тест с 1, 2 и 3 текстурами. Нужно подумать над коэффициентами, и прикинуть, учитывать ли как-то еще мин и макс ФПС.
Ну что, уважаемые кроты, посчитаем?


Ссылка та же: Версия 0.4.0 ~1.2Mb
0

#20 Пользователь офлайн   White 

  • Белый человер
  • PipPipPipPipPipPipPip
  • Группа: Главный Администратор
  • Сообщений: 12 292
  • Регистрация: 16 Июль 05

Отправлено 01 Июль 2023 - 18:49

Цитата

Ну что, уважаемые кроты, посчитаем?


Ты разошёлся прям! Красавчик! Продолжай в том же духе. Было бы здорово скидывать результаты тестов сюда и в итоговых результатах отображать версию, на которой они были получены, чтобы не возникало кривотолков в сравнении показателей разных версий.
0

Поделиться темой:


  • (3 Страниц)
  • +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

10 человек читают эту тему
0 members, 10 guests, 0 anonymous users