Вопрос или проблема
У меня проблема с отключенным Webgl2. В данный момент я использую Ubuntu 22.04.3 LTS на Thinkpad X250.
Сначала я просто хотел использовать визуальный фон для Google Meet, но получил сообщение об ошибке
"Ваш браузер может не поддерживать WebGL, или он может быть временно недоступен. Попробуйте перезапустить браузер. Почему WebGL может быть недоступен".
Я посетил https://webglreport.com/?v=2, и результат следующий:
Этот браузер поддерживает WebGL 2, но он отключен или недоступен. Иногда это является результатом того, что устаревшие видеодрайвера отвергаются браузером. Попробуйте обновить видеодрайвера, если это возможно. Также посмотрите Get WebGL или попробуйте установить последнюю версию Chrome или Firefox.
Я также посетил chrome://gpu/ и вот результат:
Статус графических возможностей
Canvas: Только программное обеспечение. Аппаратное ускорение отключено
Растрирование Canvas вне процесса: Отключено
Компонент дисплея с прямым рендерингом: Отключен
Композитинг: Только программное обеспечение. Аппаратное ускорение отключено
Множественные потоки растрирования: Отключено
OpenGL: Отключен
Растрирование: Только программное обеспечение. Аппаратное ускорение отключено
Сырой рисование: Отключено
Skia Graphite: Отключено
Декодирование видео: Только программное обеспечение. Аппаратное ускорение отключено
Кодирование видео: Только программное обеспечение. Аппаратное ускорение отключено
Vulkan: Отключен
WebGL: Отключен
WebGL2: Отключен
WebGPU: Отключен
Работы по обходу ошибок драйвера
clear_uniforms_before_first_program_use
enable_webgl_timer_query_extensions
exit_on_context_lost
disabled_extension_GL_KHR_blend_equation_advanced
disabled_extension_GL_KHR_blend_equation_advanced_coherent
disabled_extension_GL_MESA_framebuffer_flip_y
Обнаруженные проблемы
WebGPU был отключен через черный список или командную строку.
Отключенные возможности: webgpu
Ускоренное кодирование видео было отключено, либо через черный список, about:flags или командную строку.
Отключенные возможности: video_encode
Графический композитинг был отключен, либо через черный список, about:flags или командную строку. Браузер вернется к программному композитингу, и аппаратное ускорение будет недоступно.
Отключенные возможности: gpu_compositing
Процесс GPU не смог запуститься: процесс GPU вылетел слишком много раз с SwiftShader.
Отключенные возможности: все
Очистить униформы перед первым использованием программы на всех платформах: 124764, 349137
Примененные обходные решения: clear_uniforms_before_first_program_use
Отключить KHR_blend_equation_advanced до обновления cc шейдеров: 661715
Примененные обходные решения: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Поддерживать расширения disjoint_timer_query WebGL на платформах с изоляцией сайта: 808744, 870491
Примененные обходные решения: enable_webgl_timer_query_extensions
Некоторые драйвера не могут восстановиться после OUT_OF_MEM и потери контекста: 893177
Примененные обходные решения: exit_on_context_lost
Отключить GL_MESA_framebuffer_flip_y для настольного GL: 964010
Примененные обходные решения: disable(GL_MESA_framebuffer_flip_y)
Информация DAWN
<CPU> Vulkan backend - SwiftShader Device (Subzero)
[Статус WebGPU]
Включен в черный список
[Имена переключателей по умолчанию]
lazy_clear_resource_on_first_use: https://crbug.com/dawn/145: Очищает ресурс до нуля при первом использовании. Это инициализирует ресурс, чтобы в новом ресурсе не присутствовали грязные биты из переработанной памяти.
use_temporary_buffer_in_texture_to_texture_copy: https://crbug.com/dawn/42: Разделяет копирование текстуры в текстуру на две копии: копирует из исходной текстуры во временный буфер, а затем копирует из временного буфера в целевую текстуру при копировании между сжатыми текстурами, которые не имеют блочно-выравненных размеров. Этот обход по умолчанию включен на всех драйверах Vulkan для решения проблемы в спецификации Vulkan о копировании текстур в текстуру со сжатыми форматами. См. #1005 (https://github.com/KhronosGroup/Vulkan-Docs/issues/1005) для получения дополнительных сведений.
vulkan_use_d32s8: https://crbug.com/dawn/286: Vulkan требует поддержки либо D32_FLOAT_S8, либо D24_UNORM_S8. Когда это возможно, бэкенд будет использовать D32S8 (переключатель включен), но установка переключателя в отключенное состояние заставит его использовать формат D24S8, когда это возможно.
vulkan_use_s8: https://crbug.com/dawn/666: Vulkan имеет чистый формат stencil8, но он не универсально доступен. Когда этот переключатель включен, бэкенд будет использовать S8 для формата stencil8, в противном случае он вернется к D32S8 или D24S8.
use_placeholder_fragment_in_vertex_only_pipeline: https://crbug.com/dawn/136: Использует заполнителя пустой фрагментный шейдер в конвейере рендеринга только для вершин. Этот переключатель должен быть включен для бэкенда OpenGL ES, бэкенда Vulkan и служит обходным решением по умолчанию на некоторых устройствах Metal с графическим процессором Intel, чтобы гарантировать правильный результат глубины.
use_vulkan_zero_initialize_workgroup_memory_extension: https://crbug.com/dawn/1302: Инициализирует память рабочей группы с OpConstantNull в Vulkan, когда поддерживается расширение Vulkan VK_KHR_zero_initialize_workgroup_memory.
[Обязательные переключатели WebGPU - включены]
disallow_spirv: https://crbug.com/1214923: Полностью запрещает использование SPIR-V, чтобы использовать только WGSL для шейдерных модулей. Это полезно, чтобы предотвратить успешную отправку SPIR-V кода на компиляцию в процессе GPU.
[Поддерживаемые функции]
texture-compression-bc
texture-compression-etc2
texture-compression-astc
timestamp-query
timestamp-query-inside-passes
depth-clip-control
depth32float-stencil8
indirect-first-instance
rg11b10ufloat-renderable
bgra8unorm-storage
float32-filterable
dawn-internal-usages
dawn-native
implicit-device-sync
surface-capabilities
transient-attachments
<CPU> Vulkan backend - SwiftShader Device (Subzero)
[Статус WebGPU]
Включен в черный список
[Имена переключателей по умолчанию]
lazy_clear_resource_on_first_use: https://crbug.com/dawn/145: Очищает ресурс до нуля при первом использовании. Это инициализирует ресурс, чтобы в новом ресурсе не присутствовали грязные биты из переработанной памяти.
use_temporary_buffer_in_texture_to_texture_copy: https://crbug.com/dawn/42: Разделяет копирование текстуры в текстуру на две копии: копирует из исходной текстуры во временный буфер, а затем копирует из временного буфера в целевую текстуру при копировании между сжатыми текстурами, которые не имеют блочно-выравненных размеров. Этот обход по умолчанию включен на всех драйверах Vulkan для решения проблемы в спецификации Vulkan о копировании текстур в текстуру со сжатыми форматами. См. #1005 (https://github.com/KhronosGroup/Vulkan-Docs/issues/1005) для получения дополнительных сведений.
vulkan_use_d32s8: https://crbug.com/dawn/286: Vulkan требует поддержки либо D32_FLOAT_S8, либо D24_UNORM_S8. Когда это возможно, бэкенд будет использовать D32S8 (переключатель включен), но установка переключателя в отключенное состояние заставит его использовать формат D24S8, когда это возможно.
vulkan_use_s8: https://crbug.com/dawn/666: Vulkan имеет чистый формат stencil8, но он не универсально доступен. Когда этот переключатель включен, бэкенд будет использовать S8 для формата stencil8, в противном случае он вернется к D32S8 или D24S8.
use_placeholder_fragment_in_vertex_only_pipeline: https://crbug.com/dawn/136: Использует заполнителя пустой фрагментный шейдер в конвейере рендеринга только для вершин. Этот переключатель должен быть включен для бэкенда OpenGL ES, бэкенда Vulkan и служит обходным решением по умолчанию на некоторых устройствах Metal с графическим процессором Intel, чтобы гарантировать правильный результат глубины.
use_vulkan_zero_initialize_workgroup_memory_extension: https://crbug.com/dawn/1302: Инициализирует память рабочей группы с OpConstantNull в Vulkan, когда поддерживается расширение Vulkan VK_KHR_zero_initialize_workgroup_memory.
[Обязательные переключатели WebGPU - включены]
disallow_spirv: https://crbug.com/1214923: Полностью запрещает использование SPIR-V, чтобы использовать только WGSL для шейдерных модулей. Это полезно, чтобы предотвратить успешную отправку SPIR-V кода на компиляцию в процессе GPU.
[Поддерживаемые функции]
texture-compression-bc
texture-compression-etc2
texture-compression-astc
timestamp-query
timestamp-query-inside-passes
depth-clip-control
depth32float-stencil8
indirect-first-instance
rg11b10ufloat-renderable
bgra8unorm-storage
float32-filterable
dawn-internal-usages
dawn-native
implicit-device-sync
surface-capabilities
transient-attachments
Информация о версии
Данные экспорта
2023-08-24T04:06:37.643Z
Версия Chrome
Chrome/116.0.5845.110
Операционная система
Linux 6.2.0-26-generic
URL списка программного рендеринга
https://chromium.googlesource.com/chromium/src/+/5128dafac6222fd3ac218660ab6dbf7ff260d768/gpu/config/software_rendering_list.json
URL списка ошибок драйвера
https://chromium.googlesource.com/chromium/src/+/5128dafac6222fd3ac218660ab6dbf7ff260d768/gpu/config/gpu_driver_bug_list.json
Идентификатор коммита ANGLE
b48983ab8c74
2D графический бэкенд
Skia/116 1c42b12f8699826793da1b7382e1d7a2278af966
Командная строка
/usr/bin/google-chrome-stable --flag-switches-begin --flag-switches-end --desktop-startup-id=193d2525-0a09-4bc0-8391-b08782ad23d5 --origin-trial-disabled-features=WebGPU
Информация о драйверах
Время инициализации
0
Графический процессор в процессе
нет
Декодер команд через прокси
да
В песочнице
да
GPU0
VENDOR= 0x0000, DEVICE=0x0000
Optimus
нет
Переключаемый графический процессор AMD
нет
Основная версия вычислительной способности GPU CUDA
0
Версия пиксельного шейдера
Версия вершинного шейдера
Максимальные образцы MSAA
Имя модели машины
Версия модели машины
Части реализации GL
(gl=отключено, angle=нет)
Тип дисплея
GL_VENDOR
Отключен
GL_RENDERER
Отключен
GL_VERSION
Отключен
GL_EXTENSIONS
Отключенные расширения
GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_MESA_framebuffer_flip_y
Отключенные расширения WebGL
Поставщик связывания оконной системы
Версия связывания оконной системы
Расширения связывания оконной системы
XDG_CURRENT_DESKTOP
ubuntu:GNOME
XDG_SESSION_TYPE
wayland
GDMSESSION
ubuntu
Платформа Ozone
x11
Версия прямого рендеринга
неизвестно
Стратегия уведомлений сброса
0x0000
Количество аварий процессов GPU
6
gfx::BufferFormats поддерживаемые для выделения и текстурирования
R_8: не поддерживается, R_16: не поддерживается, RG_88: не поддерживается, RG_1616: не поддерживается, BGR_565: не поддерживается, RGBA_4444: не поддерживается, RGBX_8888: не поддерживается, RGBA_8888: не поддерживается, BGRX_8888: не поддерживается, BGRA_1010102: не поддерживается, RGBA_1010102: не поддерживается, BGRA_8888: не поддерживается, RGBA_F16: не поддерживается, YVU_420: не поддерживается, YUV_420_BIPLANAR: не поддерживается, YUVA_420_TRIPLANAR: не поддерживается, P010: не поддерживается
Информация о композиторском процессе
Режим обновления плитки
Одна копия
Частичное растрирование
Включено
Статус буферов памяти GPU
R_8
Только программное обеспечение
R_16
Только программное обеспечение
RG_88
Только программное обеспечение
RG_1616
Только программное обеспечение
BGR_565
Только программное обеспечение
RGBA_4444
Только программное обеспечение
RGBX_8888
Только программное обеспечение
RGBA_8888
Только программное обеспечение
BGRX_8888
Только программное обеспечение
BGRA_1010102
Только программное обеспечение
RGBA_1010102
Только программное обеспечение
BGRA_8888
Только программное обеспечение
RGBA_F16
Только программное обеспечение
YVU_420
Только программное обеспечение
YUV_420_BIPLANAR
Только программное обеспечение
YUVA_420_TRIPLANAR
Только программное обеспечение
P010
Только программное обеспечение
Информация о дисплее
Информация
Границы дисплея[33]=[0,0 1360x768], рабочая область=[42,27 1318x741], масштаб=1, поворот=0, поворот панели=0 внешний.
Цветовое пространство (все)
{primaries:BT709, transfer:SRGB, matrix:RGB, range:FULL}
Формат буфера (все)
BGRA_8888
Цветовой объем
{name:'srgb', r:[0.6400, 0.3300], g:[0.3000, 0.6000], b:[0.1500, 0.3300], w:[0.3127, 0.3290]}
Уровень белизны SDR в нитах
203
Относительная максимальная яркость HDR
1
Биты на компонент цвета
8
Биты на пиксель
24
Частота обновления в Гц
59
Информация об ускорении видео
Декодирование
Кодирование
Информация Vulkan
Информация о производительности устройства
Информация о драйверах для аппаратного графического процессора
Время инициализации
0
Графический процессор в процессе
нет
Декодер команд через прокси
да
В песочнице
да
GPU0
VENDOR= 0x0000, DEVICE=0x0000
Optimus
нет
Переключаемый графический процессор AMD
нет
Основная версия вычислительной способности GPU CUDA
0
Версия пиксельного шейдера
Версия вершинного шейдера
Максимальные образцы MSAA
Имя модели машины
Версия модели машины
Части реализации GL
(gl=отключено, angle=нет)
Тип дисплея
GL_VENDOR
Отключен
GL_RENDERER
Отключен
GL_VERSION
Отключен
GL_EXTENSIONS
Отключенные расширения
Отключенные расширения WebGL
Поставщик связывания оконной системы
Версия связывания оконной системы
Расширения связывания оконной системы
XDG_CURRENT_DESKTOP
ubuntu:GNOME
XDG_SESSION_TYPE
wayland
GDMSESSION
ubuntu
Платформа Ozone
x11
Версия прямого рендеринга
неизвестно
Стратегия уведомлений сброса
0x0000
Количество аварий процессов GPU
6
gfx::BufferFormats поддерживаемые для выделения и текстурирования
R_8: не поддерживается, R_16: не поддерживается, RG_88: не поддерживается, RG_1616: не поддерживается, BGR_565: не поддерживается, RGBA_4444: не поддерживается, RGBX_8888: не поддерживается, RGBA_8888: не поддерживается, BGRX_8888: не поддерживается, BGRA_1010102: не поддерживается, RGBA_1010102: не поддерживается, BGRA_8888: не поддерживается, RGBA_F16: не поддерживается, YVU_420: не поддерживается, YUV_420_BIPLANAR: не поддерживается, YUVA_420_TRIPLANAR: не поддерживается, P010: не поддерживается
Статус возможностей графиков для аппаратного графического процессора
Canvas: Только программное обеспечение. Аппаратное ускорение отключено
Растрирование Canvas вне процесса: Отключено
Компонент дисплея с прямым рендерингом: Отключен
Композитинг: Только программное обеспечение. Аппаратное ускорение отключено
Множественные потоки растрирования: Отключено
OpenGL: Отключен
Растрирование: Только программное обеспечение. Аппаратное ускорение отключено
Сырой рисование: Отключено
Skia Graphite: Отключено
Декодирование видео: Только программное обеспечение. Аппаратное ускорение отключено
Кодирование видео: Только программное обеспечение. Аппаратное ускорение отключено
Vulkan: Отключен
WebGL: Отключен
WebGL2: Отключен
WebGPU: Отключен
Обнаруженные проблемы для аппаратного графического процессора
WebGPU был отключен через черный список или командную строку.
Отключенные возможности: webgpu
Ускоренное кодирование видео было отключено, либо через черный список, about:flags или командную строку.
Отключенные возможности: video_encode
Графический композитинг был отключен, либо через черный список, about:flags или командную строку. Браузер вернется к программному композитингу, и аппаратное ускорение будет недоступно.
Отключенные возможности: gpu_compositing
Процесс GPU не смог запуститься: процесс GPU вылетел слишком много раз с SwiftShader.
Отключенные возможности: все
Сообщения журнала
GpuProcessHost: Процесс GPU вылетел!
GpuProcessHost: Процесс GPU вылетел!
GpuProcessHost: Процесс GPU вылетел!
GpuProcessHost: Процесс GPU вылетел!
GpuProcessHost: Процесс GPU вылетел!
GpuProcessHost: Процесс GPU вылетел!
[6485:6485:0824/110624.140555:WARNING:vaapi_wrapper.cc(806)] : VAAPI video acceleration not available for disabled
Я изучил несколько источников, включая форум Ubuntu, и попробовал доступные советы, но это не сработало.
Дайте мне решение этой проблемы.
Спасибо.
Нет вариантов, решение – переустановить вашу ОС.
Похоже, что в более новых версиях Chrome не доверяют надежности драйверов GPU nvidia с открытым исходным кодом на Linux.
Я исправил свои проблемы, переустановив драйвера GPU nvidia на самые последние проприетарные. (что было немного неудобно, поскольку драйвера с открытым исходным код имели более свежий релиз, но так уж и быть…)
WebGL снова стал доступен в Chrome после завершения установки проприетарных драйверов nvidia.
И да, оригинальный вопрос не упоминает nvidia, но, возможно, решения для других брендов GPU также могут быть найдены путем (пере)установки последних (или более старых) официальных драйверов.
См. также этот полезный гид (который также ориентирован на nvidia, но, возможно, будет как-то связан и с другими брендами GPU): https://superuser.com/questions/836832/how-can-i-enable-webgl-in-my-browser
Ответ или решение
Чтобы решить проблему с отключенным WebGL2 на вашем ноутбуке ThinkPad X250 с установленной операционной системой Ubuntu 22.04.3 LTS, следуйте этим шагам:
1. Обновление видеодрайверов
Первым шагом будет обновление драйверов видеокарты. Многие проблемы с WebGL связаны с устаревшими или некорректно работающими драйверами. В зависимости от типа вашей видеокарты (Intel, NVIDIA или AMD) выполните следующие действия:
Для Intel:
Ubuntu обычно включает в себя драйверы Intel по умолчанию. Лучше всего обновить систему до последней версии:
sudo apt update
sudo apt upgrade
Для NVIDIA:
Если у вас NVIDIA GPU, рекомендуется установить проприетарные драйверы, которые обеспечивают лучшую поддержку WebGL.
-
Удалите существующие драйвера:
sudo apt remove --purge '^nvidia-.*'
-
Добавьте репозиторий PPA для последних драйверов NVIDIA:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update
-
Установите последние драйвера:
sudo apt install nvidia-driver-xx # Замените xx на последнюю версию
-
Перезагрузите систему:
sudo reboot
Для AMD:
Для видеокарт AMD также рекомендуется использовать последние драйвера. Вы можете установить их через команду:
sudo apt install xserver-xorg-video-amdgpu
После этого проверьте наличие обновлений и перезагрузите систему:
sudo apt update
sudo apt upgrade
sudo reboot
2. Проверка настроек браузера
После обновления драйверов выполните следующие действия для проверки браузера:
-
Убедитесь, что аппаратное ускорение включено в настройках Chrome. Для этого перейдите в
chrome://settings/
→Система
и убедитесь, что опция «Использовать аппаратное ускорение, когда это возможно» включена. -
Очистите кэш браузера и данные:
Перейдите в
chrome://settings/clearBrowserData
, выберите временной диапазон «Все время» и отметьте все опции. НажмитеОчистить данные
.
3. Проверка состояния WebGL
После выполнения вышеперечисленных шагов проверьте состояние WebGL:
- Посетите страницу WebGL Report и посмотрите на статус WebGL и WebGL2.
- Также перейдите по адресу
chrome://gpu/
и проверьте статус графических функций.
4. Дополнительные рекомендации
Если все еще возникают проблемы, попробуйте выполнить следующее:
- Запустите браузер в режиме инкогнито, чтобы исключить влияние расширений.
- Попробуйте использовать другую версию браузера (например, Firefox) и проверьте, поддерживает ли он WebGL.
- Убедитесь, что ваша установка Ubuntu обновлена и что система работает на последних ядрах и библиотеках.
Заключение
Если после всех шагов WebGL по-прежнему отключен, имеет смысл рассмотреть полную переустановку операционной системы или перепробовать различные настройки драйверов. Вы можете также обратиться на форумы сообщества Ubuntu для получения дополнительной помощи и рекомендаций, так как там могут быть пользователи, сталкивающиеся с аналогичными проблемами.
Если у вас остались вопросы или необходима дополнительная помощь, пожалуйста, дайте знать.