Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.07.21;
Скачать: [xml.tar.bz2];

Вниз

Медленная отрисовка 2D GDI Windows 7 (в 4.5 раза медленнее XP)   Найти похожие ветки 

 
Sapersky   (2013-02-10 04:03) [40]

Блокнот действительно мерцает. Дельфийский memo тоже, но реже и только выделение, поэтому не так заметно.
Но опять же, пока мне об этом не сказали, я не заметил. А на tearing в XP я сразу обратил внимание, как только сел за большой ЖК монитор и попытался перетащить окно, хотя и не особо страдал от этого.
Меню Пуск - никогда не мерцало. Похоже, у всех всё по-разному.

В целом мне не очень хочется уже спорить. Ну да, видимо, рендер GUI в новой системе где-то оказался хуже старого. 90% пользователей этого не заметят, поэтому MS не почешется что-то исправлять.
Что тут посоветуешь несчастному перфекционисту? Ну может написать письмо в MS, вдруг оценят въедливость и возьмут тестером :) А если не возьмут - уйти в монастырь, тьфу, на Линукс, и собственноручно шлифовать драйвера до совершенства...

В Win8 ситуация, похоже, не изменится - MS хвастается оптимизацией Direct2D, что можно понимать как "а на GDI мы забили болт":
http://arstechnica.com/information-technology/2012/07/windows-8-gpu-acceleration-good-news-for-metro/
(подобные ссылки гуглятся по простецким запросам вроде "windows 8 GDI acceleration")


 
Кто б сомневался ©   (2013-02-10 05:51) [41]


> Eraser ©   (10.02.13 02:11) [38]

Ты погоди, не разбегайся так. Давай по порядку.
Я конечно понимаю ты пять лет сидел, не замечал мерцание в блокноте жил себе счастливо, а теперь всю жизнь будешь мучаться. :)
Тебя видимо смутило количество восклицательных знаков и шапкозакидательный ник, от которого немного отвык, и стереотипный анализ сразу определил похожий стиль aka "орущей школоты"11111!! и соответствующий возраст. Палец рефлекторно выдвинулся и так нарицательно погрозил - "Здесь вам не тут!".  
Ну настроение у меня хорошее, суббота все таки.

Специально ради тебя пришлось откатывать чистую винду на виртуалке - спешу тебя обрадовать - там с блокнотом тоже самое и не только с ним.


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


А точнее второй.
Первый раз я спрашивал про (Windows 7 - баг с удалением любого exe файла)  

http://delphimaster.net/view/15-1359504581/  . И сам же дал на него ответ.
Я понимаю что рушится авторитет Microsoft в который ты верил с детства, но этот баг есть по умолчанию в Win 7 Embedded минимального клиента (там служба вырублена) - кто-то помучается с этим багом в терминалах.
Бывает такая редкость - синоптики ошибаются, не только Microsoft;

А в целом все по теме, как заявлено в заголовке, удивляют твои OMFG.


 
Inovet ©   (2013-02-10 09:18) [42]

> [38] Eraser ©   (10.02.13 02:11)
> который х знает что сделает с системой, а потом орет, что
> ничего не работает

Это всё Билл Гейтс виноват, в мерцание компонентов заложена зомби-программа.


 
Inovet ©   (2013-02-10 09:20) [43]

Ну и игры, игры, игры мозг выжгли.


 
Inovet ©   (2013-02-10 09:22) [44]

> [40] Sapersky   (10.02.13 04:03)
> Похоже, у всех всё по-разному.

подкручено в реестре шаловливыми ручками.


 
robt   (2013-02-10 14:56) [45]


> баг с удалением любого exe файла

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


 
Inovet ©   (2013-02-10 15:10) [46]

> [41] Кто б сомневался ©   (10.02.13 05:51)
> А точнее второй.

Я помню больше 2-х раз.


 
Игорь Шевченко ©   (2013-02-10 17:19) [47]

У тебя Win7 неправильный. Не наблюдаются твои недостатки, хоть что делай.


 
Inovet ©   (2013-02-10 17:25) [48]

> [47] Игорь Шевченко ©   (10.02.13 17:19)
> Не наблюдаются твои недостатки, хоть что делай.

Кто ищет, тот всегда найдёт.


 
знайка   (2013-02-10 17:59) [49]

