docs: записать в бэклог план по видеокарте
Выбран приоритетный экран, а не листалка: устройство смотрится боковым зрением и должно само показывать то, что ближе к своему порогу. Совмещённый экран отвергнут по измерениям - вторая температура влезает только шрифтом 5x7, и смысл крупной цифры теряется. Отдельным пунктом записан опыт, который надо поставить до реализации: проверить, будит ли опрос дискретную видеокарту и не начнёт ли мониторинг сам расходовать батарею. Измеритель есть - датчик мощности разряда батареи, прав администратора он не требует. Записана и главная ловушка подхода: при близких к порогам показателях экран начнёт скакать между ними, нужна задержка переключения. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ed726f7fb6
commit
b15421305c
1 file changed
+84
-4
@@ -41,6 +41,9 @@
|
||||
|
||||
Последний пункт — самый важный: он затрагивает смысл устройства, а не удобство.
|
||||
|
||||
**Для видеокарты выбран другой путь** — приоритетный экран без кнопки, см.
|
||||
пункт 2. Листалка остаётся в силе для остального: памяти, батареи, сети.
|
||||
|
||||
### Что фактически доступно на этой машине
|
||||
|
||||
Проверено перебором датчиков через `LibreHardwareMonitorLib` после установки
|
||||
@@ -80,7 +83,84 @@ NVIDIA отдаёт её через свой драйвер, ядро для э
|
||||
|
||||
---
|
||||
|
||||
## 2. Обрезание строки при 100° и 100%
|
||||
## 2. Мониторинг видеокарты: приоритетный экран
|
||||
|
||||
**Выбранный подход.** Не листалка, а **приоритетный экран**: плата сама
|
||||
показывает то, что ближе к своему порогу. Греется видеокарта — показывает её,
|
||||
в простое показывает процессор по умолчанию.
|
||||
|
||||
Обоснование: устройство стоит на столе и смотрится боковым зрением, от него
|
||||
нужен ответ на один вопрос — «всё ли в порядке». Листалка заставляет либо жать
|
||||
кнопку, либо ждать нужного экрана. Значок в углу при этом естественно
|
||||
превращается в указатель, чьи данные показаны, и понадобится второй значок —
|
||||
видеокарты.
|
||||
|
||||
Совмещённый экран отвергнут по измерениям: свободно 17 пикселей по ширине,
|
||||
вторая температура влезет только шрифтом 5×7, и смысл крупной цифры теряется.
|
||||
|
||||
### Сторона агента
|
||||
|
||||
Работа одинакова для любого способа отображения и не ломает совместимость:
|
||||
прошивка игнорирует незнакомые ключи, поэтому агента можно обновить раньше
|
||||
прошивки.
|
||||
|
||||
- включить `IsGpuEnabled`;
|
||||
- брать `Temperature/GPU Core` и `Load/GPU Core`;
|
||||
- добавить в строку ключи `G=` (температура) и `GL=` (загрузка):
|
||||
`T=67.0;L=34;G=61.0;GL=88`;
|
||||
- **опрашивать видеокарту реже процессора**, примерно раз в 5 секунд (см. ниже).
|
||||
|
||||
Права администратора для видеокарты не нужны — NVIDIA отдаёт температуру через
|
||||
свой драйвер, а не через MSR.
|
||||
|
||||
### Сторона прошивки
|
||||
|
||||
- **Свои пороги на каждый показатель.** У процессора 85/82. У ноутбучной
|
||||
RTX 3050 Ti предел около 87, так что пороги будут другими — подобрать,
|
||||
а не копировать.
|
||||
- **Задержка переключения.** Главная ловушка подхода: когда оба показателя
|
||||
близки к своим порогам, экран начнёт скакать между ними каждую секунду. Нужно
|
||||
либо минимальное время удержания экрана (5–10 секунд), либо заметный отрыв
|
||||
по «близости к порогу», при котором происходит переключение.
|
||||
- **Свой буфер истории на каждый показатель** — по 72 байта, памяти достаточно.
|
||||
- **Свой значок** для видеокарты, рядом с существующим значком процессора.
|
||||
- **Устаревание по каждому ключу отдельно.** Если данных по видеокарте нет
|
||||
дольше N секунд, её экран просто не участвует в выборе. Это же снимает вопрос,
|
||||
что делать на машине без дискретной видеокарты: экран не появится никогда.
|
||||
- **Сглаживание.** Температуру видеокарты усреднять так же, как процессорную,
|
||||
но окно считать в замерах, а не в секундах: при опросе раз в 5 секунд окно
|
||||
из 5 замеров даст 25 секунд, что слишком много. Вероятно, хватит 2–3.
|
||||
|
||||
---
|
||||
|
||||
## 2a. Сначала проверить: будит ли опрос видеокарту
|
||||
|
||||
**Выполнить до реализации.** У ноутбука переключаемая графика, и в простое
|
||||
дискретная видеокарта уходит в сон. Опрос её датчиков может будить её и мешать
|
||||
энергосбережению — то есть мониторинг начнёт сам расходовать батарею и греть
|
||||
машину. Сейчас она отвечает (39 °C), значит не спит, но в глубоком простое
|
||||
поведение будет другим.
|
||||
|
||||
**Как проверить.** Прямой измеритель уже есть: у батареи читается датчик
|
||||
`Power/Charge/Discharge Rate` в ваттах, и права администратора для него не
|
||||
нужны.
|
||||
|
||||
1. Отключить ноутбук от сети, оставить машину в простое, не трогать ввод.
|
||||
2. Замер А: 10 минут писать мощность разряда **без** опроса видеокарты
|
||||
(`IsGpuEnabled = false`), раз в 10 секунд.
|
||||
3. Замер Б: 10 минут то же самое **с** опросом видеокарты раз в секунду.
|
||||
4. Сравнить средние. Заодно записывать `GpuNvidia Power/GPU Package`: если при
|
||||
опросе он перестаёт падать до нуля — видеокарта не засыпает.
|
||||
|
||||
**Что делать с результатом.** Разница в пределах шума — опрашивать раз в
|
||||
секунду, как процессор. Разница заметная (скажем, больше половины ватта) —
|
||||
оставить опрос раз в 5 секунд или реже и запомнить это решение здесь.
|
||||
|
||||
Оценка: около десяти минут работы плюс двадцать минут ожидания замеров.
|
||||
|
||||
---
|
||||
|
||||
## 3. Обрезание строки при 100° и 100%
|
||||
|
||||
При трёхзначной температуре и трёхзначной загрузке верхняя строка занимает 79
|
||||
пикселей из 72: `100` — 49 px, зазор 2, `100%` — 28 px. Лишние 7 пикселей
|
||||
@@ -96,7 +176,7 @@ NVIDIA отдаёт её через свой драйвер, ядро для э
|
||||
|
||||
---
|
||||
|
||||
## 3. Автозапуск не проверен перезагрузкой
|
||||
## 4. Автозапуск не проверен перезагрузкой
|
||||
|
||||
Задание Планировщика `CPU Temp Agent` зарегистрировано с триггером «при входе в
|
||||
систему», запускается вручную и работает. Живой перезагрузкой триггер не
|
||||
@@ -107,7 +187,7 @@ NVIDIA отдаёт её через свой драйвер, ядро для э
|
||||
|
||||
---
|
||||
|
||||
## 4. Скрипт заливки
|
||||
## 5. Скрипт заливки
|
||||
|
||||
Цикл «остановить агента → залить прошивку → запустить агента» делается тремя
|
||||
командами вручную. Пока правок мало, это терпимо; если работа по экрану
|
||||
@@ -118,7 +198,7 @@ NVIDIA отдаёт её через свой драйвер, ядро для э
|
||||
|
||||
---
|
||||
|
||||
## 5. Вес обзорного изображения
|
||||
## 6. Вес обзорного изображения
|
||||
|
||||
`docs/promo.png` весит 2,1 МБ при исходниках примерно на 30 КБ. Сжатие до
|
||||
300–500 КБ не ухудшило бы читаемость, но старый файл всё равно останется в
|
||||
|
||||
Reference in new issue
Block a user