Перейти к содержимому

Глоссарий

Отпечаток WebGPU

WebGPU доходит до того же железа, что и WebGL, только своими ходками. Снимок уходит через буфер, а не через холст, поэтому работа, написанная для прежней дороги, с ним не встречается.

Отпечаток WebGPU это опознаватель, который сайт собирает из того, что новый слой графики сообщает и рисует.

Как сайт его снимает

На странице ничего не появляется, и разрешения никто не спрашивает. Работа идёт на текстуре, которую не показывают, а наружу она уходит обычными числами.

  1. 1

    Просит устройство

    Слой графики выдаёт переходник и устройство, а заодно сообщает, на что это устройство способно.

  2. 2

    Рисует в текстуру

    Хватает сплошной заливки. Кадр рождается тем же железом, каким рисует и WebGL.

  3. 3

    Копирует текстуру в буфер

    Страница отображает этот буфер как набор байтов, и эти байты и есть снимок.

Почему нужна отдельная работа

Прежняя дорога кончается холстом, а эта буфером. Работа, приложенная там, где точки отдают холсту, до байтов, отданных набором, не доходит вовсе.

Этого зазора хватает, чтобы страница получила противоречие. Одна машина, описанная двумя способами, из которых закрыт только один, читается сильнее любого из описаний по отдельности. Выбирает дорогу при этом страница, а не мы.

Что делает наш движок

Снимок меняется там, где картинка попадает к странице, а сама поправка выводится из зерна профиля. Поэтому один профиль отвечает дважды одинаково, а два профиля отвечают по-разному.

Трогаются только буферы, в которых лежала картинка. Буфер обычных вычислений приходит точно таким, каким его сделало устройство: порча итога сломала бы страницу, а не защитила её. Буфер помнит, в какой его кусок копировали картинку, а запись поверх этого куска снимает пометку ровно с накрытых байтов.

Как это меряется у сборки

Обмер снимает свой собственный снимок через этот слой и читает его несколькими способами. Каждая строка сообщает своё значение, а не приговор, и одной красной хватает, чтобы сборка не пошла.

  • Два снимка сходятся

    Одна и та же картинка, снятая дважды, обязана прийти байт в байт. Значение, которое между двумя чтениями меняется, само и есть то показание, за которым страница пришла.

  • Снимок не равен чистой заливке

    Сплошная заливка обязана вернуться изменённой. Неизменные байты значат, что дорога открыта и работа до неё не дотянулась.

  • Чтение кусками ничего не меняет

    Слой графики позволяет странице отображать один буфер смежными окнами. Байты, взятые так, обязаны быть изменены тоже и обязаны совпасть с байтами, взятыми целиком.

  • Неизмеримая строка считается провалом

    На машине без видеокарты браузер выключает этот слой сам. Обмер тогда сообщает, что строка не измерена, и сборка не принимается.

Часто путают с этим

  • Отпечаток WebGL

    Прежний слой доходит до того же железа своими ходками. Сборка может закрыть одну дорогу и оставить вторую отвечающей.

  • Отпечаток canvas

    Там поверхность рисует сам браузер и в двух измерениях. Другой код, другие значения и отдельная защита.

  • Описание переходника

    То, что переходник говорит о себе, приходит своей ходкой, а не из нарисованной картинки. Наша работа закрывает картинку.

Чего это не делает

  • Это не меняет то, что переходник говорит о себе. Его описание приходит своей ходкой и из зерна профиля не выводится.
  • Это не трогает обычные вычисления. Буферы, в которых картинки не было, приходят точно такими, какими их сделало устройство: неверное число там ломает страницу.
  • Это не появляется строкой в самопроверке внутри профиля. Эта дорога меряется при приёмке сборки, а не при каждом запуске, поэтому в отчёте, который вы видите у себя, её нет.
  • Это не разрывает связь, которая уже возникла. Два аккаунта, открытые из одного профиля, останутся связанными, что бы ни ответила графика потом.

Проверить

Всё сказанное выше взято из файла, который можно открыть.

Где закрыта дорога снимка
engine/patches/armanos-fp-0013-webgpu.diff
Что обмер требует от сборки
engine/scripts/engine-invariants.js
Сборка не принимается, пока это не сходится
engine/scripts/accept-engine.js
Сам обмер идёт в настоящем браузере
apps/desktop/test/обмеры-исполняются-в-браузере.js

Вопросы

WebGPU это просто новый WebGL?
Для страницы, которой нужно ваше железо, это вторая дорога к тому же ответу. Ходки другие, дорога чтения другая, и закрывать это показание приходится отдельно.
Закрывает ли это работа над холстом?
Нет. Работа над холстом действует там, где точки отдают холсту, а этот снимок уходит набором байтов, прочитанным из буфера.
Можно просто отключить WebGPU?
Браузеры без него бывают, и на машине без видеокарты браузер выключает его сам. Но отсутствие рядом с заявленной свежей сборкой это противоречие, которое страница прочитает.
Почему не шуметь во всех буферах?
Потому что в большинстве буферов лежат вычисления, а не картинки. Порча этих чисел сломала бы то, что делает страница, и не защитила бы ничего.
Что будет, если устройство не выдали?
Строка сообщается как неизмеренная, и сборка не принимается. Молчаливый пропуск продавал бы неизмеренную дорогу как проверенную.

Посмотрите, что отвечает движок

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