Ни на win7 ни на 2008r2, у нас нет ничего из описанного.
Аеро врубили сразу, так и работаем.


 
Eraser ©   (2013-02-10 18:35) [50]


> Кто б сомневался ©   (10.02.13 05:51) [41]


> Специально ради тебя пришлось откатывать чистую винду на
> виртуалке - спешу тебя обрадовать - там с блокнотом тоже
> самое и не только с ним.

тут два соображения.
1. есть тестировать производительность видеосистемы на виртуалке - можно получить, мягко говоря, не объективные результаты.
2. Аеро должно быть включено, начиная с Vista. Почти на всех видеокартах выпущенных после 2007 года Аеро будет работать быстрее, чем GDI.


 
robt   (2013-02-10 20:35) [51]


> Почти на всех видеокартах выпущенных после 2007 года Аеро
> будет работать быстрее, чем GDI.

ага, а еще принято на железе размещать логотип аля "Вин7 реади"


 
Кто б сомневался ©   (2013-02-14 16:01) [52]


> Eraser ©   (10.02.13 18:35) [50]
> тут два соображения.



> 1. есть тестировать производительность видеосистемы на виртуалке
> - можно получить, мягко говоря, не объективные результаты.
>

Ну изначально баги были замечены на реальной машине. Я длительное время (еще когда она вышла) грешил на разное (в основном на драйвера), ставил разные версии (от Home до Ultimate и Embbeded), рассматривал на других конфигах.

В целом Sapersky в  (10.02.13 04:03) [40] подрезюмировал.  
просуммирую:
Мерцания есть в стандартных: меню, чекбоксах, табах, быстроизменяющихся надписях, статусбарах, списках с иконками, в std Memo при выделении текста (notepad, lister), как с Aero так и без него.  

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

Чем выше DPI, тем заметнее глазу артефакты - просто из-за того что элементы крупнее, эффекты заметны как на конфигах с Радеоном, так и с GF.
Вобщем то это еще зависит от восприятия - большинство не замечает что при скроле списка он мигает.

Стандартное GUI стало медленнее из за того что не используется аппаратное ускорение (хорошо заметно в браузерах на страницах с графикой).

Microsoft chose software render because they found too difficult to combine the new graphical engine with the old one. If you want to learn more about it read this: http://blogs.msdn.com/b/directx/archive/2009/05/12/2d-drawing-apis-in-windows.aspx

Windows 7 has several integrated solutions to circumvent the lack of 2d graphical acceleration...the problem is those solutions require full rewrite of the every single application"s gui in order to use the new direct2d and directwrite, including the ones bundled with the os (file explorer, dialog boxes, management windows, etc...) and that"s not going to happen in years, not from Microsoft itself, nor from 3rd party developers.

there is people who"s not able to see the difference between a game running at 60 fps from the same game running a 30 fps or earing the difference between a 128kb mp3 and a real CD Audio. I guess all depends on how fast you are used to work with your computer, and whether Vista already seemed slow or not for you.
All I can say is, there is a real difference, a difference you can meter, and at least me and some other people are able to feel in every day Windows 7 use.

Probably many people is blinded by the novelty and don"t want to accept there are some problems with the new and overrated Microsoft system.
http://www.youtube.com/watch?v=ay-gqx18UTM

http://www.google.com.ua/search?rls=en&q=Windows+7+GUI+slow


 
имя   (2013-02-14 17:41) [53]

Удалено модератором


 
Eraser ©   (2013-02-14 19:03) [54]


> При включенном Aero также заметны черные прямоугольники
> обнуляющие фон - при развертывании\переключении окна, при
> ресайзе.
>

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


 
robt   (2013-02-14 19:48) [55]

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


 
Кто б сомневался ©   (2013-02-14 20:48) [56]


> robt   (14.02.13 19:48) [55]

А причем тут это, тут суть в другом - начиная с Висты что GDI, что GDI+ "is no longer hardware-accelerated by the video card driver." "GDI+ continues to rely on software rendering in Windows 7"  .

http://en.wikipedia.org/wiki/Graphics_Device_Interface
(статья "Windows Vista", "Windows 7",  и далее по ссылкам)


 
robt   (2013-02-14 21:55) [57]


> тут суть в другом

