Safari Technology Preview 251: WGSL textureDimensions clamping берёт уровень на один дальше последнего валидного mip и возвращает неверную границу. People-first проверка: таблица mip «level → expected width/height → shader result → validation state»; синтетический стенд, опровержимый контроль, один обратимый шаг, stop-line и минимизированный handoff.
Ответ и граница: WebGPU
Сначала зафиксируйте, что именно должно измениться и что обязано остаться неизменным. Запрос «как проверить textureDimensions на последнем mip level в Safari Technology Preview 251» относится только к ситуации: WGSL textureDimensions clamping берёт уровень на один дальше последнего валидного mip и возвращает неверную границу. Условие успеха записывается до запуска: последний валидный level даёт ожидаемый размер без сдвига, а controls образуют корректную последовательность mip. Внешне похожая ошибка сама по себе ничего не доказывает; отдельно проверяется ловушка «ошибка расчёта mipLevelCount в приложении, ошибочно приписанная WGSL codegen». Симптом служит поводом для canary, но не доказательством механизма. Паспорт включает build, поддержку API и заранее выбранный статус для недоступной среды. Производственный сайт, реальный аккаунт и пользовательские данные исключены.
Что подтверждают Release 251 и 318273@main
Официальные WebKit Release Notes датированы 26 августа 2026 года и для Safari Technology Preview 251 сообщают: исправлен clamp mip level в textureDimensions(t, level), который заходил на один уровень дальше последнего валидного. Строка релиза ведёт к первичной записи 318273@main; её commit title и доступность перепроверены 29 августа. Из release page и commit нельзя выводить массовость, рейтинг или результат на произвольном Mac. MacRumors, Reddit и snippets не повышают уровень evidence технического тезиса. Технический предел статьи совпадает с формулировкой 318273@main и не расширяется поисковым заголовком.
Стенд и рабочий артефакт 318273
Стенд: маленькая WebGPU texture 8×4 с известным mipLevelCount и compute shader, пишущий размеры в readback buffer. До воздействия без интерпретации запишите: texture size, mipLevelCount, queried level, returned dimensions, validation errors и mapped buffer bytes. Рабочий артефакт — таблица mip «level → expected width/height → shader result → validation state». Паспорт опыта хранит только технические величины, необходимые для опровержения. Cookie, IP, bearer-данные, локальные пути, приватные URL и рабочие документы в него не попадают. Наблюдение не интерпретируется до прохождения control и финального cleanup.
Контроль, который может опровергнуть гипотезу
Пара baseline/canary должна пережить полный возврат, иначе финальный статус только invalid. Для этой боли используется: level 0 и предпоследний level той же texture с заранее вычисленными размерами. Он проходит тот же порядок запуска, settle-событие и набор полей, что основная ветка. Риск «ошибка расчёта mipLevelCount в приложении, ошибочно приписанная WGSL codegen» получает отдельный признак. Обе ветки получают одинаковый порядок запуска и сбор. Если отклоняется control, итог invalid; если control недоступен, environment-blocked — выбирать удобную интерпретацию нельзя. Такой дизайн делает тезис опровержимым и не требует доступа к исходным данным пользователя.
Одно обратимое воздействие
Разрешён один шаг: запросить последний валидный level в одном compute pass, прочитать buffer и уничтожить GPU resources. Сначала снимите baseline, затем выполните только указанную операцию, дождитесь заранее выбранного события завершения и повторите поля «texture size, mipLevelCount, queried level, returned dimensions, validation errors и mapped buffer bytes». Не добавляйте вторую мутацию. Сначала запишите исходное состояние, затем одну проверку, а в конце докажите возврат тем же набором полей. PASS допустим, когда последний валидный level даёт ожидаемый размер без сдвига, а controls образуют корректную последовательность mip. Результат не усиливают словами о массовости; production, VPN, маршрутизация, чужие сайты и реальные media остаются вне опыта.
Stop-line, решение и минимальный handoff
Итог формулируют на уровне этого fixture, не распространяя его на stable Safari или чужой сайт. Остановитесь, если adapter недоступен, shader компилируется другой версией, texture dimension не 2d или validation error игнорируется. Финальная запись хранит таблица mip «level → expected width/height → shader result → validation state», результат контроля, отметку rollback и ссылку на 318273@main. Допустимые итоги: reproduced, not reproduced, unsupported, environment-blocked, invalid и unknown; каждый относится только к этому fixture. Разработчику передают минимальный код, обезличенную таблицу, статус control/cleanup и ссылку на commit. Полный профиль браузера или пользовательский контент не нужен. PASS означает только условие «последний валидный level даёт ожидаемый размер без сдвига, а controls образуют корректную последовательность mip». Материал не обещает индексацию, позиции, поисковый спрос, stable-поддержку или автоматическое исправление.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 318273@main, техническая граница, независимый контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318273@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.