Jump to content

    

Ускорение интерфейса Windows 7 на упрощенных темах

Работая за ПК долго не понимал почему в классической теме Windows 7 наблюдаются артефакты пока не набрёл на эту тему.

Копирую материал, может пригодится.

 

Описание проблемы:
Графическое ускорение в Windows 7 включено только в аэро-темах и отключено в базовых темах, в том числе классической. Поэтому в все элементы интерфейса в аэро теме - прорисовываются с помощью видеокарты, а в классической теме - центральным процессором. При наличии нормальной видеокарты (новее 2010 года) аэро темы работают гораздо производительнее классической. К тому же, некоторые разработчики драйверов, в частности компания AMD, наплевательски относятся к реализации 2D GDI функций в Radeon драйверах новее 2014 года, что ещё более замедляет работу классической темы на современных картах (HD7000, серии R7, R9, RX400, RX500 - все видеокарты без исключения). Классическая тема только в Windows 98/2000/XP работала быстро, а в Windows 7 - это угрюмый тормоз. Для устанения этой проблемы существует аналог классической темы (по виду), но в виде аэро-темы (по свойствам) - она использует ресурсы видеокарты и работает в разы быстрее встроенной классики.

Примечание:
Поймите правильно, в играх FPS больше не станет. Игры используют 3D-функции, а они всегда работают с графическим ускорением. Прирост следует ожидать в обычных 2D-приложениях + окошки винды - все элементы интерфейса будут отрисовываться/ масштабироваться/ передвигаться/ накладываться гораздо быстрее, без подтормаживания и перемигиваний текста силами видеокарты, разгружая центральный процессор для других задач.

Описание темы "Classic AE mod 2019_6":
Тема выполнена, путём модернизации темы "Classic AE 2.5.3"
https://saarineames.deviantart.com/art/Classic-AE-2-5-3-Final-343638171 и 95% выполненных работ - это заслуга разработчика Saarineames с сайта deviantart.com.

Скриншот 1
Screenshot-1.png

Скриншот 2:
Screenshot-2.png

 

Доработки:
1) Добавлен градиент в заголовок окна
2) Правильный цвет текста в заголовках активного и неактивного окон
3) Обычный Tahoma-шрифт, без принудительного ClearType
4) Правильный серый цвет во всех элементах интерфейса RGB (212, 208, 200)
5) Правильный TrackBar
6) Более классическое меню (исправлено цветовое оформление)
7) Для лучшего восприятия - выделенный пункт на сером фоне более темный, чем на белом
8) Отключена анимация на ProgressBar
9) Используются обычные курсоры
10) Исправлена ошибка в ScrollBar
11) Испрален фон окна в брандмауэре Windows
12) Исправлен слёт аэро-режима при использовании 125% масштаба шрифта
13) Более темный заголовок активного окна в не аэро-режиме
14) Бонусом прилагаются TaskManager и Калькулятор с классическим оформлением,
а также набор программ рекомендуемых к использованию:
- 7tt_setup (Taskbar Tweaker) - маленький, но нужный твикер панели задач
- ClassicShellSetup_4_3_1-ru - делает классический вид меню "Пуск"
- FONTS_140516 - приводит все диалоги к стандартному виду, заменяя шрифт Segoe 9 на Tahoma 8 (автор pahan22)
Отдельная тема по обсуждению данного патча шрифтов - http://forum.oszone.net/thread-175315.html

Установка темы:
1) Установить "UniversalThemePatcher" - рекомендуемый вариант. Установщик выбираем для своей разрядности Windows 7 (32- или 64-бит). Для установки необходимо запустить исполняемый файл, выбрать язык и пропатчить 3 файла, затем перезагрузить компьютер. Если патч был ранее применён - то этот шаг пропускаем. Патчер позволяет добавлять в систему темы от сторонних производителей, а не только использовать встроенные. Без установки UniversalThemePatcher (или UxStyle) тема будет работать в базовом режиме, без функций графического ускорения - точно также тормозно как и встроенная классическая. Поэтому наличие в системе "UniversalThemePatcher" или "UxStyle" или другого патчера тем - обязательно.
2) Скопировать файлы темы "Classic AE mod 2019_6" по пути c:\WINDOWS\Resources\Themes\
3) Зайти в "Персонализацию" и переключиться на тему "Classic AE mod 2019_6"
4) Перезагрузить ПК. Всё готово. Наслаждаемся классическим оформлением Windows 7, но уже с работающим ускорением GPU.