суть в том что, как бы ты не страдал по этому поводу ничего не изменится
GDI это древнейшая приблуда винды которой в доисторические времена действительно требовалась аппаратная поддержка ибо процессоры были УГ
на данном этапе развития ЦП (включая неправославные мобильные) софтварной отрисовки для поддержки совместимости более чем выше крыши


 
robt   (2013-02-14 22:00) [58]

по поводу ИЕ вообще незнаю что страдаешь, с 9й версии там видюшная отрисовка


 
Кто б сомневался ©   (2013-02-14 22:49) [59]



> софтварной отрисовки для поддержки совместимости более чем
> выше крыши



Что за бред. Если вообще отказаться от аппаратной поддержки, то все будет дико тормозить, самые простые фильмы превратятся в слайды не говоря о 1080.
Аппаратная поддержка есть в Aero, но не настолько широкая как в GDI.

Наоборот MS стремятся к аппаратной поддержке - о чем говорит D2d. А direct2d что интересно, судя по кол. отзывов, не быстрее GDI Win 7, даже с отключенным сглаживанием.

К примеру http://stackoverflow.com/questions/4055456/is-tdirect2dcanvas-slow-or-am-i-doing-something-wrong
[drawing with Direct2D the 50k lines without anti-aliasing ~50ms]
GDI if I draw to a bitmap and after I BitBlt the result back to the form, it paints at ~35ms]
или
http://stackoverflow.com/questions/13281964/gdi-versus-direct2d
[when using GDI i can draw easily 400+ Ellipses and still have 400 FPS. When I do the same amount of ellipses with Direct2D my FPS drops down to 30FPS. I allready switched antialiasing off.]
или
http://channel9.msdn.com/Forums/TechOff/Direct2D-performance-for-very-complex-graphics
[Given this scenario we are finding the performance of polygon rendering and the outlines to be insufficient with Windows 7. In fact GDI appears to be a lot quicker... which is surprising.]

А насчет текущей темы (GDI с АП в XP, и без АП в win7) вот детальный тест
http://www.tomshardware.com/reviews/2d-windows-gdi,2547-6.html


 
Sapersky   (2013-02-15 19:54) [60]

Что касается Direct2D - это обёртка над Direct3D, который заточен под игры, то есть рисование текстурированных треугольников, полупрозрачность, шейдерные эффекты и т.д.
Отсюда проблемы при попытке реализовать на игровом API типичные GDI-шные задачи. В лучшем случае примитивы в API есть (точки, линии), но в драйверах их не оптимизируют, для игр они не особо нужны. Так что жутко быстрые современные CPU вполне могут обгонять в этом случае видеокарту - она просто не задействует бОльшую часть своих мощностей.
В худшем случае (тот же эллипс) вообще не очень понятно, как рисовать, если весь доступный набор - точки, линии, треугольники. Разве что очень много (для округлости) треугольников. Или софтверно, причём рисовать софтверно при аппаратном рендере не так просто (из-за того, что буфер для рисования находится в памяти видеокарты). Что опять-таки может дать замедление по сравнению с чистым софтвером.

Но постепенно, думаю, допилят, в том числе за счёт добавления аппаратных фич к видеокартам. Собственно, про это написано по ссылке в [40] - Direct3D 11.1 и всё такое.


 
Eraser ©   (2013-02-15 20:28) [61]


> Sapersky   (15.02.13 19:54) [60]

теоретик, емое.


 
Sapersky   (2013-02-15 20:57) [62]

Да, но обычно угадываю.
MS может придумывать сколько угодно новых API, но железо (видеокарты) остаётся то же самое, и работает по тем же самым принципам.
Что же касается потрохов D2D, то MS сам пишет "on top of Direct3D" или как-то в этом духе. Может, конечно, там гибрид с GDI, но мне кажется вряд ли, раз уж идеологически MS ориентируется на обновление всего и вся.
И как там на практике, кстати?


 
Eraser ©   (2013-02-15 21:30) [63]


> Sapersky   (15.02.13 20:57) [62]
>

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


 
Sapersky   (2013-02-15 23:35) [64]

Посмотри на последние рекомендации и графические примеры от MS - все ориентировано на работу с шейдерами (даже самое примитивное рисование) и поверхности, хранящиеся в видеокарте

Это как раз понятно, что D3D и видеокарты хорошо умеют - на то и упирают.
Но я писал не о том, как правильно использовать Direct2D. А о том, как в нём (предположительно) реализованы функции рисования в GDI-стиле. Как разработчику D2D нарисовать, например, эллипс на шейдерах?
Хотя шейдеры я более-менее помню только старых версий. Если в новых появилась команда определения текущей координаты пикселя, то да, можно.


 
Eraser ©   (2013-02-16 00:45) [65]


> Но я писал не о том, как правильно использовать Direct2D.
>  А о том, как в нём (предположительно) реализованы функции
> рисования в GDI-стиле. Как разработчику D2D нарисовать,
> например, эллипс на шейдерах?


> Sapersky   (15.02.13 23:35) [64]

в курсе что такое шейдер? ) вот на шейдерном языке и можно нарисовать. это сложнее, чем раньше - через интерфейсы и API функции, но эффективнее.


 
Sapersky   (2013-02-16 01:08) [66]

В курсе, хотя не так много с ними работал.
Сейчас нашёл уже:
http://www.gamedev.net/topic/505331-drawing-an-ellipse-via-its-implicit-equation-in-a-pixel-shader/
Не факт, правда, что такое устроит D2D-шников с их требованиями к качеству картинки (аппаратный антиалиасинг в DX11 их не устроил). Кол-во вычислений тоже впечатляет - шейдер выполняется для каждого пикселя в описывающем прямоугольнике эллипса, а на CPU считается только контур. Неизвестно ещё, кто кого поборет, хотя для аппаратного рендера, наверное, лучше шейдерный вариант.


 
Sapersky   (2013-02-16 19:32) [67]

Я таки сравнил шейдерные эллипсы с софтверными.
// 100 outline ellipses + Present:
// shader: 12; soft: 150
// 100 filled ellipses + Present:
// shader: 15; soft: 46
Celeron G530, интегрированное видео. Cлабое, конечно, но я его не Кризисами гружу, а всего лишь эллипсами.
В общем, новые технологии могут быть перспективнее (+ к шейдеру легче прикрутить разные красивости), но необязательно эффективнее на текущий момент.
Шейдер получился довольно простой:

float2 ab2 : register(c0); // 1 / a^2, 1 / b^2
float4 cBlack = float4(0,0,0,0);
float4 cWhite = float4(1,1,1,1);

float4 ps_main( float2 texCoord  : TEXCOORD0 ) : COLOR
{
  float2 t = (texCoord - 0.5) * 2;
  float2 d2 = t * t * ab2;
  float d = d2.x + d2.y;
  if ((d < 0.99) || (d > 1.00)) discard; // filled: if (d > 1.00) discard;
    else return cWhite;
 return cBlack;
}

Сотферный метод - цикл по вертикали с расчётом X-координаты эллипса в зависимости от Y, без перебора всех пикселей.


 
Rouse_ ©   (2013-02-16 21:16) [68]

Хм, сколько работаю с семеркой, вот если б не сказали что мерцает в блокноте и в services.msc так и не заметил бы.
По факту - ну мерцает и чего?


 
Eraser ©   (2013-02-17 01:53) [69]


> Sapersky   (16.02.13 19:32) [67]


> Celeron G530, интегрированное видео. Cлабое, конечно, но
> я его не Кризисами гружу, а всего лишь эллипсами.

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


 
Кто б сомневался ©   (2013-02-17 01:59) [70]


> Rouse_ ©   (16.02.13 21:16) [68]

Там не только списки с иконками (многие ListView не только services) и Memo (в любой программе с std Memo), а еще и другие элементы - std меню (в сторонних прогах втч.), табы и лэйблы + при ресайзе программ черные поля.


> По факту - ну мерцает и чего?


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

А это значит что у MS со сменой начальства и большой регресс качества продукта.

Одно дело мерцать в GUI настроек ОС, но мерцают  (даже мигают) GUI компоненты которые предназначены для сторонних программ (меню, Memo, Label, ListView).

И это в операционной системе которую юзают большинство людей на Земле, и которую разработала самая богатая и наибольшая корпорация по разработке софта (не студенты какие-нибудь, а компания-лидер с многолетним опытом.  React OS и та не мигает, хотя сделана по сравнению с MS "на коленке").
Притом что мигания GUI не зависят от мощности PC.


 
Кто б сомневался ©   (2013-02-17 02:54) [71]


> Rouse_ ©   (16.02.13 21:16) [68]
> По факту - ну мерцает и чего?


А можно посмотреть с практической стороны - чем мешает отсутствие АП в отрисовке юзеру?

1,Если включить IE 8 - и зайти на сайт с кучей картинок и видео (типа yaplakal.com) - то при обычном скроле страница отрисовывается рывками. А если нажать PgDown -  вообще начинается "песня". (проверьте если не верите)
Некоторые даже отключают js в Опере [26].

2,Если включить музыкальную студию (FL Studio) в Win 7  и открыть одновременно ~10 окон (микшеры, эффекты), потом запустить трек  - в окнах все отображается в "реальном времени" - то если передвигать окна включая то один VST плагин, то другой - тормоза при отрисовке мешают работе и раздражают.  
При этом дополнительно грузится проц, и начинает раздаваться треск (т.н. overruns, crackling caused by cpu overloads) - приходится увеличивать буфер, и получаем большую задержку (момент от нажатия клавиши до получения звука)- что уже реально мешает работе. Тот же проект в XP работает при меньшей задержке, и эти 10 окон отрисовываются быстро.
Конечно для задержек есть звуковуха с ASIO - но с окнами это не поможет.


 
Sapersky   (2013-02-17 03:42) [72]

эллипсы в чистом виде никому не нужны, нужно тестировать на реальных задачах.

В процессе поиска информации по Direct2D неизменно натыкаешься на ругань людей, которые пытаются использовать его в реальных задачах.
Эллипсы здесь в качестве примера того, как новый API может быть медленнее старого. В [59] упоминаются также проблемы c линиями и полигонами, но это тривиальный в смысле реализации на GPU вариант, неинтересно.


 
antonn ©   (2013-02-18 08:24) [73]

такое наблюдение: программы собранные на дотнете куда активнее мерцают :) студия аж переливается. в то же время мои программы на D7 не мерцают, тотал командер не мерцает, the bat...


 
Rouse_ ©   (2013-02-18 13:32) [74]


> Кто б сомневался ©   (17.02.13 01:59) [70]
>
> > Rouse_ ©   (16.02.13 21:16) [68]
>
> Там не только списки с иконками (многие ListView не только
> services) и Memo

Экплорер не моргает и шут с ним. Остальное редко используется :)


 
antonn ©   (2013-02-18 19:25) [75]


> Экплорер не моргает и шут с ним. Остальное редко используется
> :)

при работе по RDP заметно как все перемигивается и перерисовывается, по папкам когда бегаешь


 
Rouse_ ©   (2013-02-18 21:13) [76]


> antonn ©   (18.02.13 19:25) [75]

Ну это не проблема ОС


 
Иксик ©   (2013-02-19 01:45) [77]

>http://delphimaster.net/view/15-1359504581/

Не могу воспроизвести мигание. Со зрением, вроде бы, все ок...


 
antonn ©   (2013-02-19 06:53) [78]


> Ну это не проблема ОС

не ос, а кучи программ в ней (в том числе системные и "родные" (типа проводника)). игрушки на GDI мои не мигают (так же при игре через rdp)


 
Eraser ©   (2013-02-19 07:31) [79]


> antonn ©   (19.02.13 06:53) [78]

RDP оптимизирован не для игрушек.


 
Sapersky   (2013-02-19 08:11) [80]

Попался под руку ноутбук с интегрированным видео времён s775, довольно медленным по сегодняшним меркам - практически ничего на нём не мерцает. Только блокнот, и окно служб ресайзится с чёрными квадратами.
Т.е. возможно дело в прямизне драйверов, хотя не очень понятно, почему драйвера устаревшего чипсета лучше современных NV и ATI. Разве что по принципу "он всё равно ничего кроме GUI не потянет, будем вылизывать GUI".



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2013.07.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.74 MB
Время: 0.007 c
2-1353827595
ДенисПФ
2012-11-25 11:13
2013.07.21
Packed Record to MemoryStream


15-1362294840
TUser
2013-03-03 11:14
2013.07.21
100% тест на русскость ))


15-1360285956
Кто б сомневался
2013-02-08 05:12
2013.07.21
Медленная отрисовка 2D GDI Windows 7 (в 4.5 раза медленнее XP)


15-1361990175
ХХХХХ
2013-02-27 22:36
2013.07.21
Как сделать паузу?


2-1353613774
Tcount
2012-11-22 23:49
2013.07.21
Анти SelectAll...Существует что-нибудь подобное?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский