К обсуждениям

Safari Technology Preview 251: indexed PNG в copyExternalImageToTexture

Редакция VOne Технологии

Safari Technology Preview 251: WebGPU загружает indexed PNG с неверными цветами при copyExternalImageToTexture. People-first проверка: карта палитры «source index → expected RGBA → uploaded RGBA → pixel coordinate»; синтетический стенд, опровержимый контроль, один обратимый шаг, stop-line и минимизированный handoff.

Ответ и граница: WebGPU

Этот запрос решается сравнением двух воспроизводимых веток на синтетическом стенде. Запрос «как проверить indexed PNG через copyExternalImageToTexture в Safari Technology Preview 251» относится только к ситуации: WebGPU загружает indexed PNG с неверными цветами при copyExternalImageToTexture. Условие успеха записывается до запуска: каждый readback pixel совпадает с palette expectation, а row order совпадает с RGBA-control. Внешне похожая ошибка сама по себе ничего не доказывает; отдельно проверяется ловушка «color-management conversion, ошибочно принятая за ошибку indexed upload в WebGPU». Граница намеренно узкая: один механизм, один synthetic fixture и одна версия. Любой соседний сбой получает отдельную гипотезу, а не подгоняется под этот commit. Производственный сайт, реальный аккаунт и пользовательские данные исключены.

Что подтверждают Release 251 и 318952@main

Официальные WebKit Release Notes датированы 26 августа 2026 года и для Safari Technology Preview 251 сообщают: исправлена неверная загрузка indexed PNG через GPUQueue.copyExternalImageToTexture. Строка релиза ведёт к первичной записи 318952@main; её commit title и доступность перепроверены 29 августа. Документы WebKit отвечают на вопрос «что изменено в ветке», но не на вопросы «как часто» и «у кого проявится». Публичные обсуждения используются лишь для обнаружения темы. Технический предел статьи совпадает с формулировкой 318952@main и не расширяется поисковым заголовком.

Стенд и рабочий артефакт 318952

Стенд: встроенный 2×2 indexed PNG с палитрой четырёх цветов, ImageBitmap и readback texture без файлов пользователя. До воздействия без интерпретации запишите: palette entries, source pixel indices, destination format, bytesPerRow, readback RGBA и row order. Рабочий артефакт — карта палитры «source index → expected RGBA → uploaded RGBA → pixel coordinate». В таблице оставляют expected/observed, единицу, build и timestamp. IP, cookie, токены, Authorization, реальные query, пути и пользовательские файлы запрещены; недоступное поле остаётся пустым с причиной. Наблюдение не интерпретируется до прохождения control и финального cleanup.

Контроль, который может опровергнуть гипотезу

Отрицательная ветка нужна, чтобы одинаковый внешний результат не подменил одинаковую причину. Для этой боли используется: RGBA PNG с теми же четырьмя цветами и прямой decode исходной indexed картинки. Он проходит тот же порядок запуска, settle-событие и набор полей, что основная ветка. Риск «color-management conversion, ошибочно принятая за ошибку indexed upload в WebGPU» получает отдельный признак. Сравнение готовят заранее и не переписывают после результата. Только раздельная реакция canary/control позволяет связать наблюдение с проверяемым условием. Такой дизайн делает тезис опровержимым и не требует доступа к исходным данным пользователя.

Одно обратимое воздействие

Разрешён один шаг: загрузить одно синтетическое indexed image в texture, скопировать обратно и уничтожить ресурсы. Сначала снимите baseline, затем выполните только указанную операцию, дождитесь заранее выбранного события завершения и повторите поля «palette entries, source pixel indices, destination format, bytesPerRow, readback RGBA и row order». Протокол имеет три точки: before, one-change и after-rollback. Различие засчитывается только между сопоставимыми снимками; невосстановившееся состояние закрывает опыт. PASS допустим, когда каждый readback pixel совпадает с palette expectation, а row order совпадает с RGBA-control. Результат не усиливают словами о массовости; production, VPN, маршрутизация, чужие сайты и реальные media остаются вне опыта.

Stop-line, решение и минимальный handoff

Любое расхождение сначала проверяют повтором baseline после rollback. Остановитесь, если decoder меняет color profile, texture format другой, alpha premultiplication не зафиксирована или adapter недоступен. Финальная запись хранит карта палитры «source index → expected RGBA → uploaded RGBA → pixel coordinate», результат контроля, отметку rollback и ссылку на 318952@main. Финальный статус не бинарный: отдельно различаются воспроизведение, отсутствие воспроизведения, отсутствие поддержки, блок среды, невалидность и нехватка данных. Воспроизводимость обеспечивают короткий fixture и рабочий артефакт, а не полный лог машины. Добавьте commit, expected, actual и отметку успешного возврата. PASS означает только условие «каждый readback pixel совпадает с palette expectation, а row order совпадает с RGBA-control». Материал не обещает индексацию, позиции, поисковый спрос, stable-поддержку или автоматическое исправление.

Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 318952@main, техническая граница, независимый контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.

Источники и проверка

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

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

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