Проверка правильности установки темы:
Правильность установки проверить легко - достаточно посмотреть на вид кнопок "свернуть/ развернуть/ закрыть" в заголовке окна. Если кнопка "закрыть" стала шире остальных (как на скриншоте) - то всё встало нормально! Если кнопки остались одинаковой ширины, то аэро-режим не включился и тема работает в базовом режиме (без ускорения). Чаще всего это происходит из-за отсутствия "UniversalThemePatcher" или "UxStyle", позволяющего сторонним темам использовать аэро-режим.
image.png

Программы с исходниками находятся в каталоге:
Soft for Boost 2D\2DTest
Soft for Boost 2D\Classtm_dll
Soft for Boost 2D\DWM Composition
Soft for Boost 2D\Patch dwm.exe
Soft for Boost 2D\WS_EX_COMPOSITED

По пункту "2") Разработчик "Mr dUSHA" http://forum.oszone.net/post-2862277.html#post2862277 предложил вариант патча dwm.exe, но делиться результатами своей работы не стал. В компетентности данного специалиста нет сомнений, он автор нескольких программ, да и по виду скриншота видно, что это не фотошоп, а реально полученная картинка. Скриншот - http://s27.znimg.ru/1552156800/5kgi474haj.jpg
Кроме картинки более ничего. Других специалистов, занимающихся ковырянием dwm.exe не было.

По пункту "3") Среди фоновых программ есть несколько вариантов.
Прежде всего программы для тестирования и демонстрации необходимости ускорения.

Программа 2D Test - отрисовка сетки линий, программа разработана Mikhalich специально для демонстрации низкой производительности АМД драйверов. В результате, АМД ничего не исправили, а любая тема с названием "Low 2D performance Radeon driver v15.7 - v19.4.1 on Windows 7" моментально удаляется на их ресурсах. Исходный код прилагается.

Программа DWM Composition разработки AzikAtom, позволяет включать/выключать композицию (ускорение GPU) в аэро темах на лету. К сожалению, она не может включить ускорение в базовых темах (в том числе классической) и решить нашу проблему, зато она наглядно демонстрирует сколь важно графическое ускорение. Во второй версии, можно сличать элементы интерфейса - наглядно убедиться в подобности "Classic AE" и оригинальной классики. Основной функционал - кнопки "Enable composition" и "Disable composition", включение и выключение графического ускорения на лету. Исходный код прилагается.
Скриншот - https://i.ibb.co/1ZB273V/image.png

Включатель стиля WS_EX_COMPOSITED разработки rmn. Две программы для включения и выключения стила WS_EX_COMPOSITED, который позволяет на базовых темах (в том числе и классической) принудительно включать двойную буферизацию, что приводит к ускорению 2D видеовывода (особенно на глючных Radeon драйверах). Без интерфейса, включение и выключение стиля просто при запуске. Программа пригодна только для демонстрации, вызывает множество глюков и для постоянной работы не пригодна. Исходный код прилагается.

Библиотека classtm.dll (анонимный автор). Файл classtm.dll нужно положить в c:\Windows\System32 который подгрузится через ключ реестра Appinit_Dlls. Для х86 и х64 систем отдельный файл. Также есть демонстрация на своем окне TestLVS.exe, но для всех остальных приложений работает только через classtm.dll. Загрузка библиотеки через файл реестра classtm_dll_ON.reg, возврат к системным настройкам classtm_dll_OFF.reg. После импорта reg обязательна перезагрузка ПК.

Выключалка - это пустой файл в корне диска C:\classtm (достаточно файл переименовывать, чтобы не удалять/перемещать). Не удивляйтесь, окна "Мой компьютер, Персонализация, Корзина" - перестанут работать, как и другие окна эксплорера. Остальные приложения будут запускаться с графическим ускорением в классичекой теме, правда с испорченным цветовым оформлением. Исходник dll-ки прилагается. Побочные эффекты - некоторые окна превращаются в классические, а некоторые остаются в стиле аэро. Например, в foobar часть интерфейса отображается в классическом виде (четко видно по инвертированию цвета на выделенных пунктах), но заголовок и рамка окна - в аэро.
Скриншот - https://i.ibb.co/nRS1WcJ/image.png

 

Classic AE mod 2019_6 (сборка 12 июля 2019 г.)

Screenshot-2019-6.png

 

Cкачать (ссылки на архив с темой и дополнительным софтом, 18 МБ):

https://yadi.sk/d/YXfe9sy3nchUmg
http://ge.tt/7MD964x2
https://www14.zippyshare.com/v/zabuDCXd/file.html

Share this post


Link to post
Share on other sites
3 часа назад, Zoltrix сказал:

в частности компания AMD, наплевательски относятся к реализации 2D GDI функций в Radeon драйверах новее 2014 года, что ещё более замедляет работу классической темы

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

Мне другое не понятно, что там вообще должно тормозить в обычном 2Д гуе? Сам делал подобные гуи и ничего там особо затратного нет, разве, что копирование блоков между областями памяти... Единственное, что делал на всех виндах, которые использовал, начиная с 95й - убирал все сглаживания и картинки с рабочего стола, на старых компах это реально ускоряло процесс.

Edited by mantech

Share this post


Link to post
Share on other sites

mantech

Обрати внимание на судорожные дергания столбика CPU в диспетчере задач, на перемигивание текста в простых  строках при масштабировании окна. Когда работаешь в графических пакетах - пейнт, фотошоп, то после закрытия окна остаются ошметки предыдущего изображения. А главное классика сильно грузит CPU, а эта тема грузит видеокарту. Берешь за любое окно и перемещаешь на классике загрузка CPU доходит до 30%, на этой теме 2-3%.

Share this post


Link to post
Share on other sites
В 16.07.2019 в 13:53, Zoltrix сказал:

А главное классика сильно грузит CPU, а эта тема грузит видеокарту. Берешь за любое окно и перемещаешь на классике загрузка CPU доходит до 30%, на этой теме 2-3%.

Вот еще как даже... Сейчас проверил перетаскивание окна, +2% к быстродействию, но я окна целиком не перетаскиваю, а только пунктирный прямоугольник, ибо не понимаю, зачем все эти понты по перетаскиванию окна с содержимым...

В 16.07.2019 в 13:53, Zoltrix сказал:

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

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

Share this post


Link to post
Share on other sites
6 hours ago, mantech said:

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

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

Share this post


Link to post
Share on other sites
2 часа назад, Zoltrix сказал:

Даже в "Диспетчере устройств" когда щелкаешь по пунктам (названиям устройств), то переливаются соседние пункты. Хр-ишка таких проблем не знала, а в семерке намутили.

Странно, проверил специально на хрюше и 7ке, никаких артефактов в диспетчере устройств и окололежащих менюшках не заметил, винда и драйвера видео точно корректно установлены? Я замечал артефакты, когда был "Стандартный видеоконтроллер VGA"//

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
В 15.07.2019 в 17:32, Zoltrix сказал:

Графическое ускорение в Windows 7 включено только в аэро-темах и отключено в базовых темах, в том числе классической. Поэтому в все элементы интерфейса в аэро теме - прорисовываются с помощью видеокарты, а в классической теме - центральным процессором.

Странно - попробовал у себя на win7 подвигать быстро окошко и быстро поизменять его размер - да загрузка CPU (суммарно всех ядер) вырастает до 20-35%. Но в это же время и загрузка GPU тоже вырастает до 24% (и его температура - тоже). Значит GPU всё-таки используется.

Для проверки запустил тест производительности CPU в 7-Zip: загрузка CPU = 100%, загрузка GPU = 0%. Т.е. - измерялки явно не путают загрузку CPU и GPU.

Артефактов у себя тоже не наблюдаю.

 

PS: Классическая тема, i5-3570, видео встроенное в CPU. Измерялки GPU: AIDA64 и GPU-Z.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now