Three.js: خطأ في إنشاء سياق WebGL

تم إنشاؤها على ١٦ يونيو ٢٠١٤  ·  64تعليقات  ·  مصدر: mrdoob/three.js

تلقيت

خطأ في إنشاء سياق WebGL.
خطأ في النوع غير معلوم: لا يمكن قراءة الخاصية 'getExtension' للقيمة null

على http://threejs.org/examples وموقع الويب الخاص بي http://arefin.in (r58).
chrome: // gpu / يظهر كل شيء ممكّنًا.

ما الخطأ فى رأيك ؟

Browser Issue

التعليق الأكثر فائدة

نفس الشيء بالنسبة لي. لقد اكتشفت أن وحدة معالجة الرسومات (GPU) الخاصة بي (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 بت)
Windows 8.1 64 بت
سلسلة ATI Radeon HD 6800
إصدار تغليف برنامج تشغيل ATI 14.10.1006-140417a-171099C

الكروم: // عروض
"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 الإصدار 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 على وحدة معالجة رسومات مخصصة (ثلاثة.js لا يعمل على الإطلاق إذا قمت بتعيينه على متكامل). لا أهتم حقًا لأنني أستخدم Firefox بشكل عام ، ولكن قد يمنعني الآخرون ذلك من الاختبار باستخدام Chrome.

نفس المشكلة هنا ، على كل من قناة Dev و 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

تضمين التغريدة

في هذه الحالة ، من الأفضل التحقق من https://get.webgl.org/. إذا لم تعمل هذه الصفحة ، فلا يوجد شيء يمكن لـ three.js فعله حيال ذلك ، ويجب عليك إبلاغ Google / Chrome بالمشكلة بدلاً من ذلك.

نعم لقد كسر هناك. من الغريب حقًا أن مشكلة كهذه ستنتهي
دون أن يلاحظها أحد لفترة طويلة مع ذلك.
في 2 كانون الثاني (يناير) 2016 ، الساعة 5: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 GPU ، من المحتمل أن يؤدي تعديل سلوك تبديل GPU الخاص به ، على سبيل المثال مع gfxCardStatus ، إلى فشل Chrome في إنشاء السياق حتى يحين وقت إنهاء Chrome وإعادة فتحه. هذه إحدى الطرق التي يمكنني من خلالها إظهار المشكلة على هذا الجهاز المحدد.

هذا هو نوع المشكلة التي غالبًا ما يمكن أن يعالجها تسجيل الخروج / إعادة التشغيل بشكل جيد.

تأكد من تحديد هذا الخيار في إعدادات الكروم.
screen shot 2016-02-09 at 1 59 46 pm

نعم ، هذه ليست المشكلة على الإطلاق. تم التحقق منه طوال الوقت ، ولا تزال المشكلة قائمة حتى مع آخر تحديث لـ Chrome Canary وأحدث برامج تشغيل NVIDIA.

يبدو أن هذا حدث بشكل عشوائي بعد إجراء بعض الاختبارات المكثفة لتطبيق Three.js. لحظة واحدة كان كل شيء يتم تقديمه بشكل جيد ، والآن لا يمكنني تحميل أي سياقات WebGL. يتم تشغيل تسريع الأجهزة في الإعدادات. ولكن في الكروم: // gpu :

تنقيط: برنامج فقط. تم تعطيل تسريع الأجهزة
قماش: برنامج فقط ، تسريع الأجهزة غير متوفر

أيه أفكار؟

أرى أيضًا هذه المشكلة على Linux. إعادة تشغيل Chrome لا يصلح.

أحصل على نفس الخطأ "خطأ في إنشاء سياق WebGL." على Chrome 50.0.2661.75 م (64 بت) / Windows 7.
يجب أن يكون برنامج التشغيل على ما يرام لأنني لا أواجه أي مشكلة في تحميل نفس الصفحة في Firefox.

JamesMilnerUK نفس المشكلة هنا ، حملت الكثير من نماذج collada ، جمدت المتصفح حتى تعطل ولم يعد بإمكاني الحصول على سياق WebGL. لم يؤد إغلاق / إعادة فتح Chrome إلى إصلاحه. هل تمكنت من إيجاد حل؟

تحرير: العثور على إصلاح - كان لا بد من إلغاء تحديد تسريع الأجهزة ، وإعادة التشغيل ، وإعادة التحقق منه وإعادة التشغيل مرة أخرى

بدأت من إعادة تشغيل Chrome وإعادة تشغيل Mac

Mac - Chrome - الإصدار 52.0.2743.116 (64 بت) - حسنًا

