Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Дневники и блоги —› Патч Windows 7 для включения графического ускорения в классической теме |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 11 . 12 . >> |
Посл.ответ | Сообщение |
|
Создано: 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 года, что ещё более замедляет работу классической темы - Но в других производителей (NVidia, Intel) дела хоть и лучше, но не намного... Приведённые глюки в - Performance Test 8.0 (перемигивание при перемещении по результатам) - NetMonitor - - Диспетчер задач (глюки отрисовки столбика загрузки ЦП) есть на всех видеокартах у всех пользователей и причина этому - установленный драйвер на видеокарту. После удаления драйвера, то есть на "Стандартном адаптере VGA" - этих проблем нет. Абсурд! Но так и есть, проверьте сами. Варианты решения: 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. Видеодемонстрация - Видимо отрисовка окна "Radeon Settings" задействует какие-то функции видеокарты, которые параллельно заставляют работать быстро весь интерфейс. 5) При масштабировании размеров окна. Вообще не понятно, масштабируемое окно должно тормозить, а оно наоборот ускоряется. Глюки, которые видны на экране - их нет при завате экрана программой bandicam. Видеозаписи смотреть нужно обе, по-очереди. С фотоаппарата - С bandicam - 6) Есть рецепты, когда картинка ускоряется после запуска в фоне аудио или видеопроигрывателя, который просто переводит мультимедиа таймер в определенный режим, что тоже ускоряет видеовывод Постановка задачи Вообщем нужны любые мысли (патче файлов ОС, создании фоновой программы, драйвере двойной буферизации) - не важно что это будет и как реализовано, важно чтобы это заставляло ОС работать быстрее в классическом оформлении. |
|
Создано: 24 февраля 2019 18:13 · Личное сообщение · #2 |
|
Создано: 24 февраля 2019 18:19 · Личное сообщение · #3 |
|
Создано: 24 февраля 2019 19:13 · Личное сообщение · #4 1) Окно спектра Foobar2000 >>>> Window <<<< Title: Спектр Class: {483DF8E3-09E3-40d2-BEB8-67284CE3559F} Position: 0, 34 Size: 1070, 817 Style: 0x96CC0000 ExStyle: 0x00010101 Handle: 0x00030244 Результат - после применения патча вывод спектра ускоряется, побочных проблем - не выявлено 2) Программа Neutron >>>> Window <<<< Title: Neutron 1.07 http://keir.net Class: Neutron Position: 432, 39 Size: 285, 173 Style: 0x94CA08C4 ExStyle: 0x00010101 Handle: 0x00030168 Результат - после применения патча текстовая метка более не подмигивает, побочных проблем - не выявлено 3) Диспетчер задач >>>> Window <<<< Title: Диспетчер задач Windows Class: #32770 Position: 370, 124 Size: 734, 764 Style: 0x96CF004C ExStyle: 0x00010100 Handle: 0x0004026E Результат - после применения патча "Столбик загрузки ЦП" уже не дергается, но появляются проблемы с глючной отрисовкой окна, которых не было до патча Вопрос: Ну и как быть, например с Диспетчером задач, когда решается одна проблема, но появляется другая. Может нужно стиль WS_EX_COMPOSITED засылать на в само окно, а на какой-то элемент окна, например столбик или кнопку? Или использовать другой стиль, который тоже принудительно включает двойную буферизацию, но не имеет проблем, которые вызывает WS_EX_COMPOSITED ??? |
|
Создано: 24 февраля 2019 21:50 · Поправил: DenCoder · Личное сообщение · #5 Foobar2000 WindowStyle = WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME ExStyle = WS_EX_CONTROLPARENT | WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME Neutron WindowStyle = WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CAPTION | WS_SYSMENU | WS_GROUP | 0xC4 ExStyle = WS_EX_CONTROLPARENT | WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME Диспетчер задач WindowStyle = WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP | 0x4C ExStyle = WS_EX_CONTROLPARENT | WS_EX_WINDOWEDGE Добавлено спустя 7 минут WS_EX_COMPOSITED Paints all descendants of a window in bottom-to-top painting order using double-buffering. For more information, see Remarks. This cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC. Добавлено спустя 15 минут Также нашёл: WS_EX_COMPOSITED works by forcing child windows to draw back to front and by double buffering them; however, the double buffering used by WS_EX_COMPOSITED for the child windows conflicts with the double buffering used by WS_EX_LAYERED windows and DWM so it does not remove the flicker in those contexts. DWM - это такой оконный менеджер(Desktop Window Manager Session Manager) в 7ке отдельным процессом, запущенным из-под службы. Не разбирался, зачем он нужен и как взаимодействует с окнами. Но у каждого юзера по одному такому на машине. Добавлено спустя 16 минут Unfortunately, this means that your composited test application flickers with DWM turned on but not with DWM turned off. ----- IZ.RU |
|
Создано: 24 февраля 2019 22:29 · Личное сообщение · #6 DenCoder DWM.exe - это менеджер окон, по слухам именно в эту какашку встроена включалка/выключалка графического ускорения. Но поскольку за 2 года, ковыряния в этой проблеме, в мире не нашелся человек, который бы смог там что-либо пропатчить - то этот файл мы не трогаем. Я пока, что не понял как решать проблему дальше. Ну например, есть "Диспетчер задач" и он глючит столбиком загрузки ЦП и текстовыми метками. Его окно имеет стиль Style: 0x96CF004C и ExStyle: 0x00010100. Мы засылаем этому окну вдобавок WS_EX_COMPOSITED и проблемы подмигивания решаются, но появляются другие проблемы, которых вначале и не было!!! Выходит мы ему не должны засылать WS_EX_COMPOSITED.... Но тогда же не решится проблема с мигающим столбиком ЦП.... Зашли в тупик. Как быть?? |
|
Создано: 24 февраля 2019 22:37 · Личное сообщение · #7 Думаю, дело в оконном обработчике скорее, чем в свойствах окна. ----- IZ.RU |
|
Создано: 24 февраля 2019 22:54 · Поправил: Jurim · Личное сообщение · #8 |
|
Создано: 24 февраля 2019 22:57 · Личное сообщение · #9 Почитал несколько статей на разных сайтах... У кого-то, прям, свербит, что что-то там мерцает. Короче, мало присвоить окну WS_EX_COMPOSITED и всё тут. Для некоторых контролов окна когда надо нужно этот стиль отключать, после обработки включать. Или включать только, когда надо и отключать, когда не надо. ----- IZ.RU |
|
Создано: 24 февраля 2019 23:30 · Личное сообщение · #10 |
|
Создано: 24 февраля 2019 23:34 · Личное сообщение · #11 |
|
Создано: 24 февраля 2019 23:40 · Поправил: f13nd · Личное сообщение · #12 DenCoder пишет: Думаю, дело в оконном обработчике скорее, чем в свойствах окна. Возможно это окна, обрабатывающие NM_CUSTOMDRAW. Такой способ подкручивать кисти и рисовать иконки/текст на дочерних, не меняя их обработчик. Как такие окна вычилять хз даже) DefWindowProc не вызывают на WM_NOTIFY+NM_CUSTOMDRAW. ЗЫ: если колхозить по-черному, можно фильтровать окна по именам процессов и именам классов дочерних элементов. Тупо вписать правила куда этот стиль не кастовать. ----- 2 оттенка серого |
|
Создано: 24 февраля 2019 23:49 · Личное сообщение · #13 |
|
Создано: 24 февраля 2019 23:53 · Поправил: f13nd · Личное сообщение · #14 |
|
Создано: 24 февраля 2019 23:56 · Личное сообщение · #15 Человек борется, имея то, что в наличии. Это похвально! Когда-нибудь такое усердие в более серьёзных делах пригодится. ) Добавлено спустя 4 минуты Jurim Какой-нибудь spy за сообщениями в окнах возьми. Посмотри, чем отличаются сообщения в "лажовых" и "нелажовых". Пореверсить до кучи обработку интересующих сообщений надо. В финале по результатам всё же будет SetWindowsHookEx() использоваться для достижения желаемого результата дополнительной обработкой. ----- IZ.RU |
|
Создано: 25 февраля 2019 00:01 · Поправил: rmn · Личное сообщение · #16 f13nd пишет: Вобщем я бы давно сходил за другой видеокартой Похоже, ты подхватил от него эту заразу. Рекомендую недельку читать пару статей из мсдн и по одной главе из фень юаня в день, и написать простой калькулятор на винапи без мерцаний контролов. Глядишь и оклемаешься Добавлено спустя 1 минуту DenCoder пишет: Человек борется, имея то, что в наличии. Ходит с ржавыми плоскогубцами Михалыча и мотком синей изоленты и заебывает прохожих вопросом, как сделать из жигуля феррари? |
|
Создано: 25 февраля 2019 00:06 · Поправил: f13nd · Личное сообщение · #17 |
|
Создано: 25 февраля 2019 00:07 · Личное сообщение · #18 |
|
Создано: 25 февраля 2019 00:13 · Личное сообщение · #19 |
|
Создано: 25 февраля 2019 00:14 · Поправил: f13nd · Личное сообщение · #20 rmn пишет: Ходит с ржавыми плоскогубцами Михалыча и мотком синей изоленты и заебывает прохожих вопросом, как сделать из жигуля феррари? Добавлено спустя 4 минуты rmn пишет: Пропатчил выключатель графического ускорения в dwm? Молодец Методом клерка синхронизировал частоту мерцаний с частотой отрисовки. ----- 2 оттенка серого |
|
Создано: 25 февраля 2019 00:43 · Личное сообщение · #21 rmn Все таки хочу проверить свою безумную мысль. Реализуйте пожалуйста чтобы WS_EX_COMPOSITED включился и через 5 секунд выключился. Может окно, которое начнёт отрисовывыться через двойную буферизацию так и продолжит работать, а отключивщийся стиль не будет вызывать других проблем. Поскольку других идей все равно нет. Вот код, допишите пожалуйста. Code:
|
|
Создано: 25 февраля 2019 00:50 · Личное сообщение · #22 Jurim пишет: Может окно, которое начнёт отрисовывыться через двойную буферизацию так и продолжит работать, а отключивщийся стиль не будет вызывать других проблем. А может пора перестать на форуме программистов рассказывать программистам, создающим программы с графическим интерфейсом уже не один десяток лет, какую-то дичайшую хуету про то, как якобы устроены и работают программы с графическим интерфейсом и прислушаться к тому, что они говорят? |
|
Создано: 25 февраля 2019 01:01 · Поправил: Boostyq · Личное сообщение · #23 Jurim пишет: Реализуйте Вот код, допишите Если у вас есть другие мысли это реализовать - высказывайте Кхе-хе, запрос на дурачка. rmn пишет: такое усердие в более серьёзных делах пригодится Это вы зря, сейчас ему крышу-то сорвет и он еще пару лет потратит на никому ненужную фиговину, пока не найдет к кому еще присосаться. За два года мсдн будут от зубов отскакивать, если их читать хотя бы иногда, а не поклоняться магическим программам в надежде что-то пофиксить на шару. ----- В облачке многоточия |
|
Создано: 25 февраля 2019 01:02 · Поправил: Jurim · Личное сообщение · #24 rmn Мне уже АМД-шники год рассказывали, что в их говнопродукции бага нет. В итоге я снял 20 серий видеодоказательств, позычая у знакомых другие видеокарты, что бага нет ни в интел-картах, ни в нвидия-картах, ни даже в старых АМД, что показал на видео... В результате они мне выкатили видеодоказательство, что мол бага нет, но представители московского офиса сделали его на патченой системе Вин 8, применив патч w8classic. Когда я заметил, это не классика Win7, это патченая восьмерка, что же вы меня наёбуете - они удалили видео.... Спустя пол-года удалили все мои баг репорты со своего форума. Поэтому, я не верю ни кому и ни чему, кроме того, что видят газа мои. Без обид. Я ранее писал, что делая тысячи тестов, я получал моменты, когда отрисовка интерфейса в классике резко ускорялась - я толи загонял систему, толи драйвер в какой-то нештатный режим. Поэтому я хочу проверить всё. Например я не понимаю, что должно произойти с окном, которое уже отрисовывается через двойную буферизацию, если этот флаг нагорячую выключить - поэтому хочу проверить. Если у вас есть другие мысли это реализовать - высказывайте. |
|
Создано: 25 февраля 2019 01:12 · Личное сообщение · #25 Jurim пишет: я толи загонял систему, толи драйвер в какой-то нештатный режим Да-да, секретный режим ускорения графики, который включается на домашнем компе Билла Гейтса при распознавании его биологической сигнатуры. К сожалению, иногда система распознавания дает сбой и режим включается даже у гоев. Однако команда быстрого реагирования, анализирующая телеметрию в реальном времени со всех компов с установленной виндовс, оперативно поворачивает заветный рубильник, что приводит систему в первоначальное состояние. |
|
Создано: 25 февраля 2019 01:16 · Личное сообщение · #26 rmn Посмотрите моё видео - увеличение 2D производительности из ничего. Оказалось, если под окном спектра расположить окно "Radeon Settings", чтобы хоть 1мм окна выступал за пределы окна спектра - то отрисовка спектра ускоряется в десятки раз и FPS в simpleGLUT повышается с 40-60 до 1100-1300. https://www.youtube.com/watch?v=wnzbjrK_gCA Детальное короткое видео: https://www.youtube.com/watch?v=RY7QVRMP7EY Какое объяснение у этого феномена?? Почему наличие данного окна так влиет на отрисовку графики? |
|
Создано: 25 февраля 2019 01:51 · Личное сообщение · #27 |
|
Создано: 25 февраля 2019 02:26 · Личное сообщение · #28 |
|
Создано: 25 февраля 2019 11:49 · Личное сообщение · #29 |
|
Создано: 25 февраля 2019 12:58 · Личное сообщение · #30 |
|
Создано: 25 февраля 2019 13:18 · Личное сообщение · #31 Jurim пишет: То есть каждый специалист, который 15 лет подряд пользовался классической темой Почему-то офис майкрософт не остаждают миллионы специалистов с 15летним стажем с требованием вернуть классическую тему в последний виндовс, как-то люди с этим морально справляются. Может существуют клубы анонимных любителей классической темы, где они получают психологическую поддержку, можно поинтересоваться есть ли такие. Странно, что ты как специалист не ценишь свое время. Если видеокарта нужна не для игрулек, есть довольно дешевые решения этой проблемы. ----- 2 оттенка серого |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 11 . 12 . >> |
eXeL@B —› Дневники и блоги —› Патч Windows 7 для включения графического ускорения в классической теме |
Эта тема закрыта. Ответы больше не принимаются. |