LINUX.ORG.RU

Ограничить частоту кадров в xscreensaver

 ,


0

1

Заметил, что когда включается хранитель экрана, то охлаждение процессора начинает немножечко гудеть. Начал разбираться и заметил, что он гоняет по частоте кадров без какого либо ограничения(150-250 у меня).

Что хотелось бы, либо ограничить кадры как-то, либо может быть включить vsync, который ограничит кадры. Или может вообще можно ограничить каким-то образом ресурсы CPU для процесса xscreensaver?

Хранитель экрана выключать не хочется, привык я как-то к «звездам» летающим по замысловатым траекториям, они у меня так уже пару лет летают.

★★★★★

Каждый отдельный скринсейвер в Xscreensaver это отдельная программа. Так что выясни, какую именно ты используешь, и смотри на предмет настроек. Настраиваются они как-то через X ресурсы.

i-rinat ★★★★★
()

Заметил, что когда включается хранитель экрана, то охлаждение процессора начинает немножечко гудеть. Начал разбираться и заметил, что он гоняет по частоте кадров без какого либо ограничения(150-250 у меня).

Что-то очень сомнительно, что xscreensaver меняет видеорежим и как частность частоту кадров. Просто после видимо относительной статичной картинки на экране она начинает рисовать какую-нибудь 3Д с хардварным ускорением, как итог повышенная нагрузка на CPU/GPU. И кстати не факт, что между частотой кадров монитора и частотой отрисовки кадров xscreensaver-ом может быть связь. И вот еще что. Не удивлюсь, если окажется что в современных системах со всякими Вялендами и прочей мутью голубой заставку на экране может рисовать не собственно xscreensaver, а что-нибудь, что к X-ам вообще не имеет никакого отношения.

zloy_starper ★★★
()
Ответ на: комментарий от zloy_starper

У меня не вяленд, а классическая Х-сессия. После дополнительного изучения, увидел, что процессор(до 60-70%) начинают жрать иксы, когда скринсейвер запускается. И из-за этого у меня не получается ограничивать ресурсами(CPUAccounting пробовал) сам скринсейвер, потому что ресурсы жрет то и не он.

Loki13 ★★★★★
() автор топика
Ответ на: комментарий от DumLemming

Да вот уже и задумался, может попробовать в этот конкретный, который меня интересует, попробовать добавить ограничение на 60fps. Я причем даже догадываюсь, почему раньше не замечал, у меня FullForceCompositionPipeline был включен, так он как раз до 60к\с ограничивает всё нафиг. А недавно я его отключил, потому что некоторые игры с ним глючат и 30к\с выдают.

Loki13 ★★★★★
() автор топика
Ответ на: комментарий от Loki13

Охрененть, первое что нашел сразу

Windows port of the Linux screensaver WhirlWindWarp using Qt 5.x. Some improvements over the original version:

Antialiasing Configurable particle trails: on/off, fade, variable length. Frames per second configuration.

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

Loki13 ★★★★★
() автор топика
Ответ на: комментарий от Loki13

Нашел в оригинальном коде даже ограничение по кадрам, блин, они просто не вынесли это в настройки, захардкжено

/* Cap frames per second; do not go above specified fps: */
      {
        unsigned long this_delay = 0;
        int maxfps = 200;
Loki13 ★★★★★
() автор топика
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от Loki13

Ну и я угадал, рисуется средствами иксов, потому и начинают процессор жрать именно иксы

if (st->meters) {
        XSetForeground(st->dpy, st->draw_gc, st->bgcolor.pixel);
        XDrawRectangle(st->dpy,st->window,st->draw_gc,0,0,st->lastresets*5,3);
        XSetForeground(st->dpy, st->draw_gc, st->default_fg_pixel);
        XDrawRectangle(st->dpy,st->window,st->draw_gc,0,0,st->resets*5,3);
      }
Loki13 ★★★★★
() автор топика