Аппаратная яркость Skylake меняется слишком зернисто - PullRequest
0 голосов
/ 14 октября 2018

У меня проблема с изменением яркости дисплея ноутбука Skylake i7-6700 HQ (графика HD 530):

  • Если значение меняется на 20, оно работает.
  • Еслизначение изменяется на 19, оно работает только в нескольких сотнях прыжков.
  • Если значение изменяется на <19, яркость вообще не меняется. </li>

Однако на моем старом ноутбуке Ivybridgeяркость i7-3630 QM (графика HD 4000) успешно изменяется с шагом 1.

Вот скрипт для тестирования:

#!/bin/bash

# Test all brightness levels from 1 to max_brightness

# For Intel i7-6700 HQ HD 530 graphics:
# - When change is 18 steps brighhness doesn't change at all.
# - When change is 19 steps brightnesss changes on multi-hundred point jumps.
# - When change is 20 steps each change applied as expected.

# For Intel i7-3630QM steps of 1 work fine!

if [[ $(id -u) != 0 ]]; then
    echo >&2 "$0 must be called with sudo powers"
    exit 1
fi

cd /sys/class/backlight/*/
max=$(cat max_brightness)
save=$(cat brightness)

for (( i=1; i < max; i=i+20)); do
    echo $i > brightness
    echo setting brightness level: $i
    sleep .005
done

echo $save > brightness
echo resetting brightness level from $max back to: $save

exit 0

Я думаю, что мой скайлейк работает отлично, кроме странных температурсообщается для датчика pch_skylake:

$ paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp) | column -s $'\t' -t | sed 's/...$/.0°C/'
INT3400 Thermal  20.0°C
SEN1             56.0°C
SEN2             52.0°C
SEN3             57.0°C
SEN4             61.0°C
pch_skylake      -44.0°C
B0D4             50.0°C
x86_pkg_temp     52.0°C

Кроме этого микрокод Linux Intel определенно активирован на старом ноутбуке (Ubuntu 16.04), но может не загружаться на новый ноутбук (Ubuntu 16.04.5).

Редактировать: Перезагрузка с Ubuntu 18.04.1 LTS, Kernel 4.15.0-36 и такое же поведение засвидетельствовано.

Подтверждение: Интересно, если другиеиметь ноутбук Skylake и может подтвердить аппаратное обеспечениеghtness работает точно так же.

Вопрос: Для приложения, которое я разрабатываю, нужно ли включать функцию для каждого пользователя, чтобы тестировать минимальное поддерживаемое изменение яркости, поддерживаемое?

1 Ответ

0 голосов
/ 29 июня 2019

Яркость подсветки отделена от собственно графического процессора;iGPU, являющийся частью микросхемы ЦП, просто генерирует пиксельные данные для ЖК-дисплея, например, как вывод DisplayPort.(Или в ноутбуках, часто это сигнал низкого напряжения eDP).

Обратите внимание, что на настольном компьютере вы не можете регулировать яркость подсветки с помощью программного обеспечения;нет никакой связи с обычным оборудованием / драйверами графического процессора с подсветкой.

Программное управление подсветкой на ноутбуках в значительной степени отделено от iGPU и не имеет никакого отношения к Skylake или IvyBridge.Элемент управления подсветкой представляет собой отдельное аппаратное устройство с отдельными портами ввода-вывода (или отображаемыми в память регистрами ввода-вывода или чем-либо еще).

Более точная регулировка подсветки с гранулярностью является свойством конструкции ноутбука, а не процессора.В частности, о технологии подсветки и оборудовании контроллера.


(Это мое понимание, но я на самом деле недостаточно подробно рассмотрел код графического процессора или драйвера подсветки / ACPI, чтобы быть на 100% уверенным, что это точно.)


Я понятия не имею, возможно ли для программного обеспечения запросить истинную / значимую гранулярность;Этот ответ только для того, чтобы указать на неправильное представление о том, что оно зависит от графического процессора или драйверов графического процессора.

...