Название будем менять по желанию разработчика и, надеюсь, воли народа
CubeMark3D - Маленький 3D бенчмарк.
#1
Отправлено 22 Июнь 2023 - 12:17
Название будем менять по желанию разработчика и, надеюсь, воли народа
#2
Отправлено 22 Июнь 2023 - 13:59
Я увлекся проблемой мультитектсурирования и накарябал на коленке демку, в которой можно играться с наложением текстур на кубики. Скачать можно отсюда: Линк на скачку. ~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, но мнение народа мне не чуждо
#3
Отправлено 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-совместимых карточек.
#4
Отправлено 22 Июнь 2023 - 22:04
Цитата
Да, есть такой эффект, что у более свежих карт движек уже не очень корректно определяет кол-во ТМУ и набортной видеопамяти.
=========================================================
Обновил чутка демку. Ссылка та же.
Изменения:
- теперь в корне есть конфигурационный файлик, в котором можно поменять разрешение экрана, цветность, включить оконный режим и вертикальную синхронизацию. Если конфиг случайно запортачится в процессе, то его можно просто удалить, и при следующем запуске демки, файл восстановится с дефолтными значениями.
- по кнопке F12 теперь немедленно создается скриншот безобразия происходящего на экране. Сделано для удобства сохранения результатов. Правда, формат пока bmp, без сжатия.
Планируется:
- добавить замеры мин/сред/макс ФПС
- сделать сценарий автоматичесого прогона теста с 1, 2 и 3 текстурами, с фиксацией замеров ФПС
- накарябать прогу с мордой для настроек теста, чтобы в конфиг руками не лазить.
#5
Отправлено 23 Июнь 2023 - 07:04
А можно добавить в тест еще одну текстуру, чтобы одновременно задействовать 4 TMU?
#7
Отправлено 23 Июнь 2023 - 10:17
С практикой дело не заржавеет, Parhelia и Xabre ждут своей минуты славы)
#9
Отправлено 23 Июнь 2023 - 20:25
Я обдумаю, как это можно сделать красиво. Типа, диффузная, нормалмап, детеил и енвайронмент. В виде отдельного спецрежима. Ибо сейчас S3 VirgeDX 2MB демку может запустить только 512х384. На 640х480 кубы уже не прорисовываются, пока все текстуры не отключишь, а на 800х600 вообще вылетает при старте.
zx-c64
Да, у движка есть неофициальный, но более-менее рабочий OpenGL порт. Можно будет и демку потом сделать на нем.
#10
Отправлено 24 Июнь 2023 - 23:45
Цитата
возможно это даст некоторую надежду.
#11
Отправлено 25 Июнь 2023 - 07:32
#12
Отправлено 27 Июнь 2023 - 11:26
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
Цитата
Постараюсь заняться этим в обозримое время.
#13
Отправлено 28 Июнь 2023 - 16:19
#14
Отправлено 28 Июнь 2023 - 17:56
zx-c64 (28 Июнь 2023 - 16:19) писал:
Ты имеешь в виду скорость прокачки данных по шине? Я правильно понимаю? А что, Final Reality врёт?
(Уверен, что врет)
#15
Отправлено 28 Июнь 2023 - 18:08
Цитата
В явном виде не врёт, однако с некоторыми версиями драйверов результаты могут разительно отличаться.
Вообще, я выражу своё мнение по поводу развития бенчмарка. Самое важное - отладить "синтетическую" измерительную базу. Научиться правильно определять устройства и их конфигурации, научиться проверять ПС шины, объём занятой видеопамяти и т.д. Считаю важным получить OpenGL порт. А после этого разумно будет увеличивать сложность демо-сцен. У меня есть навыки в области 3D моделирования и я могу создавать разные, в том числе высокополигональные модели, на основе которых можно было бы делать скриптованные сцены разной сложности, так что эти навыки можно применить в процессе создания. Плюс ко всему, могу написать сценарий для бенчмарка, а также сделать движение камеры, которые потом можно будет экспортировать для посадки на движок.
#16
Отправлено 28 Июнь 2023 - 19:53
zx-c64 (28 Июнь 2023 - 16:19) писал:
Интересная идея. Буду чесать репу на этот счет.
===========================
Итак, встречаем версию теста за номером 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 который я юзаю, хорош исключительно только скоростью разработки и простотой.
Цитата
Это круто, буду иметь ввиду.
Вообще, в дальних-предальних планах у меня была мысль заюзать 3Д модели из пары игрушек, которые я когда-то давно написал на этом движке. Но это будет явное утяжеление бенчмарка, когда предварительная идея пока сделать тестилку для самых маленьких.
Перезалил тест, версия 0.3.1.
Пофикшен краш при сохранении скриншотов, в случае, если требуемые папки были удалены или переименованы. Теперь они, в случае чего, пересоздаются автоматом.
#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
#18
Отправлено 30 Июнь 2023 - 23:36
#19
Отправлено 01 Июль 2023 - 09:18
zx-c64 (30 Июнь 2023 - 23:36) писал:
Танчики, для меня пройденный этап!

Можно скачать тут
==================================================================
Запилил версию 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
#20
Отправлено 01 Июль 2023 - 18:49
Цитата
Ты разошёлся прям! Красавчик! Продолжай в том же духе. Было бы здорово скидывать результаты тестов сюда и в итоговых результатах отображать версию, на которой они были получены, чтобы не возникало кривотолков в сравнении показателей разных версий.

Помощь














