Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Дневники и блоги —› Патч Windows 7 для включения графического ускорения в классической теме
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 11 . 12 . >>
Посл.ответ Сообщение

Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 18 февраля 2019 01:13 · Поправил: Jurim
· Личное сообщение · #1

=== Патч Windows 7 для включения GPU ускорения в классической теме ===

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

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

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

Но в других производителей (NVidia, Intel) дела хоть и лучше, но не намного... Приведённые глюки в Видеодемонстрация сравнения тем. 1-я часть видео на примере отрисовки интерфейса в программах:
- Performance Test 8.0 (перемигивание при перемещении по результатам)
- NetMonitor - https://2ip.ru/download/NetMonitor.exe (мигание окном 2 раза в секунду)
- Диспетчер задач (глюки отрисовки столбика загрузки ЦП)
есть на всех видеокартах у всех пользователей и причина этому - установленный драйвер на видеокарту. После удаления драйвера, то есть на "Стандартном адаптере VGA" - этих проблем нет. Абсурд! Но так и есть, проверьте сами.

Варианты решения:
1) Использовать тему - Классическая тема в аэро-исполнении "Classic AE mod 2019_1" Насколько эта тема более производительна продемонстрировано в - Видео демонстрация сравнения тем
2) Найти и пропатчить Винду, чтобы включить ускорение (например использовать какие-то файлы с Windows 8)
3) Написать фоновую программу, которая переводит работу ОС в режим, когда графика ускоряется
4) Написать драйвер "двойной буферизации" видеовывода

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

Реальные примеры ускорения видеовывода в классической теме:

Примеры 1, 2, 3, 6 - для видеокарт любого производителя (NVidia, Intel, AMD).
Примеры 4, 5 - только для видеокарт AMD.

1) Запускаем NetMonitor - (окно 2 раза в секунду мигует). Берем за заголовок окна и начинаем его медленно возить по экрану. Происходит чудо, мигания убираются. То есть Винда может отрисовывать окно без багов, но почему на неподвижном окне она этого не делает. Давайте сделаем какую то прогу, которая работает в фоне и дрючит размер окна на 1 пиксель. Главное чтобы это ускоряло видеовывод и не было незаметным для пользователя.

2) Запускаем встроенный "Диспетчер задач" - столбик загрузки ЦП передергивается, когда нет нет нагрузки, либо она постоянна - то есть когда графика не перерисовывается - она начинает лагать.

3) Запускаем Performance Test 8.0 ( наблюдаем перемигивание при перемещении по результатам). Удаляем драйвер на видеокарту - перемигивание убирается. Видимо "Стандартный адаптер VGA" использует двойную буфферизацию, которую не используют драйвера от вендоров. Но почему система с драйвером должна работать медленнее, чем без драйвера. Нафиг такие дрова...

4) Увеличение 2D производительности из ничего. Оказалось, если под окном спектра расположить окно "Radeon Settings", чтобы хоть 1мм окна выступал за пределы окна спектра - то отрисовка спектра ускоряется в десятки раз и FPS в simpleGLUT повышается с 40-60 до 1100-1300. Видеодемонстрация - https://www.youtube.com/watch?v=wnzbjrK_gCA
Видимо отрисовка окна "Radeon Settings" задействует какие-то функции видеокарты, которые параллельно заставляют работать быстро весь интерфейс.

5) При масштабировании размеров окна. Вообще не понятно, масштабируемое окно должно тормозить, а оно наоборот ускоряется. Глюки, которые видны на экране - их нет при завате экрана программой bandicam. Видеозаписи смотреть нужно обе, по-очереди.
С фотоаппарата - https://www.youtube.com/watch?v=XpJhC8N9g0Y
С bandicam - https://www.youtube.com/watch?v=rbPjna3myew

6) Есть рецепты, когда картинка ускоряется после запуска в фоне аудио или видеопроигрывателя, который просто переводит мультимедиа таймер в определенный режим, что тоже ускоряет видеовывод

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




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 25 февраля 2019 14:22
· Личное сообщение · #2

Jurim пишет:
к ней привык

Забить. Видеокарту вытащить, об стену, пополам, в окно. И в магазин за новой, пока соседи санитаров не вызвали.