Mac - Chrome Canary - الإصدار 55.0.2850.0 كناري (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 وتوقف عن العمل ، وكذلك فعلت ...

تعديل:

تقرير الشوائب: https://bugs.chromium.org/p/chromium/issues/detail؟

نفس الشيء بالنسبة لي. لقد اكتشفت أن وحدة معالجة الرسومات (GPU) الخاصة بي (Intel HD 3000) مدرجة الآن في القائمة السوداء على Chrome (تحقق من جهازك على chrome: // gpu /). ذهبت إلى chrome: // flags / وقمت بتمكين العلم --ignore-gpu-blacklist . الآن عاد كل شيء إلى طبيعته.

يضيف Chrome أحيانًا برامج تشغيل إلى قائمته السوداء بين الإصدارات. لم يكن جهاز samsung galaxy s6 الخاص بي يحتوي على webgl 1 شهر والشهر التالي كان كذلك لأن الكروم أزاله من القائمة السوداء. يمكن للأشياء أن تسير في الاتجاه الآخر أيضًا. يمكنك تجاهل القائمة السوداء على مسؤوليتك الخاصة. لقد تجاهلت ذلك بهاتفي ، وكل شيء _ هل _ يعمل بشكل جيد.

عملت ie + Firefox ، ولم يكن Chrome آخر أحد من مطوري. أنظمة ، أحدث برامج تشغيل Nvideo Quadro لبطاقة 2011 ...
تم الإصلاح بالانتقال إلى الإعدادات المتقدمة لـ Chrome - استخدم Acc. لم يتم تحديد GFX ، وفحصه - أعيد تشغيله ويعمل الآن

أفتقد الفلاش :- (- لا يمكنني ببساطة أن أتوقع أن يمر المستخدمون النهائيون بهذه المشكلة

أحصل على نفس الاستثناء بعد فترات زمنية غير محددة في 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 ما GPU لديك؟

mrdoob لقد كانت بطاقة Radeon وإعادة تثبيت السائقين حلها.

الحصول على هذا أيضا ، ليس في كثير من الأحيان ولكن في بعض الأحيان.

نظام التشغيل
نظام التشغيل Mac OS 10.11.6
المستعرض
كروم 54.0.2840.98

بالنسبة لأي شخص يقرأ هذا في عام 2017 ، قمت بإصلاح هذا على جهاز MacBook Pro الخاص بي في أواخر عام 2011 عن طريق تعطيل التبديل التلقائي لبطاقة الرسومات لتوفير الطاقة لإجبار GPU عالي الأداء على تولي زمام الأمور طوال الوقت.

ما زلت أرى هذه تأتي من سجلات الخادم لدينا. الأحدث كان من:
نظام التشغيل: 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 هل انتل HD Graphics 4000 baclkisted؟ في الواقع ، هل هناك قائمة عامة لبطاقات الرسومات المدرجة في القائمة السوداء؟

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 @ إذا كنت أتذكر بشكل صحيح ، فقد كانت علامة تسريع أجهزة Chrome هي التي يجب تشغيلها لجهاز MacBook Pro لعام 2012.

تعد بطاقة الرسومات أحد أسباب عدم إمكانية إنشاء السياق. لا نريد إضافة رسالة قد تكون مضللة.

ربما يمكننا البدء في جمع الأسباب.

ومع ذلك ، لا ينبغي أن نوصي المستخدمين بتعطيل القائمة السوداء. إذا تم إدراج بطاقات الرسوميات هذه في القائمة السوداء ، فهذا يرجع إلى أخطاء و / أو أسباب أمنية.

لقد رأيت هذا الرد عندما كان لدي عدد كبير جدًا من علامات التبويب مع وجود مشاهد WebGL مفتوحة في نفس الوقت.

نفس الخطأ بالنسبة لي مع Version 72.0.3626.121 (Official Build) Arch Linux (64-bit) . يعمل مع Firefox 65.0.1 على نفس نظام التشغيل.

وحدة معالجة الرسومات: NVidia 2080TI.

تأكد من تحديد هذا الخيار في إعدادات الكروم.
screen shot 2016-02-09 at 1 59 46 pm
بعد إعادة تشغيل إعداد chrom ، يعمل 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 (). وأضفت مستمع webglcontextlost ، والذي أطلق بدوره على الدالة handleContextLost مع الحرف init ().

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

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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

fuzihaofzh picture fuzihaofzh  ·  3تعليقات

boyravikumar picture boyravikumar  ·  3تعليقات

akshaysrin picture akshaysrin  ·  3تعليقات

seep picture seep  ·  3تعليقات

makc picture makc  ·  3تعليقات