【问题标题】:Skylake hardware brightness changes too granularSkylake 硬件亮度变化过于精细
【发布时间】:2018-10-14 16:04:27
【问题描述】:

我遇到了 Skylake i7-6700 HQ 笔记本电脑显示屏(高清 530 显卡)亮度变化的问题:

  • 如果值变化 20 则有效。
  • 如果数值变化 19,它只适用于数百次跳跃。
  • 如果值变化

但是,在我的旧 Ivybridge 笔记本电脑 i7-3630 QM(高清 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

我认为我的 skylake 工作正常,除了 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 英特尔微码肯定在旧笔记本电脑 (Ubuntu 16.04) 上激活,但可能无法在新笔记本电脑 (Ubuntu 16.04.5) 上加载。

编辑:使用 Ubuntu 18.04.1 LTS、内核 4.15.0-36 重新启动,并见证了相同的行为。

确认:我想知道其他人是否有 Skylake 笔记本电脑并且可以确认硬件亮度工作方式相同。

问题: 对于我正在开发的应用程序,我是否必须为每个用户添加一个功能来测试支持的最小粒度亮度变化?

【问题讨论】:

  • 您是否尝试过使用 Ubuntu 18.04,而不是在 Skylake 发布后不久推出的 16.04? (IDK 有多少 Ubuntu 向后移植到图形堆栈中。)我还想知道这是否纯粹来自 HD530 GPU,或者是否与特定的笔记本电脑型号和供应商选择的背光 + 控制器有关。
  • @PeterCordes 可以确认内核 4.15.0-36-generic 的 Ubuntu 18.04 表现出与内核 4.13.0-36-generic 的 Ubuntu 16.04 相同的行为。但是,英特尔微码更新不适用于任一内核。
  • 实际的笔记本电脑型号是什么?我认为不同的背光更有可能具有不同的控制粒度,而不是 GPU 本身的变化。
  • @PeterCordes 这是戴尔 Alienware 17R3,带有基本的 LCD 屏幕(不是 OLED)。允许以 1 为增量步进的较旧笔记本电脑是戴尔 Inspiron 灵越 17R 7720 SE,其 LCD 屏幕更好。

标签: ubuntu-16.04 screen intel hardware-programming


【解决方案1】:

背光亮度与 GPU 本身是分开的;作为 CPU 芯片一部分的 iGPU 只为 LCD 生成像素数据,例如作为 DisplayPort 输出。 (或者在笔记本电脑中,通常是 eDP 低压信号)。

请注意,在桌面上,您无法通过软件调节背光亮度;普通 GPU 硬件/驱动程序与背光没有连接。

笔记本电脑中的软件背光控制与 iGPU 几乎是分开的,与它是 Skylake 还是 IvyBridge 无关。背光控制是具有独立 I/O 端口(或内存映射 IO 寄存器或其他)的独立硬件设备。

更精细的背光调整是笔记本电脑设计的属性,而不是 CPU。特别是背光技术和控制器硬件。


(这是我的理解,但我实际上并没有详细查看 GPU 或背光/ACPI 驱动程序代码,无法 100% 确定这是准确的。)


我不知道软件是否可以查询真实/有意义的粒度;这个答案只是为了指出它依赖于 GPU 或 GPU 驱动程序的误解。

【讨论】:

  • “更精细的背光调整是笔记本电脑设计的属性,而不是 CPU。” 这很有趣,因为 Ivy Bridge 和 Sky Lake 笔记本电脑都是戴尔制造的。第一个是 Inspiron,第二个是 Alienware。我想我的第一个问题要问戴尔工程师。
猜你喜欢
  • 2016-02-20
  • 1970-01-01
  • 2019-07-12
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多