-----
В облачке многоточия





Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 25 февраля 2019 14:39
· Личное сообщение · #3

rmn пишет:
Все-таки есть вещи, о которых непосвященным лучше не знать

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

По теме - была еще тулза от КиберМаньяка для окон, года так 2006, inqsoft или как то так называлась, лень гуглить. Там можно было и стили смотреть, и сообщения окнам отправлять (и смотреть на реакцию).



Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 25 февраля 2019 14:57
· Личное сообщение · #4

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




Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 25 февраля 2019 16:55
· Личное сообщение · #5

rmn
я в этой всей графике не разбираюсь, но тут сам подход удивляет. Если так надо - то или учи сам матчасть,она же открытая (мсдн, была еще годная книга какого-то китайца по графике в винде); или иди в комерц. А тут ни то ни это..
к слову, я всю жизнь сидел на классической теме, вот неделю назад перешел на десятку и там юзаю по дефолту уже.



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 25 февраля 2019 22:44
· Личное сообщение · #6

f13nd пишет:
Почему-то офис майкрософт не остаждают миллионы специалистов с 15летним стажем с требованием вернуть классическую тему в последний виндовс, как-то люди с этим морально справляются.


Использую Офис 97, работает прекрасно, к слову docx его тоже научил открывать. Поэтому необходимости в новых офисах вообще не испытываю.

Просьба:
Пожалуйста реализуйте программу с обратной функцией - при запуске, чтобы выключался стиль WS_EX_COMPOSITED у всех окон. Понимаю, что нужно 1 строчку изменить, но как?

Code:
  1. // Патч глюков классической темы Windows 7
  2.  
  3. #include <windows.h>
  4. #define WS_EX_COMPOSITED 0x02000000L
  5.  
  6. static BOOL WINAPI EnumProc (HWND hwnd, LPARAM param)
  7. {
  8.     DWORD style;
  9.     
  10.     style = (DWORD)GetWindowLong (hwnd, GWL_EXSTYLE);
  11.     SetWindowLong (hwnd, GWL_EXSTYLE, style | WS_EX_COMPOSITED);
  12.      
  13.     return TRUE;
  14. }
  15.      
  16. void BoostWindows (void)
  17. {
  18.     EnumWindows (EnumProc, 0l);
  19. }
  20.  
  21. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nShowCmd)
  22. {
  23.     BoostWindows ();
  24.     return 0;
  25. }




Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 25 февраля 2019 23:01
· Личное сообщение · #7

Jurim пишет:
Понимаю, что нужно 1 строчку изменить, но как?

style & ~WS_EX_COMPOSITED вместо style | WS_EX_COMPOSITED.



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 25 февраля 2019 23:30
· Личное сообщение · #8

rmn

Выключение стиля WS_EX_COMPOSITED в тот-же миг убирает ускорение и медленная отрисовка возвращается на место.

А существует ли другой стиль (наподобие WS_EX_COMPOSITED), который тоже принудительно включает двойную буфферизацию, но не вызывает описанных проблем?



Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 25 февраля 2019 23:32 · Поправил: rmn
· Личное сообщение · #9

Jurim пишет:
Выключение стиля WS_EX_COMPOSITED в тот-же миг убирает ускорение и медленная отрисовка возвращается на место






Ранг: 271.4 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 25 февраля 2019 23:33 · Поправил: f13nd
· Личное сообщение · #10

Jurim пишет:
Использую Офис 97

Я имею в виду офис как помещение, где сотрудники сидят.

-----
2 оттенка серого




Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 25 февраля 2019 23:34
· Личное сообщение · #11

Jurim пишет:
А существует ли другой стиль

Нет. И проблемы вызывает не наличие или отсутствие этого стиля.



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 26 февраля 2019 00:33
· Личное сообщение · #12

rmn

Какие ещё способы принудительного включения двойной буферизации знаете?




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 26 февраля 2019 00:37
· Личное сообщение · #13

"Ну и это, rmn, код набросать не забудьте, как вспомните эти самые способы."

-----
В облачке многоточия




Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 26 февраля 2019 00:59
· Личное сообщение · #14

Jurim
ПКМ->Персонализация->Windows Aero и хватит уже ебать мозги. Эта проблема разумными способами НЕ РЕШАЕТСЯ.




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 26 февраля 2019 01:24
· Личное сообщение · #15

"А как же 2 года, моя старая видеокарта, 100500 проведенных тестов и 137000 специалистов плачущих под окнами микрософт и амудэ?!"

-----
В облачке многоточия




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 26 февраля 2019 12:32
· Личное сообщение · #16

Вот видите. Всё начиналось с того, мол я полный ламер и чего только посмел пожаловать на форум таких умных дядек, мол здесь все понятно..... И в очередной (может быть уже 100-й) раз спецы слились перед глюками винды, подтвердив, что они бессильны.

Удивляет факт, что куча оверклокерских форумов - народ вытягивает жалкие 3-5% производительности, которые и глазом заметить сложно и радуется. А здесь - классическая тема лагает во всех местах и дела никому нет. 2D быстродействие новых АМД меньше реальных цифр до 30 раз (!!!) и болтается на уровне карт 15 летней давности - и дела никому нет.

Ну то ладно. В моем случае - один в поле тоже воин.

Давайте подумаем - в Виндовс 8 ускорение графики вообще не выключается, никогда!! Поэтому если патчем w8classic возвращается классическое оформление - то оно работает с ускорением. Можно ли перетянуть какой-то файл с Вин8 в Вин7 там где вшита эта выключалка, например DWM.exe




Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 26 февраля 2019 15:31
· Личное сообщение · #17

Jurim пишет:
Можно ли перетянуть какой-то файл с Вин8 в Вин7

Можно. Перетягивайте.

Jurim пишет:
А здесь - классическая тема лагает во всех местах и дела никому нет. 2D быстродействие новых АМД меньше реальных цифр до 30 раз (!!!) и болтается на уровне карт 15 летней давности - и дела никому нет.

А вы не задумывались, почему никому нет дела?
1. АМД всех купил / запугал.
2. Эта проблема никому не интересна, потому что классическая тема никем не юзается.

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



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 26 февраля 2019 23:22
· Личное сообщение · #18

morgot

Я делаю то, что в моих силах.
Если профильные программисты не могут решить данную проблему - то куда мне темному.
DWM.exe с восьмерки я пробовал пихать, не приживается, явно нужно что-то патчить, перед там как ложить.



Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 26 февраля 2019 23:27
· Личное сообщение · #19

Jurim
Ты просто напрашиваешься на патч, который превратит твой пека в тумбочку. Остановись, подумой



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 26 февраля 2019 23:50
· Личное сообщение · #20

rmn

По факту, классическую тему в относительно нормальном виде я возродил аэро-темой Classic_AE_mod_2019_1 https://forum.zloy.bz/showthread.php?p=5060011#post5060011

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

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




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 27 февраля 2019 02:12
· Личное сообщение · #21

Jurim пишет:
найти людей с поддержкой

Какой смысл использовать классическое оформление?
Я бы не назвала оформление 10ки размалеванным, очень симпатичный флюинт дизайн, даже калькулятор интересный, все весьма занятно, приятно глазу и футуристично.
Не ясно нафига вам пытаться что-то ускорить, например захочу видео посмотреть в 4к, на слабой видеокарте естественно будет тормозить, что мне теперь реверсить ос/браузер/дрова? Конечно нет, просто купить современное железо.

-----
В облачке многоточия




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 27 февраля 2019 10:27 · Поправил: Jurim
· Личное сообщение · #22

Boostyq

Я не владею таким словами, как "флюинт дизайн" и "футуристично". Оформление Вин10 я называю простыми словами - "постная хуйня". Другими словами - убого, минималистично, планшетообразно, вырвиглазно.

Кстати калькулятор Вин10 для меня не удобен - мой идеальный вид калькулятора такой:


Слону понятно, что распаковка видео в 4К - нужно дохрена ресурсов, а для отрисовки классической темы - нужно 0 ресурсов. На старых ПК с железом 15 летней давности под ХР - никаких лагов классики, а на Вин 7 и новом ПК сборки 2016 года - то подмигивает, то перемигивает, то текстовая метка мигает - какой-то пиздец. Трехмерную стрелялку со всеми говноэффектами со 100FPS отрисовывает, а одну несчастную текстовую метку не может вывести без перемигиваний.




Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 27 февраля 2019 16:38
· Личное сообщение · #23

Jurim пишет:
мой идеальный вид калькулятора такой:


А мой вот такой, но я не говорю же, что остальные калькуляторы говно и шлак..




Ранг: 158.6 (ветеран), 123thx
Активность: 0.140.5
Статус: Участник

Создано: 27 февраля 2019 17:32
· Личное сообщение · #24

Jurim пишет:
то подмигивает, то перемигивает, то текстовая метка мигает

Так а видюха с драйверами-то тут причем? Это мигание происходит потому, что сначала стирается старая метка, а потом на ее месте рисуется новая. И на экран выводятся по очереди оба изображения - первое без старой метки и второе с новой.
В играх или программах, В КОТОРЫХ ИНТЕРФЕЙС РЕАЛИЗОВАН ПРАВИЛЬНО РАЗРАБОТЧИКОМ, рисование не идет сразу на окно, а используется двойная буферизация. Т.е. когда от системы приходит уведомление о перерисовке окна, программа в памяти создает временную картинку, на которой рисует все изменения, которые должны быть произведены в окне. А затем эта полностью готовая картинка окна рисуется поверх старой. Т.е. последовательного вывода на экран нескольких изображений окна, со стертой старой меткой и нарисованной новой, не происходит. Потому никакого мерцания нет.

Что ты, блядь, тут патчить собрался?



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 27 февраля 2019 17:48 · Поправил: Jurim
· Личное сообщение · #25

ОЧЕНЬ ВАЖНАЯ Видеодемонстрация 27.02.2019 г.

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

https://www.youtube.com/watch?v=fcmR1ujSsaU




Ранг: 271.4 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 27 февраля 2019 18:15
· Личное сообщение · #26

Jurim пишет:
2 этап - обращение к специалистам

Ты же один в поле воен, разве нет?

-----
2 оттенка серого




Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 27 февраля 2019 22:22
· Личное сообщение · #27

f13nd

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

Должен быть какой-то выход. Почему у медленно перемещаемого окна, отрисовка быстрее, чем у статического. Надеюсь видео смотрели. Что с этого можно поиметь? Я думаю это как-то нужно использовать. я удивляюсь, почему у программистов нет идей.




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 27 февраля 2019 22:33
· Личное сообщение · #28

Jurim пишет:
какой-то выход

В окно, себя или видеокарту на выбор.

-----
В облачке многоточия





Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 28 февраля 2019 00:19
· Личное сообщение · #29

Jurim пишет:
Так как упрямства у большинства программистов хватает на 1 день. Что-то не получается - сразу сдаются....

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



Ранг: 7.2 (гость), 7thx
Активность: 0.360.19
Статус: Участник

Создано: 28 февраля 2019 00:25 · Поправил: Jurim
· Личное сообщение · #30

Boostyq

Из описанных багов - только проблема медленной отрисовки спектра - это проблема чисто АМД. Все остальные подмигивания - будут видны на всех видеокартах ибо это проблема Виндовс 7.

Один специалист мне посоветовал такие слова, честно говоря я не очень понимаю.
Code:
  1. Я когда-то хотел для этого сделать dll, которую вставить 
  2. в HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\Windows\Appinit_Dlls, 
  3. а внутри прописать
  4.  
  5. SetThemeAppProperties(0);
  6. PostThreadMessage(GetCurrentThreadId(), WM_THEMECHANGED,0,0);
  7.  
  8. Только разобраться, при каком значении dwReason это делать:
  9. DLL_PROCESS_ATTACH или DLL_THREAD_ATTACH


Ваше мнение, это поможет нашим проблемам?




Ранг: 69.9 (постоянный), 82thx
Активность: 0.140.73
Статус: Участник

Создано: 28 февраля 2019 00:33
· Личное сообщение · #31

Jurim
сделай и потестируй. гугл-создание длл на Си/С++, в DLL main вставь код (if dwreason == DLL_PROCESS_ATTACH делать вот это все).
Appinit_Dlls подгружают дллку во все процессы, импортирующие user32.dll , надо лишь с правами разобраться, там вроде цифровая подпись нужна (точнее, ее надо отключать, не помню точно).


<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 11 . 12 . >>
 eXeL@B —› Дневники и блоги —› Патч Windows 7 для включения графического ускорения в классической теме
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати