Three.js: Kesalahan saat membuat konteks WebGL

Dibuat pada 16 Jun 2014  ·  64Komentar  ·  Sumber: mrdoob/three.js

saya mendapatkan

Terjadi kesalahan saat membuat konteks WebGL.
TypeError Tidak Tertangkap: Tidak dapat membaca properti 'getExtension' dari null

di http://threejs.org/examples dan situs web saya http://arefin.in ( r58 ).
chrome:// gpu / menunjukkan semuanya diaktifkan.

Apa yang menurut Anda salah?

Browser Issue

Komentar yang paling membantu

Sama untuk ku. Saya menemukan bahwa GPU saya (Intel HD 3000) sekarang masuk daftar hitam di Chrome (periksa milik Anda di chrome://gpu/). Saya pergi ke chrome://flags/ dan mengaktifkan --ignore-gpu-blacklist . Sekarang semuanya kembali normal.

Semua 64 komentar

Anda harus membagikan spesifikasi sistem Anda. (CPU, OS, model kartu grafis, versi driver, browser...)

AMD FX-4130, Win 7 build 7600, GeForce GTX 650 menjalankan 13/9/2018, Chrome 35.0.1916.153 m.
Semuanya baik-baik saja sekitar seminggu yang lalu. Telah menjalankan situs web saya sejak Mei 2013.

Driver terbaru? Mencoba di browser lain?

Maksud saya, jika semuanya berfungsi dan Anda belum mengubah kodenya, itu mungkin sesuatu yang terkait dengan OS, browser, dan/atau driver grafis ...

Saya pikir saluran dev terbaru Chrome di Windows melakukan sesuatu yang lucu setelah pembaruan. Setelah memperbarui barusan, threejs tidak dapat membuat konteks webgl pada contoh apa pun - berfungsi dengan baik tepat sebelum pembaruan.

Chrome versi 37.0.2054.2 dev-m (64-bit)
Windows 8.1 64-bit
Seri ATI Radeon HD 6800
Versi Pengemasan Driver ATI 14.10.1006-140417a-171099C

chrome://gpu menunjukkan
"WebGL: Tidak tersedia. Akselerasi perangkat keras tidak tersedia"
Ini juga menunjukkan bahwa flag --disable-gpu diteruskan ke chrome.exe!

Membunuh semua proses chrome.exe dan menjalankan dengan menjalankan chrome.exe secara langsung (di C:\Program Files (x86)Google\ChromeApplication) tampaknya menyelesaikan ini. Periksa pintasan Anda untuk memastikan bendera tidak lolos.

Mungkin ini bukan masalah yang sama tetapi periksa ini dulu jika Anda melihat masalah ini setelah memperbarui.

Biarkan saya mencobanya dan kembali kepada Anda. Saya melihat masalah ini di sini juga - http://japhr.blogspot.in/2014/05/webgl-in-chrome-36-linux-is-not-working.html

Terima kasih

Sekarang semuanya kembali normal. Saya kira semuanya diperbaiki sendiri ketika Chrome diperbarui? Kebanyakan orang tidak menghadapi masalah ini, mungkin hanya segelintir orang. Namun, Chrome harus mengatasi masalah seperti ini.
Saya kira Anda bisa menutup masalah ini.
Terima kasih

Memulai ulang Chrome memperbaiki ini untuk saya.

masih saya punya masalah setelah restart chrome saya chrome Versi 37.0.2062.120 (64-bit)....tolong bantu saya untuk menyelesaikan masalah ini.

dan di ubuntu linux 13.04

Chrome terbaru untuk linux adalah 39.0.2171.95.

Saya memiliki masalah yang sama (Kesalahan saat membuat konteks WebGL.) dengan versi terbaru, 39.0.217.95 (64-bit) di Ubuntu 14.10.

Maaf untuk menghidupkan kembali utas ini, tetapi saya memiliki masalah yang sama (kesalahan membuat konteks WebGL, Tidak dapat membaca properti getExtension of null), Chrome 47.0.2526.106 (64), Ubuntu 15.10, nVidia Optimus pada gpu khusus (three.js tidak berjalan sama sekali jika saya mengaturnya ke terintegrasi). Saya tidak terlalu peduli karena saya biasanya menggunakan Firefox, tetapi orang lain mungkin dan itu mencegah saya untuk menguji dengan Chrome.

Masalah yang sama di sini, di saluran Dev dan Canary, telah terjadi selama berminggu-minggu. three.js berfungsi di FF tetapi tidak di Chrome. Masalah yang cukup besar karena saya terutama menggunakan Chrome.

Chrome 49.0.2609.0 canary (64-bit), 49.0.2593.0 dev-m (64-bit), Windows 8.1, nVidia Optimus

@jwlarocque @GameKyuubi

Dalam situasi ini, sebaiknya periksa https://get.webgl.org/. Jika halaman tersebut tidak berfungsi, tidak ada yang dapat dilakukan oleh three.js, dan Anda harus melaporkan masalah tersebut ke Google/Chrome.

Ya rusak di situ. Benar-benar aneh bahwa masalah seperti ini akan terjadi
begitu lama tidak diperhatikan.
Pada 2 Jan 2016 17:09, "Mr.doob" [email protected] menulis:

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

Dalam situasi ini, sebaiknya periksa https://get.webgl.org/. Jika itu
halaman tidak berfungsi, tidak ada yang bisa dilakukan three.js, dan Anda
harus melaporkan masalah tersebut ke Google/Chrome.


Balas email ini secara langsung atau lihat di GitHub
https://github.com/mrdoob/three.js/issues/4927#issuecomment -168372764.

Saya ingin menunjukkan bahwa pada Mac saya yang memiliki GPU Nvidia peralihan, memodifikasi perilaku pengalih GPU-nya, misalnya dengan gfxCardStatus, kemungkinan besar akan menyebabkan Chrome gagal membuat konteks hingga Anda keluar dari Chrome dan membukanya kembali. Ini adalah salah satu cara saya dapat membuat masalah menjadi nyata pada mesin khusus ini.

Ini adalah jenis masalah yang sering dapat diatasi dengan logout/reboot dengan cukup baik.

Pastikan opsi ini dipilih di pengaturan chrome Anda.
screen shot 2016-02-09 at 1 59 46 pm

Ya bukan itu masalahnya sama sekali. Sudah diperiksa sepanjang waktu, masalahnya masih berlanjut bahkan dengan pembaruan Chrome Canary terbaru dan driver NVIDIA terbaru.

Ini tampaknya terjadi secara acak setelah melakukan beberapa pengujian intensif pada aplikasi Three.js. Suatu saat semuanya berjalan dengan baik, sekarang saya tidak dapat memuat konteks WebGL apa pun. Akselerasi perangkat keras diaktifkan dalam pengaturan. Namun di chrome://gpu :

Rasterisasi: Hanya perangkat lunak. Akselerasi perangkat keras dinonaktifkan
Kanvas: Hanya perangkat lunak, akselerasi perangkat keras tidak tersedia

Ada ide?

Saya juga melihat masalah ini di Linux. Memulai ulang Chrome tidak memperbaikinya.

Saya mendapatkan kesalahan yang sama "Kesalahan saat membuat konteks WebGL." di Chrome 50.0.2661.75 m (64-bit) /Windows 7.
Pengemudi seharusnya baik-baik saja karena saya tidak punya masalah memuat halaman yang sama di Firefox.

@JamesMilnerUK Masalah yang sama di sini, memuat banyak model colada, membekukan browser hingga macet dan sekarang saya tidak bisa lagi mendapatkan konteks WebGL. Menutup/membuka kembali Chrome tidak memperbaikinya. Apakah Anda dapat menemukan resolusi?

Sunting: Menemukan perbaikan -- harus menghapus centang akselerasi perangkat keras, mulai ulang, periksa kembali, dan mulai ulang lagi

Mulai dari memulai ulang Chrome dan memulai ulang Mac

Mac - Chrome - Versi 52.0.2743.116 (64-bit) - Oke

Mac - Chrome Canary - Versi 55.0.2850.0 canary (64-bit) - GAGAL

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;

Saya mencoba chrome://flags/ dan mengaktifkan yang ini:

Ekstensi Draf WebGL Mac, Windows, Linux, Chrome OS, Android
Mengaktifkan opsi ini memungkinkan aplikasi web mengakses Ekstensi WebGL yang masih dalam status draf.

Masih kurang beruntung...

Kenari? Anda mungkin harus melaporkan regresi ke proyek Chromium.

NS!!!

Chrome saya diperbarui secara otomatis - kandang berada di 53.0.2785.101 dan berhenti bekerja, begitu juga saya...

EDIT:

Laporan Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=645390

Sama untuk ku. Saya menemukan bahwa GPU saya (Intel HD 3000) sekarang masuk daftar hitam di Chrome (periksa milik Anda di chrome://gpu/). Saya pergi ke chrome://flags/ dan mengaktifkan --ignore-gpu-blacklist . Sekarang semuanya kembali normal.

Chrome terkadang menambahkan driver ke daftar hitamnya di antara rilis. Samsung galaxy s6 saya tidak memiliki webgl 1 bulan dan bulan berikutnya itu karena chrome menghapusnya dari daftar hitam. Hal-hal bisa berjalan sebaliknya juga. Anda dapat mengabaikan daftar hitam dengan risiko Anda sendiri. Saya mengabaikannya dengan ponsel saya, dan semuanya _did_ berfungsi dengan baik.

yaitu + firefox berfungsi, chrome terbaru tidak salah satu dari dev saya. sistem, driver Nvideo Quadro terbaru untuk kartu 2011...
Diperbaiki dengan masuk ke pengaturan lanjutan Chrome - Gunakan perangkat keras Acc. GFX tidak dicentang, dicentang - dimulai ulang dan sekarang berfungsi

Saya rindu flash :-( - Saya tidak bisa mengharapkan pengguna akhir melalui kerumitan ini

Saya mendapatkan pengecualian yang sama setelah waktu yang tidak ditentukan di Chrome. Itu hanya terjadi sesekali dan sepertinya hanya ketika itu adalah adegan layar penuh, tetapi satu-satunya cara untuk memperbaikinya yang dapat saya temukan sejauh ini adalah me-restart browser, yang tidak cukup baik di situs publik! Saya dapat membuat konteks ok untuk beberapa waktu tetapi tiba-tiba itu akan gagal ketika saya mencoba new THREE.WebGLRenderer() lagi sehingga tidak mungkin karena kartu gfx yang masuk daftar hitam. Saya tidak dapat mereproduksinya secara ad-hoc yang membuatnya hampir tidak mungkin untuk diperbaiki. Adakah yang punya ide bagaimana melacak akar penyebabnya?

Akselerasi perangkat keras diaktifkan.

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

ya, terjadi pada saya juga sampai sekarang - Chrome di Macbook Pro OS 10.11.5

@deejbee @cindyloo akan sangat membantu jika kalian dapat membagikan informasi perangkat keras Anda.

@mrdoob Ini adalah Intel HD Graphics 530 yang menjalankan Win10. Versi drivernya adalah 4.4.0 Build 10.18.15.4279. Ini adalah Dell Optiplex 7040

Laporan GPU Caps Viewer v1.31.1.0

sama disini

Mungkin mundur pada CanvasRenderer dalam kasus seperti itu?

Apa-apaan, ini terjadi di Win10 dengan Chrome saat ini, ada petunjuk baru tentang cara mengatasi ini? Bekerja bahkan di Internet Explorer :)

@alberto2000 apa GPU yang Anda miliki?

@mrdoob itu adalah kartu Radeon dan menginstal ulang driver menyelesaikannya.

mendapatkan ini juga, tidak sering tetapi kadang-kadang.

OS
MacOS 10.11.6
Peramban
Chrome 54.0.2840.98

Untuk siapa pun yang membaca ini pada tahun 2017, saya memperbaikinya di MacBook Pro Akhir 2011 saya dengan menonaktifkan peralihan kartu grafis otomatis penghemat daya untuk memaksa GPU kinerja tinggi mengambil alih setiap saat.

Saya masih melihat ini masuk dari log server kami. Terbaru adalah dari:
OS: Windows 10
Peramban: Chrome 55.0.2883.87

Catatan: kami menjalankan rilis r74 (sampai masalah kabut yang baru-baru ini teratasi digabung menjadi rilis baru 👍)

Catatan: kami menjalankan rilis r74 (sampai masalah kabut yang baru-baru ini teratasi digabung menjadi rilis baru 👍)

Masalah kabut apa?

Aku mengerti!

Mengaktifkan "gunakan akselerasi perangkat keras jika tersedia" di pengaturan lanjutan chrome memperbaiki masalah saya

Saya melihat kesalahan ini muncul di sistem pelacakan kesalahan yang saya gunakan. Jika ini membantu, inilah info sistem untuk pengguna yang memiliki bug seperti yang ditangkap oleh pelacak:

Agen-Pengguna: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/56.0.2924.87 Safari/537.36
OS: Mac OS X 10.12.3
Peramban: Chrome 56.0.2924

Dan inilah pelacak kesalahan yang tertangkap di konsol:

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

Info sistem itu tidak memiliki detail Kartu Grafis agar berguna sepenuhnya.

Kartu grafis: Intel HD Graphics 4000 1024 MB

Saya dapat berbicara dengan pengguna yang mengalami kesalahan ini, dan mereka menyampaikan info kartu grafis di atas. Semoga membantu! Terima kasih!

@kenrussell Apakah Intel HD Graphics 4000 didukung? Sebenarnya, apakah ada daftar umum kartu grafis yang masuk daftar hitam?

@mrdoob Tidak, Intel HD 4000 tidak masuk daftar hitam.

Perlu konten about:gpu (teks biasa lebih disukai, cukup salin/tempel) untuk mendiagnosis masalah seperti ini.

Jika kartu tersebut masuk daftar hitam maka alasannya akan dijelaskan di halaman tersebut.

Kedua file ini menjelaskan GPU mana yang masuk daftar hitam dan yang memiliki solusi bug driver yang diterapkan.

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

Perhatikan bahwa refactoring sedang berlangsung sehingga kedua file ini kemungkinan akan digantikan oleh file .json di direktori yang sama dalam satu atau dua minggu ke depan. Lihat http://crbug.com/691703 .

Saya mempunyai kesalahan yang sama...
Sepertinya Intel HD 2000 masuk daftar hitam di Chrome 58.0.3029.81 (64-bit), Ubuntu 14.04
Saya mengatur chrome://flags/ --ignore-gpu-blacklist ; dan itu bekerja dengan baik.

Jika ada bantuan bagi siapa pun yang melihat ini dari sudut yang berbeda. Saya mendapatkan kesalahan ini ketika mencoba memasang komponen reaksi yang berisi TIGA bit dan bob ketika mencoba mengujinya.

Saya membuatnya sebagai tidak dapat diuji untuk saat ini.

@YoneMoreno Saya tidak melihat Error creating WebGL context. dalam masalah Anda. Apa yang membuat Anda berpikir Anda mengalami masalah yang sama?

Mengapa ini ditutup? Sepertinya masih banyak orang yang mengalami masalah ini.

@nicolethenerd Sayangnya, tidak ada yang bisa kita lakukan di perpustakaan.

Anda dapat menambahkan pesan kesalahan yang lebih bermanfaat. Membaca sekilas utas ini, sulit untuk memahami apa sebenarnya resolusi itu - orang mengklaim telah menyelesaikan ini dengan mengubah beberapa flag yang berbeda.

Jika solusinya lebih rumit daripada yang dapat ditampung dalam pesan kesalahan, pesan tautan ke halaman FAQ yang menjelaskan masalah dan merekomendasikan flag mana yang harus disetel tergantung pada browser Anda.

Jika ini adalah kesalahan umum yang tidak dapat diselesaikan dengan memperbaiki perpustakaan, mungkin menambahkannya ke bagian FAQ dari situs demo?

@nicolethenerd Jika saya ingat dengan benar, itu adalah bendera akselerasi perangkat keras Chrome yang perlu diaktifkan untuk MacBook Pro 2012 saya.

Kartu grafis hanyalah salah satu alasan mengapa konteks tidak dapat dibuat. Kami tidak ingin menambahkan pesan yang bisa menyesatkan.

Mungkin kita bisa mulai mengumpulkan alasan.

Namun, kami tidak menyarankan pengguna menonaktifkan daftar hitam. Jika kartu grafis ini masuk daftar hitam karena bug dan/atau alasan keamanan.

Saya melihat respons ini ketika saya membuka terlalu banyak tab dengan adegan WebGL secara bersamaan.

Kesalahan yang sama untuk saya dengan Version 72.0.3626.121 (Official Build) Arch Linux (64-bit) . Bekerja dengan Firefox 65.0.1 pada OS yang sama.

GPU: NVidia 2080TI.

Pastikan opsi ini dipilih di pengaturan chrome Anda.
screen shot 2016-02-09 at 1 59 46 pm
Setelah meluncurkan kembali pengaturan chrom, WebGL berfungsi dengan benar seperti sebelumnya.
Jawaban yang bagus.

Kesalahan: Gagal membuat konteks WebGL: pembuatan WebGL gagal:

  • GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0 adalah < 8!

Saya mendapatkan ini sekarang, di Firefox 74. Saya telah memaksa webgl.force-enabled=true di konfigurasi, mengaktifkan akselerasi perangkat keras, tidak ada. Ini bekerja dengan baik untuk saya di 66, tetapi saya kira pembaruan "kuantum" mereka hampir putus asa, termasuk webgl untuk saya.

Pastikan Anda tidak memanggil penginisialisasi konteks WebGL dari pendengar (misalnya, coba tulis dalam fungsi init Anda dengan tanda boolean untuk menghentikannya dari pengulangan atau menyatakan gl sebagai variabel global). Yang pertama bekerja untuk saya dan menampilkan konteksnya dengan benar.

EDIT: Sebenarnya saya akhirnya menemukan kanvas WebGL di dalam penyaji (THREE.WebGLRenderer). Saya menggunakan metode kanvas renderer.getContext().canvas dan menambahkan pendengar webglcontextlost, yang pada gilirannya disebut fungsi handleContextLost dengan init().

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

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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat