Найти тему
OVERCLOCKERS.RU

ChimbaBench 1.3: Неопределённые работы над проектом и гиперактивный куб

Оглавление

Так как проект я начал без какого-либо технического задания, естественно у меня нет никакого плана развития для проекта, я его разрабатываю "как есть", так что приступим.

Прежде всего исправил окно сообщений, сделал его не только поверх всех остальных окон, но и включил перенос строк, чтобы не нужно было использовать горизонтальную прокрутку:

-2

Но тут же обнаружил весьма неприятную проблему, в некоторых случаях текст может быть перекрыт вертикальной полосой прокрутки, не то чтобы эта проблема была критичной, но я захотел её решить...

Вообще решение проблемы максимально простое, достаточно отключить нумерацию строк, но это тоже стало проблемой, ведь теперь не видно начала строки.

Впрочем, и это проблему я решил, теперь окно сообщений работает как надо:

Достаточно было просто добавить дефис перед строкой сообщения, и проблема решена:

-5

Конечно же я немного поработал над кодом, добавил в массив путь до корневого элемента, и теперь всё выглядит гораздо интереснее:

-6

Наверняка это выглядит страшно, но это хорошо:

-7

Хотя ладно, нужно бы оптимизировать немного код, ведь мне самому будет сложно с этим работать когда проект станет ещё больше...

Было - стало:

Похоже всё стало ещё страшнее, ничего, настоящие эксперты и так всё поймут, особенно зная что я не программист, а диванные "эксперты", ну это уже их проблемы...

-9

О неумности некоторых фанатов Linux и накрутке плюсов в комментариях Overclockers

Конечно, такие изменения требуют изменений и "зависимого" кода, но пока проект небольшой это не вызывает проблем, как некоторые диванные "эксперты" скажут: Да это же уровень Hello World!

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

Ещё некоторое время я занимался всякой мелочью, но ничего кардинального. В коде там небольшие правки, кнопку немного передвинул, вынес потом в отдельный слой все кнопки, ведь у меня есть на них некоторые планы...

-12

В итоге я взялся за работу над шрифтами, функцию настройки шрифта доработал с учётом того, что через неё можно будет настроить не только основной шрифт, но и шрифт пользователя, заодно добавил "значения по умолчанию", чтобы не нужно было писать много аргументов при вызове функции.

Короче, теперь в эту функцию можно впихнуть больше и меньше одновременно:

-13

Теперь установить шрифт проще простого, осталось так же поработать над функцией chi_font_apply...

-14

Так гораздо лучше, теперь я могу вызвать функцию откуда угодно, и скормить ей что нужно:

-15

Дальше мой взор устремился к относительным путям... Хорошая получилась "гирлянда", красивая:

Настало время поработать над функцией сохранения локализации в файл, а работу над функцией загрузки локализации я оставлю за кадром, там всё аналогично, только в обратном порядке.

Думаю можно было это дело реализовать через цикл, но сойдёт и так!

-17

Я долго думал над тем, чтобы сделать локализацию не только для элементов управления, но и для информации в оверлее, однако нет, я не буду этого делать, ибо не вижу пользы от перевода стандартных слов: GPU, FPS, API и т.п., скорее будет только неразбериха если это переводить, потому нет, и ещё раз нет.

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

-18

Теперь нужно что-то сделать с захламлённостью, я только начал по сути проект, а уже информации на треть экрана, так не пойдет, ведь DeviceID можно убрать, количество памяти на видеокарте тоже можно убрать, как и версию драйвера, хотя это я ещё подумаю.

В итоге я набросал новое окно, пока оно пустое, но именно сюда я планирую перенести всю подробную информацию о системе:

Ладно, окно есть, как теперь вывести информацию о системе пользователя? Можно всё вручную по каждому пункту расфасовать, и может быть я это даже сделаю в будущем, но сейчас такой вариант мне не подходит.

Тем более хотелось бы реализовать доступ к информации со стороны пользователя, там скопировать...

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

Хотя вывод некоторых утилит всё же нужно обработать перед отправкой в окно...

Может быть моё текущее решение не очень хорошее в плане оптимизации, но оно работает:

-21

Целая куча вызовов wmic, мне следовало сделать один вызов, собрать строку вывода, и разобрать её на составляющие отдельной функцией... Но учитывая что над этим проектом уровня "Hello World" я работаю один, не вижу ничего плохого, чтобы оставить пока это дело "как есть".

Всё равно пользователя не будет заботить как оно работает в исходном коде, и насколько этот код красив, пользователям важно чтобы оно работало и давало результат:

-22

Далее обратил внимание на шрифты, и было решено немного поправить размеры, а для окна сообщений задать размер поменьше чем у всего остального.

Да, на Android смартфонах это будет выглядеть очень мелко, но костыли для смартфонов подождут, всё же целевая платформа моего бенчмарка это Linux дистрибутивы и Windows. Ох, сейчас набегут линуксоиды и будут приравнивать Android к дистрибутивам Linux (Desktop), и пофиг, что Android никаким боком к дистрибутивам Linux не относится кроме "названия ядра"...

-23

Ещё я не собираюсь сейчас работать над правильным масштабированием интерфейса:

-24

Можно конечно сделать вот так:

-25

И даже может показаться что проблема решена, но у такого подхода есть проблемы, по крайней мере они были в Godot Engine версии 3.5.1, не в курсе про версию 3.5.2, исправили или нет, но я больше не доверяю этому функционалу, потому буду писать свой функционал...

-26

Гораздо важнее сейчас другое, пора бы обновить иконку бенчмарка...

-27

Я не стал сильно выдумывать, просто сделал скриншот кубика и обработал немного, буквально пара кликов в графическом редакторе Krita, и ещё пара кликов в "Quick Any2Ico" для преобразования в формат ico.

Теперь у файла есть иконка проекта, правда она есть только в исполняемом файле для Windows, увы, но кривые Linux дистрибутивы ещё не доросли до таких вещей, потому исполняемые файлы для Linux так и будут "голыми"...

-28

Не знаю зачем, но я открыл диспетчер задач, а там целая магия чисел... Сейчас у меня свободно 11535 МиБ ОЗУ, 55744 МиБ доступно, 44488 МиБ кэшировано, 41888 дескрипторов, и время работы 4 суток 14 часов без учёта времени в режиме сна.

-29

Хотя лучше конечно смотреть такую информацию более специализированными инструментами, а то диспетчер задач Windows представляет информацию как выгоднее корпорации, например, график памяти в диспетчере задач Windows показывает использованную память, причем не указано конкретно, что именно они там показывают в графике, а занятая память отображена как "выделенная память" отдельной строчкой. Зачем так сделали? Очень просто, используемая память обычно меньше чем занятая, и корпорации выгоднее показать в лицо пользователю меньшее значение.

Так пользователь смотрит и видит, 9.48 ГиБ всего, значит хватит с головой 16 ГиБ ОЗУ для нормальной работы, правда на самом деле занято 13 ГиБ ОЗУ, а там ещё кэшем занято 43 ГиБ оперативной памяти, по итогу едва хватило 64 ГиБ ОЗУ, а пользователь смотрит на график в диспетчере задач, и думает что 16 ГиБ просто за глаза будет...

-30

Ладно, что-то я отвлёкся, далее набрасываю больше информации о сцене, возможно некоторую информацию потом уберу из мониторинга...

-31

Набрасываю ещё больше информации, возможность изменять настройки MSAA и анизотропной фильтрации, правда как выяснилось, Godot Engine немного неполноценный в плане работы с анизотропной фильтрацией, и изменение настройки ничего не меняет, по идее до полного перезапуска...

А после я раскрутил кубик, почему бы и нет, хорошо пошло:

-33

MSAA 16x довольно сильно влияет на FPS, но это всё ещё не позволяет полностью нагрузить видеокарту мою, хотя цели такой и не стояло на данный момент, просто забавный факт:

А что до сглаживания FXAA, пока я реализовал только управление сглаживанием MSAA, управление анизотропией вообще заблокировал, всё равно смысла пока нет в ней, ну а управление FXAA пожалуй реализую в следующих версиях ChimbaBench.

Точно, есть же кнопка "Set AA", она ничего не делает, но я решил не убирать её сейчас... Думаю для некоторых это будет забавным открытием, что кнопка ничего не делает.

-35

На этом пожалуй хватит для версии 1.3, завершу в стиле "было - стало":

-

--

---

Заключение

Вот я и закончил работу над ChimbaBench версии 1.3, вроде уже такая версия большая, а я всё ещё занят пользовательским интерфейсом... Увы, но пользовательский интерфейс очень важен, хотя я возможно немного переборщил с этой частью проекта.

Хейтеры наверняка будут упрекать меня за код, мол некрасиво, неправильно, будут изливая негодование всячески просить чтобы я бросил работу над проектом. Впрочем, пусть негодуют диванные "эксперты", раз просят чтобы я прекратил, значит нужно давить до конца и не отпускать!

-37

Мне даже стало интересно, а скольких разработчиков уже морально задавили неадекватные фанаты Linux? Думаю очень многие были угнетены, доказательство тому вечно кривые дистрибутивы Linux и софт утопающие в болоте зависимостей.

-38

Ну да ладно, нужно проверить свой бенчмарк, в среде Windows ясное дело никаких проблем, так что сразу перейду к Linux.

Ох и просел же FPS при усложнении сцены...

-39

Но я приметил забавный факт, MSAA 8x/16x не сильно повлияли на FPS в среде Linux при работе через LLVM 11.0.1 и LLVM 13.0.0, вообще я ожидал что частота кадров упадет до нуля или меньше, но в итоге падение производительности вообще незначительное:

-40

Да, 7-8 FPS это не очень приятно, но что поделать, проект нужно ведь развивать, мне просто нужно позаботиться о том, чтобы была и простая сцена в бенчмарке для слабых ПК.

Пожалуй пора заканчивать статью, ссылка на репозиторий ChimbaBench: ( github.com/Shedou/ChimbaBench ).

Так можно найти исходный код и скомпилированные исполняемые файлы проекта.

Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.

-41

📃 Читайте далее на сайте