Three.js: Ошибка при создании контекста WebGL

Созданный на 16 июн. 2014  ·  64Комментарии  ·  Источник: mrdoob/three.js

я получаю

Ошибка создания контекста WebGL.
Uncaught TypeError: невозможно прочитать свойство getExtension, равное null

на http://threejs.org/examples и на моем сайте http://arefin.in (r58).
chrome: // gpu / показывает все, что включено.

Как вы думаете, что не так?

Browser Issue

Самый полезный комментарий

Мне то же. Я обнаружил, что мой графический процессор (Intel HD 3000) теперь занесен в черный список Chrome (проверьте свой на chrome: // gpu /). Я перешел в chrome: // flags / и включил флаг --ignore-gpu-blacklist . Теперь все вернулось в норму.

Все 64 Комментарий

Вы должны поделиться спецификациями вашей системы. (ЦП, ОС, модель видеокарты, версия драйверов, браузер ...)

AMD FX-4130, Win 7 build 7600, GeForce GTX 650 под управлением 9.18.13.2018, Chrome 35.0.1916.153 м.
Около недели назад все было хорошо. Свой сайт веду с мая 2013 года.

Последние драйверы? Пробовали в другом браузере?

Я имею в виду, что если раньше что-то работало, а вы не меняли код, это, вероятно, связано с ОС, браузером и / или графическими драйверами ...

Я думаю, что последний канал разработчиков Chrome для Windows делает что-то забавное после обновления. После недавнего обновления threejs не может создать контекст webgl ни для одного примера - прямо перед обновлением все работало нормально.

Chrome версии 37.0.2054.2 dev-m (64-разрядная)
64-разрядная версия Windows 8.1
ATI Radeon HD 6800 серии
Версия пакета драйверов ATI 14.10.1006-140417a-171099C

chrome: // показывает
«WebGL: недоступен. Аппаратное ускорение недоступно»
Это также показывает, что флаг --disable-gpu был передан в chrome.exe!

Убийство всех процессов chrome.exe и запуск путем непосредственного выполнения chrome.exe (в C: \ Program Files (x86) Google \ ChromeApplication), похоже, решают эту проблему. Проверьте свои ярлыки, чтобы убедиться, что флаг не передается.

Возможно, это не та же проблема, но сначала проверьте это, если вы заметили эту проблему после обновления.

Позвольте мне попробовать и вернуться к вам. Я тоже видел эту проблему здесь - http://japhr.blogspot.in/2014/05/webgl-in-chrome-36-linux-is-not-working.html

Спасибо

Теперь все вернулось в норму. Я думаю, что после обновления Chrome все исправилось? Большинство людей не сталкивались с этой проблемой, может быть, только несколько. Тем не менее, Chrome должен решать подобные проблемы.
Думаю, вы можете закрыть этот вопрос.
Спасибо

Для меня это исправило перезапуск Chrome.

Тем не менее, у меня проблема после перезапуска Chrome. Моя версия Chrome 37.0.2062.120 (64-разрядная) .... пожалуйста, помогите мне решить эту проблему.

и его на ubuntu linux 13.04

Последний Chrome для Linux - 39.0.2171.95.

У меня такая же проблема (ошибка при создании контекста WebGL) с последней версией 39.0.217.95 (64-бит) на Ubuntu 14.10.

Извините, что воскресил этот поток, но у меня такая же проблема (ошибка создания контекста WebGL, не удается прочитать свойство getExtension of null), Chrome 47.0.2526.106 (64), Ubuntu 15.10, nVidia Optimus на выделенном графическом процессоре (three.js не запускается вообще, если я установил его на интегрированный). Мне все равно, потому что я обычно использую Firefox, но другие люди могут, и это мешает мне тестировать с Chrome.

Такая же проблема здесь, как на канале разработчиков, так и на Canary, происходит уже несколько недель. three.js работает с FF, но не с Chrome. Довольно большая проблема, потому что я в основном использую Chrome.

Chrome 49.0.2609.0 canary (64-разрядная версия), 49.0.2593.0 dev-m (64-разрядная версия), Windows 8.1, nVidia Optimus

@jwlarocque @GameKyuubi

В этой ситуации лучше всего проверить https://get.webgl.org/. Если эта страница не работает, то three.js ничего не может с этим поделать, и вам следует вместо этого сообщить о проблеме в Google / Chrome.

Ага, там сломано. Действительно странно, что такая проблема может исчезнуть.
незамеченным так долго.
2 января 2016 г. в 17:09 "Mr.doob" [email protected] написал:

@jwlarocque https://github.com/jwlarocque @GameKyuubi
https://github.com/GameKyuubi

В этой ситуации лучше всего проверить https://get.webgl.org/. Если это
страница не работает, three.js ничего не может с этим поделать, и вы
вместо этого следует сообщить о проблеме в Google / Chrome.

-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/mrdoob/three.js/issues/4927#issuecomment -168372764.

Я хотел бы отметить, что на моем Mac с переключающимся графическим процессором Nvidia изменение его поведения переключения графического процессора, например, с помощью gfxCardStatus, вероятно, приведет к сбою Chrome при создании контекста до тех пор, пока вы не выйдете из Chrome и не откроете его повторно. Это один из способов выявить проблему на этом конкретном компьютере.

Это проблема, которую часто можно решить с помощью выхода из системы / перезагрузки.

Убедитесь, что этот параметр выбран в настройках Chrome.
screen shot 2016-02-09 at 1 59 46 pm

Да это вообще не проблема. Это все время проверялось, проблема все еще сохраняется даже с последним обновлением Chrome Canary и самыми последними драйверами NVIDIA.

Похоже, это произошло случайно после интенсивного тестирования приложения Three.js. В какой-то момент все было нормально, теперь я не могу загружать контексты WebGL. Аппаратное ускорение включено в настройках. Однако в chrome: // gpu :

Растеризация: только программное обеспечение. Аппаратное ускорение отключено
Canvas: только программное обеспечение, аппаратное ускорение недоступно

Любые идеи?

Я тоже вижу эту проблему в Linux. Перезапуск Chrome не исправляет.

Я получаю ту же ошибку «Ошибка создания контекста WebGL». в Chrome 50.0.2661.75 m (64-разрядная версия) / Windows 7.
С драйвером все должно быть в порядке, поскольку у меня нет проблем с загрузкой той же страницы в Firefox.

@JamesMilnerUK Здесь

Изменить: найдено исправление - пришлось снять флажок аппаратного ускорения, перезапустить, перепроверить его и снова перезапустить

Начал с перезапуска Chrome и перезапуска Mac

Mac - Chrome - Версия 52.0.2743.116 (64-разрядная версия) - ОК

Mac - Chrome Canary - версия 55.0.2850.0 canary (64-разрядная версия) - ОТКАЗ

THREE.WebGLRenderer: Error creating WebGL context.WebGLRenderer @ three.js:19571
Uncaught TypeError: Cannot read property 'getExtension' of null
    at Object.get (three.js:16906)
    at new WebGLRenderer (three.js:19577)
    at init ((index):59)
    at (index):54
                    case 'WEBGL_depth_texture':
                        extension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' );
                        break;

Я попробовал chrome://flags/ и включил вот это:

Черновик расширений WebGL для Mac, Windows, Linux, Chrome OS, Android
Включение этой опции позволяет веб-приложениям получать доступ к расширениям WebGL, которые все еще находятся в состоянии черновика.

Все равно не повезло ...

Канарейка? Вероятно, вам следует сообщить о регрессе в проект Chromium.

ЧЕРНО !!!

Мой Chrome обновился автоматически - стабильная версия 53.0.2785.101 перестала работать, я тоже ...

РЕДАКТИРОВАТЬ:

Отчет об ошибке :

Мне то же. Я обнаружил, что мой графический процессор (Intel HD 3000) теперь занесен в черный список Chrome (проверьте свой на chrome: // gpu /). Я перешел в chrome: // flags / и включил флаг --ignore-gpu-blacklist . Теперь все вернулось в норму.

Иногда между выпусками Chrome добавляет драйверы в свой черный список. В моей галактике samsung s6 не было webgl 1 месяц, а в следующем месяце он был, потому что хром удалил его из черного списка. Все может пойти и по-другому. Однако вы можете игнорировать черный список на свой страх и риск. Я проигнорировал это со своим телефоном, и все _did_ работает нормально.

ie + firefox работал, chrome latest не один из моих разработчиков. системы, последние версии драйверов Nvideo Quadro для карты 2011 года ...
Исправлено зайдя в расширенные настройки Chrome - Use hardware Acc. GFX был снят, проверил - перезапустил и теперь работает

Я скучаю по flash :-( - Я просто не могу ожидать, что конечные пользователи пройдут через эту нервотрепку

Я получаю то же исключение по прошествии неопределенного времени в Chrome. Это случается очень редко, и это только кажется, когда это полноэкранная сцена, но единственный способ исправить это, который я пока могу найти, - это перезапустить браузер, что недостаточно для общедоступного сайта! Я могу создавать контексты в течение некоторого времени, но внезапно он терпит неудачу, когда я снова пытаюсь new THREE.WebGLRenderer() поэтому это не может быть из-за карт gfx из черного списка. Я не могу воспроизвести это специально, поэтому исправить это практически невозможно. У кого-нибудь есть идеи, как отследить первопричину?

Аппаратное ускорение включено.

Error creating WebGL context.
Uncaught TypeError: Cannot read property 'getExtension' of null

да, сейчас происходит и со мной - Chrome на Macbook Pro OS 10.11.5

@deejbee @cindyloo было бы полезно, если бы вы, ребята, могли поделиться информацией о своем оборудовании.

@mrdoob Это Intel HD Graphics 530 под управлением Win10. Версия драйвера - 4.4.0 Build 10.18.15.4279. Это Dell Optiplex 7040

Отчет GPU Caps Viewer v1.31.1.0

то же самое

Может быть, в таком случае откатиться на CanvasRenderer?

Что, черт возьми, это происходит в Win10 с текущим Chrome, есть какие-то новые подсказки о том, как решить эту проблему? Работает даже в Internet Explorer :)

@ alberto2000 какой у вас графический процессор?

@mrdoob это была карта Radeon, и переустановка драйверов решила ее.

получаю это тоже, не часто, но время от времени.

Операционные системы
Mac OS 10.11.6
Браузер
Хром 54.0.2840.98

Для всех, кто читал это в 2017 году, я исправил это на своем MacBook Pro в конце 2011 года, отключив автоматическое переключение видеокарты в энергосберегающем режиме, чтобы обеспечить постоянную работу высокопроизводительного графического процессора.

Я все еще вижу, что они поступают из журналов нашего сервера. Последний был от:
ОС: Windows 10
Браузер: Chrome 55.0.2883.87

Примечание: мы работаем с выпуском r74 (пока проблема с туманом, которая была недавно решена, не будет объединена с новым выпуском 👍)

Примечание: мы работаем с выпуском r74 (пока проблема с туманом, которая была недавно решена, не будет объединена с новым выпуском 👍)

Какая проблема с туманом?

Эта проблема с туманом :) https://github.com/mrdoob/three.js/issues/10582

Ах я вижу!

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

Я видел, как эта ошибка всплывала в системе отслеживания ошибок, которую я использую. Если это полезно, вот системная информация для пользователя, у которого была ошибка, зафиксированная трекером:

Пользовательский агент: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 56.0.2924.87 Safari / 537.36
ОС: Mac OS X 10.12.3
Браузер: Chrome 56.0.2924

А вот что обнаружил в консоли трекер ошибок:

THREE.WebGLRenderer 84
THREE.WebGLRenderer: Error creating WebGL context.
TypeError: Cannot read property 'getExtension' of null

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

Видеокарта: Intel HD Graphics 4000 1024 МБ

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

@kenrussell Включена ли Intel HD Graphics 4000 в список? На самом деле, существует ли публичный список видеокарт, занесенных в черный список?

@mrdoob Нет, Intel HD 4000 не занесен в черный список.

Требуется содержимое about: gpu (предпочтительнее простой текст, просто скопируйте / вставьте) для диагностики подобных проблем.

Если карта находится в черном списке, то причина будет описана на этой странице.

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

https://cs.chromium.org/chromium/src/gpu/config/software_rendering_list_json.cc

https://cs.chromium.org/chromium/src/gpu/config/gpu_driver_bug_list_json.cc

Обратите внимание, что в настоящее время проводится рефакторинг, поэтому эти два файла, скорее всего, будут заменены файлами .json в том же каталоге в течение следующих недель или двух. См. Http://crbug.com/691703 .

У меня такая же ошибка ...
Похоже, Intel HD 2000 занесен в черный список в Chrome 58.0.3029.81 (64-бит), Ubuntu 14.04
Я установил chrome: // flags / --ignore-gpu-blacklist; и он отлично работает.

Если это поможет кому-то взглянуть на это под другим углом. Я получаю эту ошибку при попытке смонтировать реагирующий компонент, содержащий ТРИ бита и боба, при попытке его протестировать.

Я пока делаю это как неподдающееся проверке.

@YoneMoreno Я не вижу Error creating WebGL context. в вашей проблеме. Что заставляет вас думать, что у вас такая же проблема?

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

@nicolethenerd К сожалению, в библиотеке мы ничего не можем сделать.

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

Если решение более сложное, чем может поместиться сообщение об ошибке, укажите в сообщении ссылку на страницу часто задаваемых вопросов, которая объясняет проблему и рекомендует, какие флаги установить в зависимости от вашего браузера.

Если это распространенная ошибка, которую нельзя устранить путем исправления библиотеки, может быть, добавить ее в раздел часто задаваемых вопросов на демонстрационном сайте?

@nicolethenerd Если я правильно помню, на моем MacBook Pro 2012 года нужно было включить флаг аппаратного ускорения Chrome.

Графическая карта - это только одна из причин, по которой невозможно создать контекст. Мы бы не хотели добавлять сообщение, которое может ввести в заблуждение.

Может быть, мы могли бы начать собирать причины.

Однако мы не должны рекомендовать пользователям отключать черный список. Если эти графические карты попали в черный список, это связано с ошибками и / или соображениями безопасности.

Я видел этот ответ, когда у меня было одновременно открыто слишком много вкладок со сценами WebGL.

Такая же ошибка для меня с Version 72.0.3626.121 (Official Build) Arch Linux (64-bit) . Работает с Firefox 65.0.1 на той же ОС.

Графический процессор: NVidia 2080TI.

Убедитесь, что этот параметр выбран в настройках Chrome.
screen shot 2016-02-09 at 1 59 46 pm
После перезапуска настройки цветности WebGL работает так же, как и раньше.
Хороший ответ.

Ошибка: не удалось создать контекст WebGL: не удалось создать WebGL:

  • GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0 - <8!

Я получаю это сейчас, в Firefox 74. Я принудительно включил webgl.force-enabled = true в конфигурации, включил аппаратное ускорение, ничего. У меня это работало отлично в 66, но я полагаю, что их «квантовое» обновление сломало почти все, в том числе и webgl для меня.

Убедитесь, что вы не вызываете инициализатор контекста WebGL из слушателя (например, попробуйте написать его в своей функции init с логическим флагом, чтобы он не зацикливался, или укажите gl как глобальную переменную). Первый сработал для меня и правильно отображает контекст.

РЕДАКТИРОВАТЬ: На самом деле я нашел холст WebGL внутри средства визуализации (THREE.WebGLRenderer). Я использовал метод canvas renderer.getContext (). Canvas и добавил прослушиватель webglcontextlost, который, в свою очередь, вызвал функцию handleContextLost с помощью init ().

function handleContextLost() {
    event.preventDefault();
    cancelAnimationFrame(requestId)
    init();
}

canvas.addEventListener("webglcontextlost", handleContextLost, false)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги